FUNC:
MOV R0, #0
MOV R7, #8
LOOP:
RLC A
XCH A, R0
RRC A
XCH A, R0
DJNZ R7, LOOP
MOV A, R0
RET
把 数码管的 1-9 的 对应的码算出来就好了
例如:#include AT89X51.H
//数字0-9的字形码
unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
unsigned char dispcount;
void delay02s(void);
void main(void)
{
P1_0=0;//选通第一位数码管
while(1)
{
for(dispcount=0;dispcount10;dispcount++)
{
P0=table[dispcount];
delay02s();
}
}
}
void delay02s(void)
{
unsigned char i,j,k;
for(i=20;i0;i--)
for(j=30;j0;j--)
for(k=248;k0;k--);
}
补充:单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机
1、首先,要把代码写好,点亮数码管。
2、代码写完后,要确认原先写好的代码是不是正确的。
3、确认代码无误后,进入下一步,就是在这一行代码(箭头所指)的地方,将这四个字删去。
4、然后如图所示,四个字已经删去,只要改成数字相应的代码即可。
5、这里改成的是代表数字0的代码,如图所示。
6、最后写好代码后,将生成的hex文件写进单片机,数码管显示的数字就变成0了。
#includereg51.h
#define INT8U unsigned char
#define INT16U unsigned int
//共阴极数码管段码
INT8U SEG_CODE[]={0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F, //0~9
};
void delay_ms(INT16U x)
{
INT8U t;while(x--) for(t=0;t120;t++);
}
void main()
{ INT8U i;
while(1)
{
for(i=0;i9;i++)
{
P0=SEG_CODE[i];
delay_ms(550);
}
}
}
这是0~9的程序,给个采纳咯,注意是共阴极的数码管
单片机倒序显示数字的介绍就聊到这里吧,感谢您花时间阅读,谢谢。
本文标签:单片机倒序显示数字