《秒表的设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《秒表的设计ppt课件.ppt(39页珍藏版)》请在三一办公上搜索。
1、1,利用单片机和数码管制作一个秒表。,项目要求,在单片机应用系统中,通常要使用显示器作为输出设备显示系统的状态,常用的显示器有LED数码管、点阵显示器和液晶显示器。,项目要求,学习目标,知识目标,了解数码管的基础知识。熟悉LED静态显示电路和显示程序的设计方法。掌握LED动态显示电路和动态扫描显示程序的设计方法。进一步掌握中断系统和定时器的应用。,学习目标,能力目标,能进行单片机数码管显示系统设计。会使用单片机的开发工具。能完成秒表的设计、制作与调试。,一、数码管简介,1.数码管的结构及工作原理,单片机系统扩展LED数码管时多用共阳LED:共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱
2、动功率很小;而共阴数码管段笔画是用高电平(“1”)点亮的,要求驱动功率较大。通常每个笔段要串一个数百欧姆的限流电阻。,2.数码管的编码方式,一、数码管简介,共阴极和共阳极的字段码互为反码。,LED数码管的字形码表,一、数码管简介,二、显示程序的任务,1、设置显示缓冲区,存放待显示数据和字符。2、显示译码:程序存储器中建立字形码常数表,查表得出对应数据和字符的字形码。3、输出显示:输出字形码到显示端口。,二、显示程序的任务,例:电路如图所示,要求数码管依次显示0F,每位数字显示1S。设晶振频率为12 MHz。,二、显示程序的任务,解:,ORG00H SJMPSTART ORG0030HSTART
3、:MOVP0,#0FFH;数码管的8段LED全暗 MOVDPTR,#TABST1:MOVR0,#0;显示初值ST2:MOVA,R0 MOVCA,A+DPTR;根据显示数字查字形码 MOVP0,A;字形码送P0口显示 ACALLDELAY;延时1s INCR0;显示数字加1 CJNE R0,#10h,ST2;16个数没显示完转ST2 SJMPST1;16个数显示完转ST1,循环显示,二、显示程序的任务,DELAY:MOVR7,#10;1S延时子程序D1:MOVR6,#200D2:MOVR5,#250 DJNZR5,$DJNZR6,D2 DJNZR7,D1 RETTAB:DB0C0H,0F9H,0
4、A4H,0B0H;03的共阳极字形码 DB 99H,92H,82H,0F8H;47的共阳极字形码 DB 80H,90H,88H,83H;8B的共阳极字形码 DB 0C6H,0A1H,86H,8EH;CF的共阳极字形码 END,练习:在“Proteus软件”中绘制电路图。用“Keil”模拟仿真软件进行程序的编辑、编译。将“.HEX”文件装载到Proteus中,观察程序运行结果。,二、显示程序的任务,三、显示方式,多位数码管的两种显示方式:静态显示和动态显示,段选:显示什么字符,位选:哪位显示,三、显示方式,1.静态显示,各数码管的位选控制线连在一起接+5V(地);各数码管的段选控制线分别接一个8
5、位的并行I/O口;,三、显示方式,1.静态显示,数码管在显示某一字符时,只要通过相应的I/O口送出该字符的字形码。,例:编程在两个LED数码管上显示数字“1”“2”,ORG0000H SJMPSTART ORG0030HSTART:MOVP0,#0F9H MOVP2,#0A4H END,练习:在“Proteus软件”中绘制电路图。用“Keil”模拟仿真软件进行程序的编辑、编译。将“.HEX”文件装载到Proteus中,观察程序运行结果。,静态显示的特点?,无闪烁,编程简单,占I/O线多。,三、显示方式,2.动态显示,三、显示方式,各数码管的段选控制线共用一个8位的并行I/O口,位选控制线分别由
6、相应的I/O口控制;,三、显示方式,2.动态显示,例:编程在两个LED数码管上分别显示数字“1”“2”,显示时逐位扫描,即:选通某位,从段选口送出该位的字形码,显示一段时间,再换下一位。,ORG000HSJMPSTARTORG0030HSTART:MOVP2,#0FDH;选通P2.1所接的数码管;关断P2.0所接的数码管MOVP0,#0F9H;1的字形码送P0口LCALLDLY1MS;延时1msMOVP2,#0FEH;选通P2.0所接的数码管;关断P2.1所接的数码管MOVP0,#0A4H;2的字形码送P0口LCALLDLY1MS;延时1msSJMPSTART,三、显示方式,DLY1MS:MO
7、V R7,#2;1ms延时子程序DLY:MOV R6,#250DJNZ R6,$DJNZ R7,DLYRETEND,三、显示方式,延时时间分别为1ms和1s有什么不同现象?,有闪烁,元器件少,占I/O线少,编程复杂。,动态显示的特点?,利用单片机和2位数码管制作一个秒表。1、显示时间为0099s,每秒自动加1;2、开机时显示“00”;3、设置一个按键,当按键第一次被按下松开时,秒表开始计时;当第二次按下按键松开时,秒表停止计时;当第三次按下按键松开时,秒表复位。,四、秒表的设计,秒表总体设计框图,1.总体设计方案,四、秒表的设计,四、秒表的设计,2.硬件设计,练习:按右图搭建秒表的硬件平台。注
8、意测量所选数码管的类型和引脚。,四、秒表的设计,设计思路:(1)秒信号的产生。(2)计数器:每过1s计数器加1,加到99就停止。(3)把计数器的值转换成十进制并显示。(4)按键数的统计及处理(5)按键去抖处理,比较指令,除法指令,三、显示方式,用一个50ms的定时器定时20次。,3.软件设计,加1、比较指令,内存单元分配:,四、秒表的设计,3.软件设计,四、秒表的设计,按键的抖动及去抖处理,按键在闭合和断开时,触点会存在抖动现象。一般10ms,3.软件设计,四、秒表的设计,按键的抖动及去抖处理,去抖动的方法:硬件去抖,3.软件设计,四、秒表的设计,按键的抖动及去抖处理,去抖动的方法:软件去抖,
9、LOOP:JB P3.2,LOOPLCALL DLY10MSJB P3.2,LOOPJNB P3.2,$LCALL KEY,3.软件设计,四、秒表的设计,3.软件设计,本任务可以划分成以下几个功能程序模块:主程序:定时器、中断、内存单元初始化、按键的查询 KEY键处理子程序:统计按键次数,并进行相应处理 DIS显示子程序:秒计数器的计数值转换成十进制数,并显示 SEG7段码转换子程序:十进制数转换成段码 DLY10MS延时子程序:去抖 DLY1MS延时子程序:动态扫描时间 定时中断服务程序:1S时间到,修改秒计数器,编程技巧:采用模块化的设计方法。,各模块关系如下:,四、秒表的设计,ORG 0
10、0HLJMP MAINORG 000BHLJMP TIME0ORG 0030HMAIN:MOV R0,#0MOV R1,#0MOV R2,#0MOV TMOD,#01HMOV TH0,#3CHMOV TL0,#0B0H,SETB EASETB ET0LOOP:LCALL DISJB P3.2,LOOPLCALL DLY10MSJB P3.2,LOOPJNB P3.2,$LCALL KEYAJMP LOOP,四、秒表的设计,KEY:INCR2CJNER2,#1,KEY2SETBTR0RETKEY2:CJNER2,#2,KEY3CLRTR0RETKEY3:CJNER2,#3,BACKMOVR0,#
11、0MOVR1,#0MOVR2,#0BACK:RET,TIME0:MOV TH0,#3CHMOV TL0,#0B0HINC R0CJNE R0,#20,I_RETMOV R0,#0INC R1CJNE R1,#100,I_RETMOV R1,#0I_RET:RETI,四、秒表的设计,DIS:MOVA,R1MOV B,#10 DIV AB MOVDPTR,#TAB MOVP2,#11111101B ACALLSEG7MOV P0,A LCALL DLY1MS MOV A,B MOV P2,#11111110B ACALLSEG7 MOV P0,A LCALL DLY1MSRET,DLY10MS:M
12、OV R7,#20D1:MOV R6,#248 DJNZR6,$DJNZ R7,D1 RETDLY1MS:MOVR5,#2D2:MOVR4,#248 DJNZR4,$DJNZR5,D2 RET,四、秒表的设计,四、秒表的设计,SEG7:MOVC A,A+DPTRRETTAB:DB 0C0H,0F9H,0A4HDB0B0H,99H,92HDB82H,0F8HDB80H,90H END,三、音乐播放器的设计与制作,4.系统调试,(1)在“Keil”软件中进行程序的编辑和编译,并生成.HEX文件。(2)连接下载线,打开“下载软件”将.HEX目标文件下载到最小系统板的AT89S51单片机芯片上。(3)将秒表控制板J1的1个接线端与最小系统板P3.2相连,将J2的2个接线端分别与最小系统板的P2.1和P2.0相连,将J3的8个接线端与最小系统板P0口相连,将J4的2个接线端分别与最小系统板的电源和接地端相连。(4)接通电源,观察程序运行结果。,1、静态显示与动态显示的特点2、静态显示电路和显示程序的设计方法3、LED动态显示电路和动态扫描显示程序的设计方法,项目总结,作业:1.完成项目报告 2.修改秒表设计方案,用静态显示方式实现秒表的工作,