收藏 分销(赏)

单片机数码显示实验.doc

上传人:xrp****65 文档编号:7017882 上传时间:2024-12-24 格式:DOC 页数:4 大小:71.50KB 下载积分:10 金币
下载 相关 举报
单片机数码显示实验.doc_第1页
第1页 / 共4页
单片机数码显示实验.doc_第2页
第2页 / 共4页


点击查看更多>>
资源描述
数码显示实验(1)   用单片机进行数码显示应具有显示器件;应用最广泛的是7段数码管。习惯上说是7段,实际含小数点是8段;下面我们称其为段数码管。   段数码管的段排列和内结构见下图: 段排列 内部接线图   段数码管从内部接线上分共阳和共阴两种;上图左为共阴,右为共阳。在电路设计时应根据情况决定采用共阳或共阴,其基本原则是:若单片机io口直接驱动数码管个段,最好采用共阳数码管,因为51单片机io口输出高电平时输出的电流很小,数码管不会太亮;若数码管是通过驱动芯片与单片机相连的,就要看驱动芯片对数码管极性的要求啦。   下面是数码显示实验的电原理略图:(单片机没画出)   这里的数码管直接用单片机p0口驱动,v2、v3是各数码管公共阳极的控制三极管,r3~r5和r13~r16是数码管个段LED的限流电阻。当A、B、C、D、E、F、G、DP 端接低电平,p2.0也为地电平时,L9 数码管各段全部点亮;若p2.0=1,p2.1=0则LED10各段全部点亮。   下面我们来写一段程序,让一位数码管显示数字   数码显示实验(2)   请将光盘\McuCai\numeral\num1.asm复制到 c:\c51\mypro下,取掉只读属性。用medwin打开。 star: mov dptr,#numtab ;指定查表启始地址       mov a,#3         ;显示3,你可以改变该数显示       MOVC A,@A+DPTR       mov p0,a       clr p2.0         ;开个位显示       ljmp $ ;段数码管各划的数字排列表 numtab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h ;显示内容的对应代码            ;0    1     2   3    4   5   6   7    8   9  ;显示内容         db 88h,83h,0c6h,0a1h,86h,8eh          ;  a   b   c    d    e   f       end   在前一节讲过,数码管各段加的电平不同,会显示不同的图形;那么,要想数码管显示“1”,就必须使数码管“B”“C”段点亮,其他段熄灭;由于共阳数码管是0电平点亮段,高电平熄灭段。即: “DP G F E D C B A” 也就是说,将数码管从 DP--A 各段按顺序排列,其高低电平应呈现二进制“11111001”状态,换算成十六进制就是“F9H”;显然,你想显示的所有数字和字符,都必须这样一一对应的转换成十六进制数据。其他数字字符的hex代码见程序的 numtab 表。   遗憾的是,这些hex代码是没有规律可寻的,我们只有先将所希望显示的数字字符的hex代码制成表格,在需要显示某个数字字符时进行表格查询,查询到对应代码后再将代码送数码管显示,这样,我们希望显示并能理解的数字字符就显示了出来。   本实验程序在开始就将显示代码表的基地址赋给dptr,第二句是准备查找数字“3”的段代码,也就是准备让数码管显示“3”。“MOVC A,@A+DPTR”是将累加器acc中当前的数据加上dptr的数据,作为查表地址,并将这个地址中的数据传送到累加器acc覆盖原数据。acc中现在的数据就是“3”的段代码数据。   第4句是将“3”的段代码数据送p0驱动数码管显示;第5句是打开LED9的公共阳极;第6句是跳转到当前行,也就是说程序一直在本行循环。   改变第二句 #号后面的数,将更改显示内容。但#号后的数不能大于15,因numtab表中不包括“0”只有15格可查的数据!   若你觉得这里讲的你还不能理解,请参阅配套光盘\《单片机原理及应用》中第126页以后内容。   下一节将学习两位数显示的自动加计数器   数码显示实验(3)   请将光盘\McuCai\numeral\num2.asm复制到 c:\c51\mypro下,取掉只读属性。用medwin打开。 a_bit equ 20h         ;个位数存放处 b_bit equ 21h         ;十位数存放处 temp equ 22h          ;计数器寄存器 star:   mov temp,#0   ;初始化计数器 stlop:  acall display         inc temp         mov a,temp         cjne a,#100,next ;=100重来         mov temp,#0 next:   ljmp stlop ;显示子程序 display: mov a,temp  ;将temp中的十六进制数转换成10进制           mov b,#10   ;10进制/10=10进制          div ab          mov b_bit,a ;十位在a          mov a_bit,b ;个位在b          mov dptr,#numtab ;指定查表启始地址          mov r0,#4  dpl1:    mov r1,#250 ;显示1000次 dplop:   mov a,a_bit ;取个位数          MOVC A,@A+DPTR ;查个位数的7段代码          mov p0,a ;送出个位的7段代码          clr p2.0 ;开个位显示          acall d200us ;显示200us          setb p2.0          mov a,b_bit ;取十位数          MOVC A,@A+DPTR ;查十位数的7段代码          mov p0,a ;送出十位的7段代码          clr p2.1 ;开十位显示          acall d200us ;显示200us          setb p2.1          djnz r1,dplop ;100次没完循环          djnz r0,dpl1 ;4个100次没完循环          ret ;200uS延时(按12MHZ算) ;==================================================== D200uS: MOV R7,#98        DJNZ R7,$    nop       RET ;7段数码管各划的数字排列表 numtab: db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h         ;0 1 2 3 4 5 6 7 8 9         db 88h,83h,0c6h,0a1h,86h,8eh         ;a b c d e f        end
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服