《单片机数码管静态显示实验.docx》由会员分享,可在线阅读,更多相关《单片机数码管静态显示实验.docx(3页珍藏版)》请在三一办公上搜索。
1、实验五串行口静态显示一. 实验目的1. 学习用单片机的串行口扩展74LS164实现静态显示方法。2. 学习用单片机I/O 口模拟串口工作实现静态显示的编程方法。3. 掌握静态显示的编程方法和数码管显示技术。二. 实验任务1. 根据共阳数码管的功能结构,自编一组0F的笔形码,并按顺序存放建立程序数据表格。2. 利用单片机串行口扩展74LS164,完成串一并转换输出,实现静态显示:要求循环显示0F 这数字,即输出数字“0”时,四位同时显示0,显示1秒后再输出数字“1”,即四位同时显示1, 依次类推,相当于数字自检循环显示。3. 利用单片机串行口(RXD、TXD)编写静态显示程序,在数码显示器上30
2、H、31H单元的内 容,30H、31H单元为任意的十六进制数。4. 用P1.6、P1.7分别替代RXD、TXD做模拟串口完成任务3的静态显示程序。三. 实验电路 g njqwP M-| bli QDS1niq wB i|_| bli 口DS2白CL rti jO 口 PdL|_| tIl 口 Il fl3-.-1-qT|r-坦敏敏JJJdJdJsssss寸oo1_1静态显示实验电路连线方法:静态显示只要连接2根线:单片机的RXD与DAT节点连接,TXD与CLK接点连接,要把电源短路片插上。PW11是电源端。四. 实验原理说明1. 静态显示实际上动态的过程,静态的显示,单片机串行口输出的数据通过
3、74LS164串并转换输出,每输出一个数据,把原先的的数据推挤到下一个显示位上显示。实验时,单片机串行口应工作在方 式0,RXD (P3.0)输出串行数据,TXD (P3.1)输出移位时钟,在移位时钟的作用下,串行口发送缓冲器 的数据一位一位地从RXD移入到74LS164中,并把后面送入的数据推挤原先的数据到下一个级联的 74LS164中输出,每输出一个数据可以延时1ms。实验时,通过改变延时时间,可以更清楚地观察到数据 推挤的过程。2. 串行口工作在方式0时,串行传输数据为8位,只能从RXD端输入输出TXD端用于输出移位同步时 钟信号,其波特率固定为振荡频率的1/12,由软件置位串行控制寄存
4、器SCON的REN位才能启动串行接收。 在CPU将数据写入SBUF寄存器后,立即启动发送,第8位数据输送完后,硬件将SCON寄存器的TI位置1, 必须由软件对它清0才能启动发送下一帧数据。3. 静态显示笔型码:笔形码:012 345 678 9 A B C D E F11H,D7H,98H,92H,56H,32H,30H,97H,10H,12H,14H,70H,39H,D0H,38H,3CH五. 程序流程图和资源分配1. 编程思路单片机串行口应工作在方式0,RXD (P3.0)输出串行数据,TXD (P3.1)输出移位时钟。使用R0作指针, 将30H单元指向R0 .采用查表方式,先取单元中低字
5、节,查表后发送内容,再取单元高字节,再发送。再指 针加1,重复上述。2. 算法流程图3. 资源分配用R0作指针,R7作控制显示数4. 程序设计ORG0000MOVSCON,#00MOVDPTR,#TABMOVR0,#30HMOVR7,#02LOOP:MOVA,R0ANLA,#0FHMOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTIMOVA,R0SWAPAANLA,#0FHMOVCA,A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR0DJNZR7,LOOPTAB:DB11H,0D7H,98H,92H,56H,32H,30H,97H,10H,12H,14H,70H,39H,0D0H,38H,3CHEND六. 调试1. 第一次调试时发现数码管显示的数字错码,认真检查程序没发现错误。分析原因可能是笔形码错误,改 正笔形码。2. 改正笔形码后,程序能够正常运行,并且能够显示正常。七. 结果分析和总结1. 结果分析:在30H和31H中分别置数12H和34H,数码管显示3412。结果正确。2. 总结:问题1:数码管显示数据错乱。解决办法:笔形码错误,改正笔形码。体会:以前只在生活中看到过数码管显示数据,这次试验通过自己从编程,到接线再到自己调试,把生 活中看到的通过自己的动手和理论分析将它实现了,科学的魅力极大啊。以后一定得努力学习科学知识!