欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    单片机数码管显示.ppt

    • 资源ID:5095666       资源大小:281.99KB        全文页数:18页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机数码管显示.ppt

    C7数码管显示程序设计,山东职业学院,主要内容,发光二极管的工作参数数码管的结构和工作原理多位数码管动态显示电路原理图编程练习:驱动一位数码管,发光二极管的工作参数,发光二极管正常发光时,电流约为510mA,压降1V左右。,限流电阻R=(5V-1V)/8mA=500,引脚输出低电平时,发光二极管导通。,com,a,b,c,dp,a,a,b,c,d,e,f,g,b,c,d,e,f,g,dp,1,0,0,0,0,1,1,0,1,com,;共阳极7段数码管驱动段码表;pgfedcbaTAB:DB 11000000B;0DB 11111001B;1DB 10100100B;2DB 10110000B;3DB 10011001B;4DB 10010010B;5DB 10000010B;6DB 11111000B;7DB 10000000B;8DB 10010000B;9,共阳极数码管,共阳极数码管的结构是:将8个发光二极管排列成一个“8.”的形状,所有发光二极管阳极连接在一起做公共端com,阴极作为各个段的控制端a,b,c,d,e,f,g,dp。,多位数码管动态显示电路原理图实验板数码管连接示意图,P0.0,+5V,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,位驱动,段驱动,六位共阳极数码管模块相同的段驱动端都并联在一起。,在第一位上显示5,P0.0,+5V,P0.1,P0.2,P0.3,P0.4,P0.5,P0.6,P0.7,P2.7,P2.6,P2.5,P2.4,P2.3,P2.2,位驱动P2.7输出0段驱动P0口输出“5”的段码“10010010B”,0,1,1,1,1,1,0,1,0,0,1,0,0,1,编程练习1驱动一位数码管,要求:在第一位显示连续变化的09,间隔时间自定。,开始,(R0)=0,Y,(A)=(R0),查段码表,取得段驱动码,段驱动码送P0口,P2.7=0,延时,(R0)+1,(R0)=10?,(R0)=0,N,参考课本P196页例1,在keil中编程,生产HEX文件。,在proteus中观察运行结果。(参考“c6定时器应用程序调试”介绍的方法),编程练习2动态显示程序,要求:显示123.456。,T0中断,熄灭显示,提示:(1)使用内部RAM21H26H单元做显示缓冲区。(2)使用27H单元记当前显示位(位号16)。(3)使用28H单元控制位闪烁,1闪烁,0不闪烁。(4)使用显示缓冲区单元最高位控制小数点显示,在高位为1,表示该位显示小数点。(5)fosc11.0592MHz,使用定时器T0定时2.5ms进行扫描速率控制。(6)T0中断服务程序使用工作寄存器组1工作。,重装初值保护现场选工作寄存器组,根据当前显示位查得段驱动码,处理小数点,段驱动码送P0口,根据当前显示位查得位驱动码,位驱动码送P2口,计算显示位,恢复现场,返回,动态显示参考程序1:定义变量,;-;动态显示程序;-;全局变量定义FLAG EQU 20H;标志位DISSEG EQU P0;显示段驱动DISBIT EQU P2;显示位驱动DISBUF EQU 21H;显示缓冲区首地址21H-26HDISBITBUF EQU 27H;当前显示位计数器0-5FLASH EQU 28H;闪烁控制xxxxxx00,将x=1闪烁,=0不闪;小数点的处理:;若显示3,缓冲区放3,若显示3.,缓冲区放3+80H,最高位为1S_PULSE EQU FLAG.0;秒脉冲CNT_2D5MS EQU 2FH;2.5MS计数器CNT_10MS1 EQU 30H;10MS计数器CN_0D5S EQU 31H;0.5秒计数器;-,动态显示参考程序2:主程序,ORG 0000H LJMP START ORG 000BH LJMP T0SERV;T0中断入口 ORG 0030HSTART:MOV SP,#50H;初始化堆栈 LCALL INIT;初始化 LOOP:MOV DISBUF,#1 MOV DISBUF+1,#2 MOV DISBUF+2,#3 MOV DISBUF+3,#4+80H;显示小数点 MOV DISBUF+4,#5 MOV DISBUF+5,#6 AJMP LOOP;-初始化子程序-INIT:MOV R0,#2;清理内部RAM CLR AINIT1:MOV R0,A INC R0 CJNE R0,#50H,INIT1;初始化定时器T0;f=11.0592MHz,2.5ms定时 MOV TMOD,#01H;模式1 MOV TL0,#05H MOV TH0,#0F7H SETB TR0;启动 SETB ET0;开中断 SETB EA RET,动态显示参考程序3:中断服务程序,;-2.5MS中断服务程序=动态显示-T0SERV:MOV TL0,#05H MOV TH0,#0F7H PUSH PSW;保护现场 PUSH ACC PUSH DPH PUSH DPL SETB RS0;中断服务使用工作寄存器组1 CLR RS1;-计算时间-INC CNT_2D5MS;2.5MS计数器 MOV A,CNT_2D5MS CJNE A,#4,T0SERV3;4x2.5ms=10ms MOV CNT_2D5MS,#0 INC CNT_10MS1;10MS计数+1 MOV A,CNT_10MS1 CJNE A,#50,T0SERV3 MOV CNT_10MS1,#0 INC CN_0D5S;0.5秒计数 CPL S_PULSE;秒脉冲,每0.5秒变化,动态显示参考程序4:中断服务程序,;-显示处理-T0SERV3:ORL DISBIT,#11111100B;熄灭显示 MOV A,DISBITBUF;取当前显示位 INC A;指向下一位,若(A)+1=6,使(A)=0 CJNE A,#6,T0SERV1 CLR AT0SERV1:MOV DISBITBUF,A MOV R0,#DISBUF;取显示内容 ADD A,R0 MOV R0,A MOV A,R0;A中为显示内容 MOV C,ACC.7;判断是否显示小数点 CLR ACC.7 MOV DPTR,#LEDTAB MOVC A,A+DPTR;取段码 JNC T0SERV2 CLR ACC.7;设置显示小数点T0SERV2:MOV DISSEG,A;送段码;闪烁控制 MOV A,FLASH;取闪烁控制码 MOV R0,DISBITBUF;将当前显示位的闪烁控制位移入c中 INC R0T0SERV4:RLC A DJNZ R0,T0SERV4 JNC T0SERV5;C=1,闪烁 JNB S_PULSE,T0SERV5;S_PULSE=1时不显示 MOV DISSEG,#0FFHT0SERV5:MOV DPTR,#DISBITTAB;取位驱动码 MOV A,DISBITBUF MOVC A,A+DPTR ANL DISBIT,A;送位驱动码T0SERV0:POP DPL;恢复现场 POP DPH POP ACC POP PSW RETI,动态显示参考程序5:位段驱动码表,;-;数码管位驱动代码表DISBITTAB:DB 01111111B;位1 DB 10111111B;位2 DB 11011111B;位3 DB 11101111B;位4 DB 11110111B;位5 DB 11111011B;位6;-;共阳极数码管段驱动代码表LEDTAB:DB 0C0H;0 00 DB 0F9H;1 01 DB 0A4H;2 02 DB 0B0H;3 03 DB 99H;4 04 DB 92H;5 05 DB 82H;6 06 DB 0F8H;7 07 DB 80H;8 08 DB 90H;9 09 DB 0FFH;空 10;-,编程练习3,动态显示:前5位显示01234,使前两位闪烁,最后一位循环显示09,变化速度自定。提示:只需要在练习2的基础上,改动主程序。(利用双重循环编一个延时程序),开始,初始化,Y,显示012340,(R0)=0,(DISBUF+5)=(R0),延时,(R0)=10?,(R0)=0,N,(R0)+1,主程序流程图,(FLASH)=11000000B,练习3主程序参考:,ORG 0000H LJMP START ORG 000BH LJMP T0SERV;T0中断入口 ORG 0030HSTART:MOV SP,#50H;初始化堆栈 LCALL INIT;初始化 MOV DISBUF,#0 MOV DISBUF+1,#1 MOV DISBUF+2,#2 MOV DISBUF+3,#3 MOV DISBUF+4,#4 MOV DISBUF+5,#0 MOV FLASH,#11000000B MOV R0,#0 LOOP:MOV DISBUF+5,R0 LCALL DELAY INC R0 CJNE R0,#10,LOOP MOV R0,#0 AJMP LOOP,编程练习4,秒表:前4位不显示,后两位循环显示0059秒。提示:只需要在练习2的基础上,定义29H单元存储秒的值,利用T0中断服务程序中的0.5秒信号产生1秒信号。主程序负责将秒的个位和十位分离并放入显示缓冲区。,开始,初始化,显示 00,(A)=(29H),主程序流程图,(B)=10,AB,(DISBUF+4)=(A),(DISBUF+5)=(B),练习4主程序参考:,SEC EQU 29H;定义秒单元 ORG 0000H LJMP START ORG 000BH LJMP T0SERV;T0中断入口 ORG 0030HSTART:MOV SP,#50H;初始化堆栈 LCALL INIT;初始化 MOV DISBUF,#10 MOV DISBUF+1,#10 MOV DISBUF+2,#10 MOV DISBUF+3,#10 MOV DISBUF+4,#0 MOV DISBUF+5,#0 MOV FLASH,#0 MOV SEC,#0LOOP:MOV A,SEC MOV B,#10 DIV AB MOV DISBUF+4,A MOV DISBUF+5,B AJMP LOOP,练习4中断T0服务程序中的1秒计数参考:,;-计算时间-INC CNT_2D5MS;2.5MS计数器 MOV A,CNT_2D5MS CJNE A,#4,T0SERV3;4x2.5ms=10ms MOV CNT_2D5MS,#0 INC CNT_10MS1;10MS计数+1 MOV A,CNT_10MS1 CJNE A,#50,T0SERV3 MOV CNT_10MS1,#0 INC CN_0D5S;0.5秒计数 CPL S_PULSE;秒脉冲,每0.5秒变化 JNB S_PULSE,T0SERV3;1秒计数 INC SEC MOV A,SEC CJNE A,#60,T0SERV3 MOV SEC,#0;-显示处理-T0SERV3:ORL DISBIT,#11111100B;熄灭显示 MOV A,DISBITBUF;取当前显示位 INC A;指向下一位,若(A)+1=6,使(A)=0 CJNE A,#6,T0SERV1 CLR AT0SERV1:MOV DISBITBUF,A,

    注意事项

    本文(单片机数码管显示.ppt)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开