基于单片机的秒表课程设计.doc

上传人:知****量 文档编号:28098141 上传时间:2022-07-26 格式:DOC 页数:13 大小:41.54KB
返回 下载 相关 举报
基于单片机的秒表课程设计.doc_第1页
第1页 / 共13页
基于单片机的秒表课程设计.doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《基于单片机的秒表课程设计.doc》由会员分享,可在线阅读,更多相关《基于单片机的秒表课程设计.doc(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、基于单片机的秒表课程设计:班级:学号:专业:指导老师: 年 月 日 目录1、总体设计方案简介 2、硬件设计 3、软件设计 4、元件清单5、心得体会基于单片机的秒表课程设计摘要本设计的成品是在单片机最小系统的基础上增加显示电路和控制电路来完成数字式秒表的硬件电路的。电子秒表电路主要由AT89S51单片机最小系统电路、七段数码管动态显示电路和控制电路组成,它能实现八段数码显示和计时,能通过控制电路控制时间的暂停和开始。关键字:AT89S51 数码管 最小系统1总体设计方案简介 设计一个具有特定功能的数字式秒表。用AT89C52设计一个2位LED数码显示“秒表”,显示时间为00-59,另设计一个“开

2、始”按钮和一个“复位”按钮。按键说明:按“开始”按键,开始计数,数码管从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00。 设计的电路主要是能多次计时,计时的多少通过显示电路出来,设计框图如下图;控制部分技术和存储部分显示部分利用AT89C52单片机设计数显定时器。此方案采用AT89C52单片机系统来实现。AT89C52芯片内含8KB的EEPROM,不需要外扩展存储器,可是系统整体结构更为简单。设计框图如下图;外部控制开关AT89C52单片机七段数码显示此方案是以AT89C52芯片为中心控制系统,可实现计时、清零等功能,大大提高了系统的智能化,也是的系统所测结果精度大大提高。所以

3、此方案可行。2硬件设计 AT89S52是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器,的8位CMOS微控制器,使用高密度、非易失存储技术制造,并与80S52引脚和指令系统完全兼容。主要性能:与MCS-51微控制器 产品系列兼容。片内有4KB可在线重复编程的快闪擦写存储器存储数据保存时间为10年全静态工作:可从0Hz至16MHz程序存储器具有3级加密保护128*8位内部RAB32条可编程I/O线两个16位定时器/计数器中断结构具有5个中断源和2个优先级可编程全双串行通道空闲状态维持低功耗和掉电状态保存存储内容时钟引脚:XTAL1和XTAL2与内部的反相放大器构成一个振荡器,它提供

4、单片机的时钟控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。P2口:P2.6和P2.7端口分别控制数码管的十位和个位供电,当相应的端口变成低电平时,驱动相应的三极管会导通,+5V通过三极管给数码管相应的位供电,这是只要PO口送出数字的显示代码,数码管就能正常显示数字。PO口:PO.O-PO.6端口用排线连接到数码管显示模块区域中的A-G端口上;PO.O对应着A,.,PO.6对应着G。P0.7接高电平。“开始”按键见附录图3软件设计在硬件的基础上,可以通过软件完成数字式秒表的设计。我先用了矩阵键盘上的任意两个独立按键作为控制键。用一个键去控制计时的开始;用

5、一个键做计时的清零按键。用按键扫描的方式判断按键是否按下。用动态显示的方法扫描秒表的计数,显示所记下的数。用中断的方法来进行计时加1,每10ms中断一次进行重新赋值并加1,当10ms单元到达10,就令该单元赋0,并让100ms单元加1,以此类推。1主程序流程图 程序初始化开个中断P1.0=1关定时器0,1调用显示子程序P1.0=0开定时器0,1程序开始FIRST EQU P2.7 ;第一位数码管的位控制SECOND EQU P2.6 ;第二位数码管的位控制SEC EQU 00H ;1S到的标记UALUE EQU 21H ;秒计数器COUNT EQU 22H ;软件计数器DISPBUF1 EQU

6、 5EH ;5EH是显示缓冲区DISPBUF2 EQU 5FH ;5EF是显示缓冲区HIDDEN EQU 10 ;消隐码在字型码表的第10位ORG 0000HLJMP START1ORG 000BHLJMP INT_T0ORG 0100HSTART1:JB P1.0,START1LJMP STARTSTART:MOV SP,#5FH ;设置堆栈指针初值MOV VALUE,#0 ;秒计数器MOV COUNT,#0 ;软件计数器MOV DISPBUF1,#0 ;显示缓冲区 填充0MOV DISPBUF2,#0 ; 显示缓冲区 填充0MOV TMOD,#01HMOV TH0,#0ECH ;取6053

7、6的高8位,60536=65536-10000*6/12定时器初值,定时时间10msMOV TL0,#98H ; 取60536的高8位,60536=65536-10000*6/12定时器初值,定时时间10msSETB ET0 ;开T0中断SETB TR0 ;定时器T0开始运行CLR SECSETB EA ;开总中断LOOP:JBC SEC,NEXT ;1s到,消除1s到的标记LCALL DISP ;1s未到,调用显示程序SJMP LOOP ;继续循环NEXT:MOV A,VALVE ;获得秒的数值MOV B,#10DIV AB ;二进制转化为十进制,十位和个位分别送显示缓冲区JZ NEXT1

8、;如果A中值是0,高位0消隐SJMP NEXT2 ;否则直接送去显示NEXT1:MOV A,#HIDDENNEXT2:MOV DISPBUF1,AMOV DISPBUF2,B ;个位送显示缓冲区LCALL DISPLJMP LOOP ;主程序到此结束DISP: : 显示子程序PUSH ACC ;ACC入栈PUSH PSW ;PSW入栈MOV A,DISPBUF1 ;取第一个带显示数MOV DPTR,#DISPTAB ;字型表首地址MOVC A,A+DPTR ;取字形码MOV P0,A ;将字型码送P0位CLR FIRST ;开第一位显示器口LCALL DELAY ;延时5MSSETB FIRS

9、T ;关闭第一位显示器开始准备第二位的数字MOV A,DISPBUF2 ;去显示缓冲区的第二位MOV DPTR,#DISPTABMOVC A,A+DPTRMOV P0,A ;将第二个字型码送P0口CLR SECOND ;开第二位显示器LCALL DELAY ;延时SETB SECOND ;关第二位显示器POP PSWPOP ACCRET ;显示程序结束DELAY:;以下是延时程序PUSH PSW ;5ms延时程序SETB RSOMOV R7,#50D1: MOV R6,#50D2: DJNZ R6,$DJNZ R7,D1POP PSWRETDISPTAB: DB 0C0H,0F9H,0A4H,

10、0B0H,99H,92H,82H,0F8H,80H,90H,0FFH;显示字型表,最后一个OFFH是消隐码,它是表中的第11位元素INT_T0: ;定时中断处理PUSH ACCPUSH PSW ;中断保护MOV TH0,#OECHMOV TLH,#98H ;定时计数器重置初值INC COUNT ;软件计数器加一MOV A,COUNTCJNE A,#100,INT_RETMOV COUNT,#0 ;计到100,软件计数器清零SETB SEC ;将秒标志置位一INC VALVE ;秒的值加一MOV A,VALVECJNE A,#60,INT_RETMOV VALVE,#0INT_RET: POP

11、PSWPOP ACCRETIEND4元件清单元件名数量AT89C521八段数码管2NPN三极管212M晶振1按键2330电阻9200电阻1无极性电容30pf2电解电容10U/25V15心得体会 本文主要从硬件方面说明设计的总体思路和设计的实现过程,预期的设计目的是:能够实现秒表的基本功能,正常显示计数。 在设计中有好多问题都是因为理论知识不扎实,在有些管脚的置零和置一上概念模糊,这让我知道自己的理论知识学习的不够扎实,同时我明白要把所学的理论转化为实践需要一段努力学习的过程。 最近几年,科学发展很快,通过本次课程设计让我有了更深的认识,只有在设计制作的过程中不断的学习才能有更新的进步,不管我们在什么地方、什么岗位上都要以学为主、学以致用,才能把我们的工作做得更好。学习文档 仅供参考

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com