arduino怎么arduino控制4位数码管8字数码管显示1

查看: 4194|回复: 0
单片机P2和P1口控制4位共阳极LED数码管动态(快速)显示字符“8.1:2 3”
07:P2和P1口控制4位共阳极LED数码管动态(快速)显示字符“8.1:2 3”
;AS-02 MCU StudyBoard跳线设置:JP3、JP6跳左边(LED数码管供电工作,LED不供电),
;& && && && && && && && &&&JP1和JP2空,其他JP跳线缺省跳右边
;MCU的P2.0—P2.7分别接4位共阳极LED数码管的八个字段a—h
;P1.1、P1.2、P1.3、P1.4控制4位共阳极LED数码管千位、百位、十位和个位数码管的供电,低电平时供电
;0,1,2...E,F共阳显示字段码是C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,88H,83H,0C6H,0A1H,86H,8EH
;MCS-51汇编语言程序,文件名:digisplay3.asm
;Protues7.2软件虚拟仿真和AS-02 MCU StudyBoard硬件实验调试通过,电子科技大学成都学院周密,
;-----------------------------------------------------------------------------------------------
MOV P1,#0FFH ;P1口为高电平,4位共阳极LED数码管不供电,关闭4位数码管显示。
CLR P1.1& &&&;P1.1口为低电平,千位共阳极LED数码管供电显示,百位、十位和个位数码管不供电关闭显示。&&
MOV P2,#00H&&;向P2口送8.字段码,显示8.
LCALL DELAY&&;调用延时子程序,延时2ms。LCALL(Long Call)长调用指令(见P116)
SETB P1.1& & ;P1.1口为高电平,关闭千位共阳极LED数码管供电。
&&CLR P1.2& &&&;P1.2口为低电平,百位共阳极LED数码管供电显示,千位、十位和个位数码管不供电关闭显示。
&&MOV P2,#0F9H ;向P2口送1字段码,显示1
&&LCALL DELAY&&;调用延时子程序,延时2ms。LCALL(Long Call)长调用指令(见P116)
&&SETB P1.2& & ;P1.2口为高电平,关闭百位共阳极LED数码管供电。
&&CLR P1.3& &&&;P1.3口为低电平,十位共阳极LED数码管供电显示,千位、百位和个位数码管不供电关闭显示。
&&MOV P2,#0A4H ;向P2口送2字段码,显示2
&&LCALL DELAY& &;调用延时子程序,延时2ms。LCALL(Long Call)长调用指令(见P116)
&&SETB P1.3& & ;P1.3口为高电平,关闭十位共阳极LED数码管供电。
&&CLR P1.4& &&&;P1.4口为低电平,个位共阳极LED数码管供电显示,千位、百位和十位数码管不供电关闭显示。
&&MOV P2,#0B0H&&;向P2口送3字段码,显示3
&&LCALL DELAY&&;调用延时子程序,延时2ms。LCALL(Long Call)长调用指令(见P116)
&&SETB P1.4& & ;P1.4口为高电平,关闭个位共阳极LED数码管供电。
&&MOV P1,#0F2H ;显示冒号:B
&&MOV P2,#0FFH ;& && && &B
&&LCALL DELAY& &;调用延时子程序,延时2ms。LCALL(Long Call)长调用指令(见P116)
&&MOV P1,#0FFH
&&LCALL DELAY&&;调用延时子程序,延时2ms。LCALL(Long Call)长调用指令(见P116)
&&LJMP&&START& &
DELAY:&&MOV R5,#04H& &;延时子程序
DELAY1: MOV R6,#0F0H&&;实际延时2.10177ms,估算是(4X240)X(2X1.085)us= 2.0832 (ms)
DELAY2: DJNZ R6,DELAY2
& && && && &&&DJNZ R5,DELAY1
& && && && &&&RET
& && && && & END
/*-----------------------------------------------------------------------------------------------
实验07:P2和P1口控制1位共阳极LED数码管动态(快速)显示字符“0 1 2 3”
AS-02 MCU StudyBoard跳线设置:JP3、JP6跳左边(LED数码管供电工作,LED不供电),
& && && && && && && && && &JP1和JP2空,其他JP跳线缺省跳右边
MCU的P2.0—P2.7分别接4位共阳极LED数码管的八个字段a—h
P1.1、P1.2、P1.3、P1.4控制4位共阳极LED数码管千位、百位、十位和个位数码管的供电,低电平时供电
0,1,2...E,F共阳显示字段码分别是0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,
& && && && && && && && && && &&&0x83,0xC6,0xA1,0x86,0x8E
Cx51语言程序,文件名:digisplay3.c
Protues7.1软件虚拟仿真和AS-02 MCU StudyBoard硬件实验调试通过,电子科技大学成都学院周密,
-----------------------------------------------------------------------------------------------*/
#include&reg52.h&
#define uchar unsigned char
#define uint unsigned int
sbit P11=P1^1;&&//KEIL Cx51提供的关键字“sbit”定义某些特殊位,格式:sbit 位变量名=位地址
sbit P12=P1^2;
sbit P13=P1^3;
sbit P14=P1^4;
void delay(uint x)& && && &//延时函数。x=1时延时是1ms
uchar&&j=0;& && && && &//根据汇编代码分析表明,用j进行的内部循环大约延时8us(12MHz)
while(x--)
&&for(j=0;j&113;j++) //125应根据实验进行补偿调整为113(11.0592MHz)
void main()& && & //主函数
P11=0;& & //千位显示。P1.1控制4位共阳极LED数码管千位数码管的供电,低电平时供电
P2=0xC0;& &//显示0。& &0的共阳显示字段码是0xC0
delay(10);//调延时函数,延时10ms
P11=1;& & //关闭千位显示。P1.1控制4位共阳极LED数码管千位数码管的供电,高电平时不供电
P12=0;& & //百位显示。P1.2控制4位共阳极LED数码管百位数码管的供电,低电平时供电
P2=0xF9;& &//显示1。 1的共阳显示字段码是0xF9
delay(10);//调延时函数,延时10ms
P12=1;& & //关闭百位显示。P1.2控制4位共阳极LED数码管百位数码管的供电,高电平时不供电
P13=0;& & //十位显示。P1.3控制4位共阳极LED数码管十位数码管的供电,低电平时供电
P2=0xA4;& &//显示2
delay(10);
P14=0;& & //千位显示。P1.4控制4位共阳极LED数码管个位数码管的供电,低电平时供电
P2=0xB0;& &//显示3
delay(10);
Powered by}

我要回帖

更多关于 arduino一位数码管 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信