探索Proteus和KeilC:打造高效計(jì)數(shù)顯示器
在日常生活中,我們經(jīng)常會遇到由數(shù)碼管和特定的組成電路構(gòu)成的計(jì)數(shù)器。如何用Proteus和KeilC實(shí)現(xiàn)這樣一個計(jì)數(shù)顯示器呢?讓我們一起來探索吧。 在Proteus中繪制電路圖首先,我們需要在Prote
在日常生活中,我們經(jīng)常會遇到由數(shù)碼管和特定的組成電路構(gòu)成的計(jì)數(shù)器。如何用Proteus和KeilC實(shí)現(xiàn)這樣一個計(jì)數(shù)顯示器呢?讓我們一起來探索吧。
在Proteus中繪制電路圖
首先,我們需要在Proteus中繪制電路圖。如果不清楚如何使用Proteus進(jìn)行電路設(shè)計(jì),可以參考相關(guān)經(jīng)驗(yàn)教程。在這個示例中,我們使用的是數(shù)碼管為共陰極的情況。所需的元件和電路圖如下所示。
利用KeilC軟件撰寫代碼
接下來,我們要使用KeilC軟件編寫代碼。如果對如何使用KeilC或者在KeilC中生成hex文件感到困惑,可以查閱相關(guān)經(jīng)驗(yàn)教程。下面是示例代碼:
```c
include
char led_mod[] {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
int count;
void delay(unsigned int time){
int j 150;
for(; time > 0; time--)
for(; j > 0; j--);
}
void main(){
count 0;
while(1){
P0 led_mod[count/10]; // 十位數(shù)字
P3 led_mod[count]; // 個位數(shù)字
count ;
if(count 100)
count 0;
delay(100000);
}
}
```
將生成的hex文件導(dǎo)入并執(zhí)行
完成KeilC代碼編寫后,將生成的hex文件導(dǎo)入到80C51元器件中,并執(zhí)行程序。執(zhí)行結(jié)果截圖如下所示。
探討共陽極與共陰極數(shù)碼管的差異
若數(shù)碼管為共陽極,與共陰極有何區(qū)別呢?共陽極數(shù)碼管指的是八段數(shù)碼管的八段發(fā)光二極管的陽極(正極)連接在一起,而陰極則分別控制;而共陰極數(shù)碼管則是八段數(shù)碼管的八段發(fā)光二極管的陰極(負(fù)極)連接在一起,陽極分別控制。下圖展示了所選元器件和電路圖。
共陰極數(shù)碼管的KeilC代碼示例
```c
include
char led_mod[] {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
int count;
void delay(unsigned int time){
int j 150;
for(; time > 0; time--)
for(; j > 0; j--);
}
void main(){
count 0;
while(1){
P0 led_mod[count/10]; // 十位數(shù)字
P3 led_mod[count]; // 個位數(shù)字
count ;
if(count 100)
count 0;
delay(100000);
}
}
```
通過以上步驟,您可以成功實(shí)現(xiàn)LED計(jì)數(shù)顯示器的功能。讓我們充分利用Proteus和KeilC工具,打造更多精彩的電路設(shè)計(jì)項(xiàng)目吧。