资源描述:
《实训项目4 数码管显示》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、任务四单片机控制数码管显示4.1单片机并口直接驱动单个LED显示。具体要求:将AT89C51单片机的P0口的P0.0~P0.7引脚连接到一个共阴数码管的a~h段上,数码管的公共端接地。在数码管上循环显示0~9数字,时间间隔为0.5s。1、硬件设计如图14所示。图14所需元件清单如图15所示。图152、程序设计:LED数码显示原理:7段LED显示器内部由7个条形发光二极管和一个小圆点发光二极管组成,根据各管的公共端的接线形式,可分为共阴极型和共阳极型。LED数码管的a~h段8个发光二极管加正向电压发亮,加
2、反向电压不发亮,根据不同的亮暗组合就能形成不同的字形,这种组合称为段码,共阴极型和共阳极型的段码见表。显示字形段码(按h~a排列)显示字形段码(按h~a排列)共阴极型共阳极型共阴极型共阳极型03FHC0H87FH80H106HF9H96FH90H25BHA4HA77H88H34FHB0HB7CH83H466H99HC39HC6H56DH92HD5EHA1H67DH82HE79H86H707HF8HF71H8EH由于显示的数字0~9的段码没有规律可循,只能采用查表的方式来完成所需的操作。若采用共阴极型数码
3、管,按照数字0~9的顺序,在程序中建立段码表如下:“TABDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH程序如下:ORG0000HMAIN:MOVR1,#0MOVR2,#100~9MOVDPTR,#TABLP:MOVA,R1MOVCA,@A+DPTRMOVP0,AINCR1ACALLDELDJNZR2,LPLJMPMAINTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH(高电平有效)DEL:MOVR5,#10L2:MOVR7,
4、#100L1:MOVR6,#0FAHDJNZR6,$DJNZR7,L1DJNZR5,L2RETEND4.2数码管动态显示当显示器位数较多时,可采用动态显示。所谓动态显示就是一位一位地轮流点亮显示器的各个位(扫描)。对于显示器的每一位而言,每隔一段时间点亮一次。虽然在同一时刻只有一位显示器在工作(点亮),但由于人眼的视觉暂留效应和发光二极管熄灭时的余晖,我们看到的却是多个字符“同时”显示。显示器亮度既与点亮时的导通点亮有关,也与点亮时间长短和间隔时间有关。调整电流和时间参数,即可实现亮度较高较稳定的显示。
5、本例中显示器由4个共阴极LED数码管构成。AT89C51单片机的P0口输出显示段码,由一片74LS245驱动输出给LED数码管,由P1口输出位码,经74LS06输出给LED显示。4位数码管显示““1234”。1、硬件设计如图18所示。图18所需元件清单如图19所示:图192、软件设计ORG0000HLJMPMAINORG000BHLJMPSTOPORG0030HMAIN:MOVR0,#0MOVR1,#30MOVR5,#0CLR20H.7MOVP0,#00HMOVP1,#0FHMOVTMOD,#01HMO
6、VTH0,#0FEHMOVTL0,#0BHMOVDPTR,#TABSETBET0SETBEASETBTR0LP:MOVA,#3MOVCA,@A+DPTRSETBP1.2MOVP0,AJNB20H.7,$CLR20H.7MOVA,#4MOVCA,@A+DPTRCLRP1.2SETBP1.3MOVP0,AJNB20H.7,$CLR20H.7LP2:MOVA,#1MOVCA,@A+DPTRCLRP1.3SETBP1.0MOVP0,AJNB20H.7,$CLR20H.7MOVA,#2MOVCA,@A+DPTRC
7、LRP1.0SETBP1.1MOVP0,AJNB20H.7,$CLR20H.7CLRP1.1SJMPLPSTOP:MOVTH0,#0FEHMOVTL0,#0BHDJNZR1,EXITSETB20H.7MOVR1,#30EXIT:RETITAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FHEND