单片机实用技术教程 教学课件 PPT 作者 杨宏丽 项目5 学习显示接口

上传人:E**** 文档编号:89355165 上传时间:2019-05-23 格式:PPT 页数:78 大小:3.71MB
返回 下载 相关 举报
单片机实用技术教程 教学课件 PPT 作者 杨宏丽 项目5  学习显示接口_第1页
第1页 / 共78页
单片机实用技术教程 教学课件 PPT 作者 杨宏丽 项目5  学习显示接口_第2页
第2页 / 共78页
单片机实用技术教程 教学课件 PPT 作者 杨宏丽 项目5  学习显示接口_第3页
第3页 / 共78页
单片机实用技术教程 教学课件 PPT 作者 杨宏丽 项目5  学习显示接口_第4页
第4页 / 共78页
单片机实用技术教程 教学课件 PPT 作者 杨宏丽 项目5  学习显示接口_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《单片机实用技术教程 教学课件 PPT 作者 杨宏丽 项目5 学习显示接口》由会员分享,可在线阅读,更多相关《单片机实用技术教程 教学课件 PPT 作者 杨宏丽 项目5 学习显示接口(78页珍藏版)》请在金锄头文库上搜索。

1、项目5 学习显示接口,任务1 设计七段数码管广告牌,任务分析 任务实现 相关知识,任务分析,图5.1 6位数码管显示效果示意图,任务实现,步骤1硬件电路设计,图5.2 6位数码管动态显示电路,表5.1 数码管控制电路元器件清单,步骤2准备元器件并制作电路板,图5.3 6位数码管动态显示硬件电路板,下面以压缩BCD码的形式存放被显示数据为例,编制动态显示控制程序。 ;*多位数码管显示程序* ;程序名:程序PM5_1.asm ;程序功能:在6个数码管上稳定地显示“123456”。 ;入口参数:要显示的数据1,2,3,4,5,6以压缩BCD码的形式存放在内部RAM30H32H单元中。 ORG 000

2、0H ZERO EQU 00H PSEN EQU 03H START:MOV R5,#ZERO ;设置延时初值 MOV R0,#30H ;显示单元首地址送R0 MOV R3,#PSEN ;确定循环显示次数 MOV R4,#0FEH ;确定显示位码初值,步骤3编写控制程序,DISP: MOV A,R0 ;取显示单元内容 SWAP A ANL A,#0FH ;取显示内容低位 MOV DPTR,#TAB MOVC A,A+DPTR ;查表,取显示字符 MOV P1, A ;显示字符送P1端口 MOV A, R4 MOV P2, A ;显示位送P2端口,显示低位数据,HERE0:DJNZ R5,HER

3、E0 ;显示延时 RL A ;显示位左移 MOV R4,A MOV A,R0 ANL A,#0FH ;取显示内容高位 MOV DPTR,#TAB MOVC A,A+DPTR MOV P1, A MOV A,R4 MOV P2, A ;显示高位数据 RL A ;显示位左移 MOV R4,A,HERE1:DJNZ R5,HERE1 ;显示延时 INC R0 ;显示单元地址加1 DJNZ R3, DISP ;循环显示 SJMP START TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H ;共阳极显示字型编码表 DB 80H,90H,88H,83H,0C0H,

4、0A1H,86H,8EH,将硬件电路板和单片机开发系统连接好,进行以下操作。 输入源程序。 编译源程序。 打开Idata区,在30H32H单元中分别输入12H、34H、56H这3个值。 运行程序,6个数码管上将显示“123456”6个字符。 在30H32H输入其他数值,观察显示数字是否正确。,步骤4调试并运行程序,图5.4 在6个数码管上稳定显示“123456”动态显示流程图,步骤5程序分析总结,相关知识,1数码管的结构及原理,图5.5 数码管外形 图5.6 数码管外部引脚 图5.7 数码管结构图,表5.2 数码管字型编码表,2数码管的静态显示,图5.8所示为单片机的P1端口驱动一位数码管静态

