51单片机动态显示学号后8位

2025-03-09 08:17:55
推荐回答(2个)
回答1:

uchar buff[8]={1,2,3,4,5,6,7,8};//假设12345678就是你的学号後8位

uchar table[10]={..............};//0-9的七段码

while(1){for(i=0;i<8;i++){weila=1;

//打开位锁存器P0=1<

//送位码weila=0;

delay_ms(2);

duanla=1;//打开段锁存器

P0=table[ 7-i];//送段码

duana=0;

delay_ms(2);

这里还可以加其它语句,但不要占用时间太长

扩展资料:

区别:

同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS,和WINBOND等。

常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash存储器取代了原来的ROM(一次性写入),AT89C51的性能相对于8051已经算是非常优越的了。

不过在市场化方面,89C51受到了PIC单片机阵营的挑战,89C51最致命的缺陷在于不支持ISP(在线更新程序)功能,必须加上ISP功能等新功能才能更好延续MCS-51的传奇。

89S51就是在这样的背景下取代89C51的,89S51已经成为了实际应用市场上新的宠儿,作为市场占有率第一的Atmel公司已经停产AT89C51,将用AT89S51代替。89S51在工艺上进行了改进,89S51采用0.35新工艺,成本降低,而且将功能提升,增加了竞争力。

参考资料来源:百度百科-51单片机

回答2:

uchar buff[8]={1,2,3,4,5,6,7,8};//假设12345678就是你的学号後8位
uchar table[10]={..............};//0-9的七段码
while(1)
{
for(i=0;i<8;i++)
{
weila=1;//打开位锁存器
P0=1< weila=0;
delay_ms(2);
duanla=1;//打开段锁存器
P0=table[ 7-i];//送段码
duana=0;
delay_ms(2);
}
这里还可以加其它语句,但不要占用时间太长
}