资源描述:
《实验四 单片机驱动数码管显示》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四单片机驱动数码管显示一实验目的1学习单片机驱动数码管动态显示的电路设计和编程方法二实验原理1、单片机系统中常用的显示器有:发光二极管LED(LightEmittingDiode)显示器、液晶LCD(LiquidCrystalDisplay)显示器、CRT显示器等。LED、LCD显示器有两种显示结构:段显示和点阵显示。七段数码管显示为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。字母一般用米字型。编码表:0x3f0x060x5b0x4f0x660x6d0123450x7d0x070x7f0x6f0x770x7c
2、6789AB0x390x5e0x790x710x00CDEF无显示七段数码管对应八位由低到高:a,b,c,d,e,f,g,dp例:数码管显示2则要点亮a,b,g,e,d段,对应的八位是01011011数码管动态显示方式是将所有显示位的段选择线并联在一起,有统一的I/O资源来控制。各个数码管公共端也有I/O资源来控制,分时的选通各个数码管进行动态显示。每个瞬间只能选通一个数码管,人眼的暂留时间为0.1s,每个数码管的选通时间必须在0.1s以内,通常选择15ms~20ms。电路图见实验附图。三实验内容理解动态显示电路图,参考驱动程序,单片机P0口作段码输出控制,P1口作位码控制,使单片机驱动6个
3、7段数码管输出实验当天年、月、日六位数字。四、实验步骤(1)单片机最小应用系统1的P0口接段码口a~h,P1口接位码口S1~S6。(2)在KEIL软件下编写程序并调试,完成实验内容要求。(3)下载程序,通过实验箱验证设计电路和编写的程序是否达到实验要求。下载程序,通过实验箱验证设计电路和编写的程序是否达到实验要求。五参考程序与电路汇编语言参考程序:ORG0000HLJMPSTARTORG0030HSTART:MOVR0,#30HMOVR1,#40HMOV30H,#1MOV31H,#2MOV32H,#1MOV33H,#1MOV34H,#2MOV35H,#0START1:MOVDPTR,#TAB
4、MOVR3,#6LOOP:MOVA,@R0MOVCA,@A+DPTRMOV@R1,AINCR0INCR1DJNZR3,LOOPMOVR3,#6MOVR1,#40HMOVA,#20HLOOP1:MOVP1,@R1MOVP2,AACALLDELAYMOVP2,#00HRRAINCR1DJNZR3,LOOP1LJMPSTART1TAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,58H,5EH,7BH,71H,00H,40HDELAY:MOVR4,#100LOOP2:DJNZR4,LOOP2RETENDC语言参考程序:#include5、51.h>#includeunsignedcharcodetable[]={0x3f,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsignedchardate[]={1,2,1,1,2,0};voiddelay(){unsignedcharj;for(j=0;j<=100;j++);}voidmain(){unsignedchari,a;while(1){a=0x40;for(i=0;i<6;i++){P1=table[date[i]];a=_cror_(a,1);P2=a;delay();P2=0x00;}}}数码管
6、动态显示电路图(位选信号为高电平,段选信号为高电平):