1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 51单片机protues仿真数码管平移滚动显示数字

51单片机protues仿真数码管平移滚动显示数字

时间:2022-07-08 06:06:19

相关推荐

51单片机protues仿真数码管平移滚动显示数字

电路仿真图

#include <AT89X51.H>typedef unsigned int u16; typedef unsigned char u8;#define SMG P0#define WE P2u8 code smgduan[]={0x3f,0x5b,0x6d,0x3f,0x6d,0x5b,0x3f,0x6d,0x3f,0x6d0x3f,0x5b,0x6d,0x3f,0x6d,0x5b,0x3f,0x6d,0x3f,0x6d}; //数字可更改 void delay(u8 us)//延时函数us=1,10us{while(us--);}void display(){u16 i,j,k;for(k=1;k<11;k++) //10个字符{for(j=0;j<300;j++)//反比于字符显示变化速度 {for(i=1;i<9;i++)//8位{switch(i) //位选,选择点亮的数码管,{case(1):WE=0xFE; break;//显示第7位(左边第一位)case(2):WE=0xFD; break;//显示第6位case(3):WE=0xFB; break;//显示第5位case(4):WE=0xF7; break;//显示第4位case(5):WE=0xEF; break;//显示第3位case(6):WE=0xDF; break;//显示第2位case(7):WE=0xBF; break;//显示第1位case(8):WE=0x7F; break;//显示第0位default:break;}SMG=smgduan[k+i-2]; //发送段码delay(300); SMG=0x00; //消影}}}}void main(){while(1){display();}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。