单片机数码管0到9编程代码(单片机编程软件)
老铁们,大家好,相信还有很多朋友对于单片机数码管0到9编程代码和单片机编程软件的相关问题不太懂,没关系,今天就由我来为大家分享分享单片机数码管0到9编程代码以及单片机编程软件的问题,文章篇幅可能偏长,希望可以帮助到大家,下面一起来看看吧!
51单片机c语言设计,按键控制数码管,依次按下显示0到9循环
#include<reg51.h>
sbitk1=P1^0;
#define uint16 unsigned int
#define uchar unsigned char
uchar code shuzu[ ]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
void delay()
{
uint16 i=1000;
while(i--);
}
void main()
{
uchar n;
P2=0xfe;
P1=0xff;
while(1)
{
if(k1==0)
{
if(n>=9) n=0;
else n++;
P0=shuzu[n];
while(!k1);
delay();
while(!k1);
}
}
}
扩展资料:
51单片机的功能特性
1,可以仿真63K程序空间,接近64K的16位地址空间;
2,可以仿真64Kxdata空间,全部64K的16位地址空间;
3,可以真实仿真全部32条IO脚;
4,完全兼容keilC51 UV2调试环境,可以通过UV2环境进行单步,断点,全速等操作;
5,可以使用C51语言或者ASM汇编语言进行调试;
6,可以非常方便地进行所有变量观察,包括鼠标取值观察,即鼠标放在某变量上就会立即显示出它此的值;
7,可选使用用户晶振,支持0-40MHZ晶振频率;
8,片上带有768字节的xdata,您可以在仿真时选使用他们,进行xdata的仿真;
9,可以仿真双DPTR指针;
10,可以仿真去除ALE信号输出.;
11,自适应300-38400bps的所有波特率通讯;
12,体积非常细小,非常方便插入到用户板中.插入时紧贴用户板,没有连接电缆,这样可以有效地减少运行中的干扰,避免仿真时出现莫名其妙的故障;
13,仿真插针采用优质镀金插针,可以有效地防止日久生锈,选择优质园脚IC插座,保护仿真插针,同时不会损坏目标板上的插座.;
14,仿真时监控和用户代码分离,不可能产生不能仿真的软故障;
15,RS-232接口不计成本采用MAX202集成电路,串行通讯稳定可靠,绝非一般三极管的简易电路可比。
参考资料来源:百度百科-51单片机
...按键如何分别控制4个数码管从0到9到0变化的编程
你这没有给出原理图,数码管和按键是怎么接的?是仿真实现吗,下图是仿真图,用了四位一体的共阴数码管,4个按键在P3.4~P3.7上。
仿真结果,你要是仿真,就按这个仿真图画,程序就完全适用。如果是实物开发板,就是根据开发板,适当修改程序了。
汇编程序如下
S1 BIT P3.4
S2 BIT P3.5
S3 BIT P3.6
S4 BIT P3.7
DISM1 EQU 31H
DISM2 EQU 32H
DISM3 EQU 33H
DISM4 EQU 34H
START:MOV R0,#7FH
CLEAR:MOV@R0,#0
DJNZ R0,CLEAR
MAINP:ACALL DISUP;主程序
TEST1:JB S1,TEST2
ACALL DELK4
JB S1,TEST2
INC DISM1
MOV A,DISM1
CJNE A,#10,CMPM1
CMPM1:JC WAIT1
MOV DISM1,#0
WAIT1:JNB S1,$
AJMP MAINP
TEST2:JB S2,TEST3
ACALL DELK4
JB S2,TEST3
INC DISM2
MOV A,DISM2
CJNE A,#10,CMPM2
CMPM2:JC WAIT2
MOV DISM2,#0
WAIT2:JNB S2,$
AJMP MAINP
TEST3:JB S3,TEST4
ACALL DELK4
JB S3,TEST4
INC DISM3
MOV A,DISM3
CJNE A,#10,CMPM3
CMPM3:JC WAIT3
MOV DISM3,#0
WAIT3:JNB S3,$
AJMP MAINP
TEST4:JB S4,MAINP
ACALL DELK4
JB S4,MAINP
INC DISM4
MOV A,DISM4
CJNE A,#10,CMPM4
CMPM4:JC WAIT4
MOV DISM4,#0
WAIT4:JNB S4,$
AJMP MAINP
DISUP:MOV DPTR,#TABLE;显示子程序
MOV R0,#DISM1
MOV R2,#0FEH
DISB1:MOV P2,R2
MOV A,@R0
MOVC A,@A+DPTR
MOV P0,A
MOV A,R2
RL A
MOV R2,A
ACALL DELAY
INC R0
CJNE R0,#DISM4+1,DISB1
RET
DELK4:MOV R6,#10
SJMP DELA1
DELAY:MOV R6,#2
DELA1:MOV R7,#150
DJNZ R7,$
DJNZ R6,DELA1
RET
TABLE:DB 3FH,06H,5BH,4FH,66H;共阴段码表
DB 6DH,7DH,07H,7FH,6FH
END
如何确定数码管段码表
确定数码管段码表方法如下:共阴:
0、0x3f
1、 0x06
2、0x5b
3、0x4f
4、0x66
5、0x6d
6、0x7d
7、0x07
8、0x7f
9、0x6f
A、0x77
B、0x7c
C、0x39
D、0x5e
E、0x79
F、0x71
无显示:0x00
只显示一点:0x80
共阳:只需和共阴互补即可,比如:
共阳0为:0xc0
共阴0为:0x3f
相加后两位等于ff即可。
数码管的最常见形式有10个阴极,形状为数字0到9,某些数码管还有一个或两个小数点。然而也有其他类型的数码管显示字母、标记和符号。如一种“数码管”,其阴极为一个模板制成的面具,上面有数字形状的孔。
扩展资料:
数码管的驱动方式:数码管要正常显示,就要用驱动电路来驱动数码管的各个段码,从而显示出我们要的数字,因此根据数码管的驱动方式的不同,可以分为静态式和动态式两类。
1、静态显示驱动
静态驱动也称直流驱动。静态驱动是指每个数码管的每一个段码都由一个单片机的I/O端口进行驱动,或者使用如BCD码二-十进制译码器译码进行驱动。静态驱动的优点是编程简单,显示亮度高,缺点是占用I/O端口多。
如驱动5个数码管静态显示则需要5×8=40根I/O端口来驱动,要知道一个89S51单片机可用的I/O端口才32个,实际应用时必须增加译码驱动器进行驱动,增加了硬件电路的复杂性。
2、动态显示驱动
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划“a,b,c,d,e,f,g,d,p”的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码。
参考资料来源:百度百科--数码管
关于单片机数码管0到9编程代码到此分享完毕,希望能帮助到您。