资源描述:
《片机数码管显示程序设计.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C7数码管显示程序设计山东职业学院主要内容发光二极管的工作参数数码管的结构和工作原理多位数码管动态显示电路原理图编程练习:驱动一位数码管发光二极管的工作参数发光二极管正常发光时,电流约为5~10mA,压降1V左右。限流电阻R=(5V-1V)/8mA=500ΩP1.0+5V500引脚输出低电平时,发光二极管导通。comabcdpdpaabcdefgbcdefgdp100001101com;共阳极7段数码管驱动段码表;pgfedcbaTAB:DB11000000B;0DB11111001B;1DB10100100B;2DB101
2、10000B;3DB10011001B;4DB10010010B;5DB10000010B;6DB11111000B;7DB10000000B;8DB10010000B;9共阳极数码管共阳极数码管的结构是:将8个发光二极管排列成一个“8.”的形状,所有发光二极管阳极连接在一起做公共端com,阴极作为各个段的控制端a,b,c,d,e,f,g,dp。多位数码管动态显示电路原理图实验板数码管连接示意图P0.0+5Vcom1com2com3com4com5com6abcdefgdpP0.1P0.2P0.3P0.4P0.5P0.6P0
3、.7P2.7P2.6P2.5P2.4P2.3P2.2位驱动段驱动六位共阳极数码管模块相同的段驱动端都并联在一起。在第一位上显示5P0.0+5Vcom1com2com3com4com5com6abcdefgdpP0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.7P2.6P2.5P2.4P2.3P2.2位驱动P2.7输出0段驱动P0口输出“5”的段码“10010010B”01111101001001编程练习1-驱动一位数码管要求:在第一位显示连续变化的0-9,间隔时间自定。开始(R0)=0Y(A)=(R0)查段码表,
4、取得段驱动码段驱动码送P0口P2.7=0延时(R0)+1(R0)=10?(R0)=0N参考课本P196页例1,在keil中编程,生产HEX文件。在proteus中观察运行结果。(参考“c6定时器应用程序调试”介绍的方法)编程练习2-动态显示程序要求:显示123.456。T0中断熄灭显示提示:(1)使用内部RAM21H-26H单元做显示缓冲区。(2)使用27H单元记当前显示位(位号1-6)。(3)使用28H单元控制位闪烁,1闪烁,0不闪烁。(4)使用显示缓冲区单元最高位控制小数点显示,在高位为1,表示该位显示小数点。(5)fo
5、sc=11.0592MHz,使用定时器T0定时2.5ms进行扫描速率控制。(6)T0中断服务程序使用工作寄存器组1工作。重装初值保护现场选工作寄存器组根据当前显示位查得段驱动码处理小数点段驱动码送P0口根据当前显示位查得位驱动码位驱动码送P2口计算显示位恢复现场返回动态显示参考程序1:定义变量;---------------------------------------------------------;动态显示程序;----------------------------------------------------
6、-----;全局变量定义FLAGEQU20H;标志位DISSEGEQUP0;显示段驱动DISBITEQUP2;显示位驱动P2.7-P2.2DISBUFEQU21H;显示缓冲区首地址21H-26HDISBITBUFEQU27H;当前显示位计数器0-5FLASHEQU28H;闪烁控制xxxxxx00,将x=1闪烁,=0不闪;小数点的处理:;若显示‘3’,缓冲区放‘3’,若显示‘3.’,缓冲区放‘3+80H’,最高位为1S_PULSEEQUFLAG.0;秒脉冲CNT_2D5MSEQU2FH;2.5MS计数器CNT_10MS1EQU
7、30H;10MS计数器CN_0D5SEQU31H;0.5秒计数器;----------------------------------------------------------动态显示参考程序2:主程序ORG0000HLJMPSTARTORG000BHLJMPT0SERV;T0中断入口ORG0030HSTART:MOVSP,#50H;初始化堆栈LCALLINIT;初始化LOOP:MOVDISBUF,#1MOVDISBUF+1,#2MOVDISBUF+2,#3MOVDISBUF+3,#4+80H;显示小数点MOVDISB
8、UF+4,#5MOVDISBUF+5,#6AJMPLOOP;---------------初始化子程序-----------------INIT:MOVR0,#2;清理内部RAMCLRAINIT1:MOV@R0,AINCR0CJNER0,#50H,INIT1;初始化定时器T0;f=11.0