5、显示的电路图。,图5.8 一位数码管静态显示的接口电路,【例5.1】 数码管的闪烁显示。 利用图5.8所示的电路,使电路中的数码管闪烁显示字母P。 (1)题意分析 在数码管上显示字母P,只需按照P的形状点亮相应的段就可以了;要想达到闪烁的效果,利用前面介绍的亮灭闪烁的原理即可。,源程序如下: ;*一位数码管闪烁显示程序* ;程序名:一位数码管闪烁显示程序EX5_1.asm ;程序功能:数码管闪烁显示字母P ORG 0000H ;将程序从地址0000H开始存放在存储器中 START:MOV P1,#8CH ;点亮字母P ACALL DELAY ;调用延时子程序 MOV P1,#0FFH ;熄灭数

6、码管 ACALL DELAY ;调用延时子程序 AJMP START ;返回,重复闪烁过程,(2)程序设计,;*延时子程序* ;程序名:延时子程序DELAY ;程序功能:延时一段时间,延时时间长短主要由R3、R4的次数决定 DELAY:MOV R3,#0FFH ;延时子程序 DEL2:MOV R4,#0FFH DEL1:NOP DJNZ R4,DEL1 DJNZ R3,DEL2 RET ;子程序返回 END,图5.9所示为两位数码管静态显示的接口电路图。,(2)多位静态显示接口,图5.9 两位数码管静态显示的接口电路,3数码管的动态显示,图5.10所示为6位共阳极数码管动态显示接口电路。,图5

7、.10 6位共阳极数码管动态显示的接口电路,任务2 设计正计时的电子秒表,任务分析 任务实现 相关知识,任务实现,步骤1硬件电路设计,任务分析,图5.11 正计时的电子秒表硬件电路图,表5.3 信号灯控制电路元器件清单,步骤2准备元器件并制作电路板,图5.12 正计时的电子秒表硬件实物,表5.4 秒表程序占用单片机存储资源分配列表,步骤3编写控制程序,按流程图编程思路编制源程序: ;*电子秒表程序* ;程序名:电子秒表程序PM5_2.asm ;程序功能:电子秒表启动、显示、暂停和清零功能 SEC EQU 20H MSEC EQU 21H ORG 0000H AJMP MAIN ORG 000B

8、H AJMP CONT ;转定时器中断的秒值刷新子程序,MAIN:MOV TMOD,#01H ;T0采用工作方式1定时 MOV TH0,#3CH ;T0初值 MOV TL0,#0B0H MOV SEC,#00H ;秒计数单元初值 MOV MSEC,#14H ;50ms计数单元初值 MOV SP,#3FH ;堆栈指针初值 MOV 30H,#00H ;显示缓冲单元清0 MOV 31H,#00H MOV IE,#82H ;允许中断 AGIN:LCALL DISP SJMP AGIN,;*显示子程序DISP * DISP:MOV R2,#02H ;数码管显示位数送R2 MOV R1,#00H ;设定显

9、示数值 MOV R4,#02H ;从最右端数码管开始显示 MOV R0,#30H ;显示缓冲区首地址送R0 MOV A,R0 ;秒显示内容送A MOV DPTR,#TAB ;字形表首地址 DISP1:MOVC A,A+DPTR ;查表取字形码 MOV P0,A ;字形码送P0端口 MOV A,R4 ;取位选控制字 MOV P2,A ;送P2端口 DJNZ R1,$ ;延时1ms DJNZ R1,$ RR A ;位选移位 MOV R4,A ;保存位选控制字 INC R0 ;取下一位缓冲区显示数据 MOV A,R0 DJNZ R2,DISP1 ;位扫描次数判断 RET,TAB: DB0C0H,F9

10、H,0A4H,0B0H,99H ;共阳极数码管显示字形表 DB 92H,82H,0F8H,80H,90H ;* 定时器中断服务子程序CONT * ;程序功能:秒计数值、显示缓冲区内容刷新 ;入口参数:秒计数单元SEC ;出口参数:秒计数单元SEC;显示缓冲区30H、31H CONT:PUSH ACC ;保护现场 MOV TH0,#3CH ;重置定时器1初值 MOV TL0,#0B0H DJNZ MSEC,EXIT ;判断1s到否 MOV MSEC,#14H ;到1s,重置50ms计数初值 INC SEC ;秒单元计数值加1 CJNE SEC,#60,CHAI ;判断60s到否 MOV SEC,

