|
|
(分享設(shè)計(jì))這是昨天做的4動(dòng)態(tài)數(shù)碼管顯示數(shù)據(jù)實(shí)驗(yàn)設(shè)計(jì)
電路設(shè)計(jì)較為簡(jiǎn)單·,通過按鍵的調(diào)節(jié),實(shí)現(xiàn)
數(shù)碼管的動(dòng)態(tài)顯示。proteus仿真及工程文件
都是原創(chuàng),分享出來。望各位大神多指教。
proteus仿真電路圖.png (12.78 KB, 下載次數(shù): 38)
下載附件
2017-12-8 13:25 上傳
工程文件截圖.png (43.27 KB, 下載次數(shù): 48)
下載附件
2017-12-8 13:25 上傳
單片機(jī)源程序:
- #include <reg51.h>
- #define INT8U unsigned char
- #define INT16U unsigned int
- sbit K1 = P2^0;
- sbit K2 = P2^1;
- INT8U code SEG_CODE[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};
- INT16U Count = 2017;
- INT16U Temp;
- INT8U array[] = {0,0,0,0};
- INT8U Adjust = 0;
- INT8U Pre_key = 0x0F;
- void delay_ms(INT16U x)
- {
- INT8U t; while(x--) for(t = 0; t < 120; t++);
- }
- void digit(INT16U n)
- {
- array[0] = 0; while (n >= 1000) { array[0]++;n -= 1000;}
- array[1] = 0; while (n >= 100) { array[1]++;n -= 100;}
- array[2] = 0; while (n >= 10) { array[2]++;n -= 10;}
- array[3] = n;
- }
-
- void main()
- {
- INT8U i;
- while(1)
- {
- P2 = 0x0F;
- if(!K1)
- {
- delay_ms(100);
- if(!K1)
- {
- delay_ms(100);
- Count++;
- }
- }
- if (!K2)
- {
- delay_ms(100);
- if (!K2)
- {
- delay_ms(100);
- Count--;
- }
- }
- digit(Count);
- for (i=0;i<4;i++)
- {
- P0=0;
- P3=1<<i;
- P3=~P3;
- P0=SEG_CODE[array[i]];
- delay_ms(4);
- }
- }
- }
復(fù)制代碼
0.png (6.71 KB, 下載次數(shù): 34)
下載附件
2017-12-8 22:43 上傳
全部資料51hei下載地址:
4數(shù)碼管動(dòng)態(tài)顯示數(shù)據(jù).rar
(17.95 KB, 下載次數(shù): 29)
2017-12-8 13:26 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
|
評(píng)分
-
查看全部評(píng)分
|