秒表的设计与制作_第1页
秒表的设计与制作_第2页
秒表的设计与制作_第3页
秒表的设计与制作_第4页
秒表的设计与制作_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2/1/20231学习目标知识目标

了解数码管的基础知识。

熟悉LED静态显示电路和显示程序的设计方法。掌握LED动态显示电路和动态扫描显示程序的设计方法。进一步掌握中断系统和定时器的应用。

学习目标能力目标能进行单片机数码管显示系统设计。会使用单片机的开发工具。

能完成秒表的设计、制作与调试。

在单片机应用系统中,通常要使用显示器作为输出设备显示系统的状态,常用的显示器有LED数码管、点阵显示器和液晶显示器。项目要求

利用单片机和2位数码管制作一个秒表。1、显示时间为00~99s,每秒自动加1;2、开机时显示“00”;3、设置一个按键,当按键第一次被按下松开时,秒表开始计时;当第二次按下按键松开时,秒表停止计时;当第三次按下按键松开时,秒表复位。项目要求电路图一、数码管简介1.数码管的结构及工作原理单片机系统扩展LED数码管时多用共阳LED:

共阳数码管每个段笔画是用低电平(“0”)点亮的,要求驱动功率很小;而共阴数码管段笔画是用高电平(“0”)点亮的,要求驱动功率较大。通常每个笔段要串一个数百欧姆的限流电阻。2.数码管的编码方式代码位D7D6D5D4D3D2D1D0显示段dpgfedcba一、数码管简介共阴极和共阳极的字段码互为反码。显示字符共阳极字段码共阴极字段码显示字符共阳极字段码共阴极字段码0C0H3FH990H6FH1F9H06HA88H77H2A4H5BHB83H7CH3B0H4FHCC6H39H499H66HDA1H5EH592H6DHE86H79H682H7DHF8EH71H7F8H07H“灭”FFH00880H7FHLED数码管的字形码表一、数码管简介二、显示程序的任务1、设置显示缓冲区,存放待显示数据和字符。2、显示译码:程序存储器中建立字形码常数表,查表得出对应数据和字符的字形码。3、输出显示:输出字形码到显示端口。例:电路如图所示,要求数码管依次显示0~F,每位数字显示1S。设晶振频率为12MHz。(一)绘制程序流程图

本项目中要显示的数字或符号的段码在编写程序时给出,故使用查表程序结构形式实现。二、显示程序的任务解:

ORG 00H SJMP START ORG 0030HSTART:MOV P1,#0FFH ;数码管的8段LED全暗ST1: MOV DPTR,#TAB

MOV R0,#0 ;显示初值ST2: MOV A,R0 ACALL SEG7 ;根据显示数字查显示码

MOV P1,A ;显示码送P1口显示

ACALL DELAY ;延时1s INC R0 ;显示数字加1 CJNE R0,#10h,ST2 ;16个数没显示完转ST2 SJMP ST1 ;16个数显示完转ST1,循环显示二、显示程序的任务DELAY:MOV R7,#10 ;1S延时子程序D1: MOV R6,#200D2:MOV R5,#250 DJNZ R5,$ DJNZ R6,D2 DJNZ R7,D1 RET二、显示程序的任务SEG7: MOVC A,@A+DPTR ;数字转换为显示码

RETTAB: DB 0C0H,0F9H,0A4H,0B0H ;0~3的共阳型显示码

DB 99H,92H,82H,0F8H ;4~7的共阳型显示码

DB 80H,90H,88H,83H ;8~B的共阳型显示码

DB 0C6H,0A1H,86H,8EH ;C~F的共阳型显示码

END练习:在“Proteus软件”中绘制电路图。用“Keil”模拟仿真软件进行程序的编辑、编译。将“.HEX”文件装载到Proteus中,观察程序运行结果。二、显示程序的任务三、显示方式多位数码管的两种显示方式:静态显示和动态显示

abdpCOM

abdpCOM

abdpCOMafbge

cddp

段选控制位选控制段选:显示什么字符位选:哪位显示三、显示方式1.静态显示

各数码管的段选线分别接一个8位的并行I/O口;

数码管在显示某一字符时,只要通过相应的I/O口送出该字符的字形码。

abdpCOM

abdpCOM

abdpCOMafbge

cddp

段选控制位选控制+5V例:编程在两个LED数码管上显示数字“1”“2”

MOV P0,#0F9H MOV P2,#0A4H三、显示方式例:用静态显示方式实现0~99s运行的秒表解:设计思路:(1)秒信号的产生。(2)计数器:每过1s计数器加1,加到99就停止。(3)把计数器的值转换成十进制并显示。比较指令除法指令三、显示方式用一个50ms的定时器定时20次。三、显示方式本任务可以划分成以下几个功能程序模块:主程序:定时器、中断、内存单元初始化

DIS显示子程序:秒计数器的计数值转换成十进制数,并显示

SEG7段码转换子程序:十进制数转换成段码定时中断服务程序:1S时间到,修改秒计数器编程技巧:采用模块化的设计方法。三、显示方式各模块关系如下:

ORG 00H SJMP STAR ORG 1BH SJMP T1S QRG 30HSTAR:MOV R2,#00 ;秒计数器

MOV R4,#20 ;50ms计数器

