標(biāo)題: 用PROTEUS仿真單片機(jī)與七段數(shù)碼管 [打印本頁(yè)]
作者: hasakei 時(shí)間: 2020-6-29 10:47
標(biāo)題: 用PROTEUS仿真單片機(jī)與七段數(shù)碼管
本帖最后由 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 上傳
歡迎光臨 (http://www.torrancerestoration.com/bbs/) |
Powered by Discuz! X3.1 |