本帖最后由 hasakei 于 2020-6-29 10:51 編輯
要求:用七段數(shù)碼管顯示數(shù)字0~9
原理圖:
05-1.PNG (253.62 KB, 下載次數(shù): 36)
下載附件
2020-6-29 10:43 上傳
源代碼:
#include<reg51.h> voidcct_init(void); voiddelay(int); voidDisplayOn7Segment(char); intmain(void) { char ch = '0'; // Character to bedisplayed on 7seg cct_init(); // Make all ports zero while(1) { DisplayOn7Segment(ch); //Display ch on 7seg delay(30000); // About 1sec delay switch(ch) // Update ch with new value to be displayed { case '0': ch = '1'; break; case '1': ch = '2'; break; case '2': ch = '3'; break; case '3': ch = '4'; break; case '4': ch = '5'; break; case '5': ch = '6'; break; case '6': ch = '7'; break; case '7': ch = '8'; break; case '8': ch = '9'; break; case '9': ch = '0'; break;
default: ch = '0'; break; } } } voidcct_init(void) { P0 = 0x00; P1 = 0x00; P2 = 0x00; P3 = 0x00; } voiddelay(int a) { int i; for(i=0;i<a;i++); //null statement } voidDisplayOn7Segment(char ch) // ch canhave a value from '0' to 'F' only { switch(ch) { case '0': P2= 0x3F; break; case'1': P2 = 0x06; break; case'2': P2 = 0x5B; break; case'3': P2 = 0x4F; break; case'4': P2 = 0x66; break; case'5': P2 = 0x6D; break; case'6': P2 = 0x7D; break; case'7': P2 = 0x07; break; case'8': P2 = 0x7F; break; case'9': P2 = 0x6F; break; default:P2 = 0x3F; break; } } 仿真結(jié)果:
05-2.PNG (252.96 KB, 下載次數(shù): 42)
下載附件
2020-6-29 10:46 上傳
05-6.PNG (252.57 KB, 下載次數(shù): 36)
下載附件
2020-6-29 10:46 上傳
|