MOV IE,#88H MOV TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H SETB TR1三、显示方式程序如下:LOOP:ACALL DIS SJMP LOOPT1S: MOV TH1,#3CH MOV TL1,#0B0H DJNZ R4,T1S1 MOV R4,#20

INC R2 CJNE R2,#99,T1S1 CLR TR1T1S1: RETI三、显示方式DIS: MOV A,R2 MOV B,#10 DIV AB ACALL SEG7 MOV P0,A MOV A,B ACALL SEG7 MOV P2,A RET三、显示方式SEG7: INC A MOVC A,@A+PC RET DB 0C0H,0F9H,0A4H,0B0H DB 99H,92H,82H,0F8H DB 80H,90H,88H,83H DB 0C6H,0A1H,86H,8EHEND三、显示方式练习:在“Proteus软件”中绘制电路图。用“Keil”模拟仿真软件进行程序的编辑、编译。将“.HEX”文件装载到Proteus中,观察程序运行结果。要求秒表循环计时,程序如何修改?静态显示的特点?无闪烁,编程简单,占I/O线多。三、显示方式各数码管的段选线共用一个8位的并行I/O口,位选线分别由相应的I/O口控制;显示时逐位扫描,即:从段选口送出某位的字形码,再选通该位,显示一段时间,再换下一位。2.动态显示

abdpCOM

abdpCOM

abdpCOMafbge

cddp

段选控制位选控制I/O口I/O口有闪烁,元器件少,占I/O线少,编程复杂。动态显示的特点?三、显示方式例:8-1简单程序流程MOVP2,#0C0HMOVP1,#0FEH延时时间分别为10ms和1s有什么不同现象?三、显示方式例:8-1循环程序流程三、显示方式

ORG 0 SJMP STAR ORG 30HSTAR:MOV P1,#0FFH ;关闭位选口

MOV P2,#0FFH ;关闭段选口ST1: MOV R0,#0 ;计数器预设为0 MOV R1,#0FEH ;选通P1.0控制的显示器ST2: MOV A,R0 ;将R0中数字转换为显示码 ;从P2口输出

LCALL SEG7 CPL A ;取反三、显示方式

MOV P2,A MOV A,R1 ;位选通:P1 MOV P1,A LCALL DLY10 ;延时10MS MOV P1,#0FFH ;关断位选通

INC R0 ;计数+1 CJNE R0,#4H,ST3 ;四位是否扫描完?

SJMP ST1 ;0~3扫描完,重新开始ST3: MOV A,R1 ;0~3依次显示

RL A MOV R1,A SJMP ST2三、显示方式DLY10:MOV R7,#20 ;延时10MS MOV R6,#248DLY1: DJNZ R6,$ DJNZ R7,DLY1 RETSEG7: INC A ;将数字转换为显示码

MOVC A,@A+PC RET DB 3FH,06H,5BH,4FH;共阴极段码:0,1,2,3 DB 66H,6DH,7DH,07H ;4,5,6,7 DB 7FH,6FH,77H,7CH ;8,9,A,B DB 39H,5EH,79H,71H ;C,D,E,F END三、显示方式四、秒表的设计1.硬件设计元器件清单序号名称数量序号名称数量1AT89S51110470Ω电阻1240pin活动Ic座111220Ω电阻2330P瓷片电容2124.7KΩ电阻2412M晶振113三极管85502510UF/16V电解电容114两位一体共阳极数码管1610K电阻115ISP下载线17USB插头116ISP接口18电源按键117万用电路板15×9cm19LED118按键1四、秒表的设计练习:搭建秒表的硬件平台。注意测量所选数码管的类型和引脚。四、秒表的设计四、秒表的设计按键的抖动及去抖处理

按键在闭合和断开时,触点会存在抖动现象。一般﹤10ms

四、秒表的设计按键的抖动及去抖处理

去抖动的方法:硬件去抖软件去抖LOOP:JBP3.2,LOOP LCALLDE10 JBP3.2,LOOP LCALLKEY&&+5v+5v消除抖动电路开关四、秒表的设计2.软件设计本任务可以划分成以下几个功能程序模块:主程序:定时器、中断、内存单元初始化、按键的查询

KEY键处理子程序:统计按键次数,并进行相应处理

DIS显示子程序:秒计数器的计数值转换成十进制数,并显示

SEG7段码转换子程序:十进制数转换成段码

DLY10延时子程序:去抖、动态扫描时间定时中断服务程序:1S时间到,修改秒计数器各模块关系如下:四、秒表的设计内存单元分配:四、秒表的设计内存单元功能初值R050ms计数器00HR11s计数器00HR2按键次数统计00H

ORG00H LJMP STAR ORG 000BH LJMP TIME0 ORG 0030HSTAR:MOV R0,#0 MOV R1,#0 MOV R2,#0 MOVTMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H

SETB EA SETBET0LOOP:LCALLDIS JB P3.2,LOOP LCALLDLY10 JB P3.2,LOOP JNB P3.2,$ LCALLKEY AJMP LOOP四、秒表的设计KEY: INC R2 CJNE R2,#1,KEY2 SETB TR0 RETKEY2:CJNE R2,#2,KEY3 CLR TR0 RETKEY3:CJNE R2,#3,BACK MOV R0,#0 MOV R1,#0 MOV R2,#0BACK:RETTIME0:MOVTH0,#3CH MOV TL0,#0B0H INC R0 CJNE R0,#20,I_RET MOV R0,#0

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论