51单片机c语言版,编写程序:单片机控制八位LED数码管显示20220204间隔两秒后显示2022_百度问一问
发布网友
发布时间:2022-04-28 12:13
我来回答
共1个回答
热心网友
时间:2023-10-31 01:06
摘要显示程序和硬件关联,如驱动方式、位数等,所以没有统一的程序,假定动态显示,大概思路如下:1、设置定时中断,定时中断时间是5毫秒;2、中断程序完成秒计时,秒数发生变化时,要将秒数对应的显示码放到显示缓冲区;3、每次中断循环显示一位数码管;下面是我曾经写的一个显示程序(显示缓冲区G_Disp_Buf):#define PIN_SDIN P0_0#define PIN_ST P0_1#define PIN_SH P0_2#define LOC_D1 0x08void Display(void){unsigned char i,ch,loc;if(g_disp_location>3) g_disp_location=0; // display one digit every time, total 4 digits.ch=G_Disp_Buf[g_disp_location];loc=LOC_D1; // D1 position,P0_3-P0_6 located D1-D4for(i=0;i
3) g_disp_location=0; // display one digit every time, total 4 digits.ch=G_Disp_Buf[g_disp_location];loc=LOC_D1; // D1 position,P0_3-P0_6 located D1-D4for(i=0;i3) g_disp_location=0; // display one digit every time, total 4 digits. ch=G_Disp_Buf[g_disp_location]; loc=LOC_D1; // D1 position,P0_3-P0_6 located D1-D4 for(i=0;i0;i--)for(j=0;j<250;j++){;}}main(){unsigned char a=0xfe;unsigned int k=0;while(1)for(k=0;k<8;k++){P1=a;//假设LED连接的是P1口delay(200);a=~a;a=a<<1;a=~a;}}动态扫描的八位LED数码管可以用这个?可以的哦这个你书上其实是有答案了的,只是你没认真学那你能写一个结合书本图例的程序吗?很抱歉哦,我没办法给您写哦,上面已经给您提供了案例了哦