11、#00 ;秒计数单元清0,CHAI:MOV A,SEC ;秒计数单元内容拆分 MOV B,#10 DIV AB MOV 31H,A ;十位送显示缓冲区31H MOV 30H,B ;个位送显示缓冲区30H EXIT: POP ACC ;恢复现场 RETI ;中断返回 END, 输入源程序。 编译源程序。 运行程序,两个数码管上将从00开始显示。 用单步运行、连续运行等方法调试程序,当程序运行无误后,在连续运行状态下观察该任务的演示效果。,步骤4调试并运行程序,步骤5程序分析总结,图5.13 电子秒表程序设计流程图1,相关知识,图5.14 定时器和数码管两方面知识的联系,图5.15 电子钟显示功能

12、分配图,【例5.2】 6位数码管显示的电子钟。参考本项目任务1、2的程序,利用图5.10所示的电路完成6位数码管显示的电子钟,显示功能分配如图5.15所示。,(1)题意分析 任务1的程序PM5_1.asm完成了6位数码管的动态显示,要显示的数据16以压缩BCD码的形式存放在内部RAM30H32H,即30H单元的内容为12H、31H单元的内容为34H、32H单元的内容为56H。 如果我们把内部RAM30H32H先定义为HOUR、MIN、SEC,并将这些单元钟存放的内容分别看作是小时、分、秒的值,这时的6位动态显示就可以作为一个时钟了。,关键的问题是如何让RAM30H32H与时间对应上,在程序的开

13、始我们先将这些单元的内容都置为0,显示就从“00 00 00”开始。 计时的任务就像任务2的程序PM5_2.asm一样,由定时器中断来完成。 仍然选用定时器0的工作方式1,每隔50ms溢出中断;计数20次后秒计数单元SEC加1;秒计数60次后清0并给分钟单元MIN加1,分计数60次后清0并给小时单元HOUR加1;小时计数24次后清0。,;*6位数码管电子钟程序* ;程序名:程序EX5_2.asm ;程序功能:在6个数码管上稳定地显示时间,从“00 00 00”到“23 59 59”轮流显示 ZERO EQU 00H ;定义有关单元 PSEN EQU 03H MSEC EQU 21H HOUR

14、EQU 30H MIN EQU 31H SEC EQU 32H ORG 0000H AJMP MAIN ORG 000BH AJMP CONT ;转定时器中断的秒值刷新子程序,(2)程序设计,MAIN:MOV TMOD,#01H ;T0采用工作方式1定时 MOV TH0,#3CH ;T0初值 MOV TL0,#0B0H MOV SEC,#00H ;秒计数单元初值 MOV MIN,#00H ;分计数单元初值 MOV HOUR,#00H ;小时计数单元初值 MOV MSEC,#14H ;50ms计数单元初值 MOV SP,#3FH ;堆栈指针初值 MOV IE,#82H ;允许中断 AGIN:LC

15、ALL DISP SJMP AGIN,*6位数码管显示子程序* ;程序功能:数码管的动态显示 ;入口参数:循环显示的次数PSEN3 ; 时、分、秒计数单元HOUR、MIN、SEC DISP: MOV R5,#ZERO ;设置延时初值 MOV R0,#30H ;显示单元首地址送R0 MOV R3,#PSEN ;确定循环显示次数 MOVR4,#0FEH ;确定显示位码初值,DISP1:MOV A,R0 ;取显示单元内容 MOV B,#10 DIV AB ;显示单元的内容除以10,高位在A、低位在B MOV DPTR,#TAB MOVC A,A+DPTR ;查表,取高位显示字符 MOV P1, A ;显示字符送P1端口 MOV A, R4 MOV P2, A ;显示位送P2端口,显示低位数据,HERE0: DJNZ R5,HERE0 ;显示延时 RL A ;显示位左移 MOV R4,A MOV A,B ;取显示内容高位 MOV DPTR,#TAB MOVC A,A+DPTR MOV P1, A MOV

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

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号