課上所做的利用多位數碼管動態顯示年-月-日
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
360截圖20180213135949594.jpg (93.91 KB, 下載次數: 60)
下載附件
2018-2-13 14:00 上傳
單片機源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uint unsigned int
- #define uchar unsigned char
- uint nian=2015;
- uchar yue=4,ri=14;
- uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- void delay(uint);
- void display();
- main()
- {
- while(1) display();
- }
- void display()
- {
- P2=0xfe;
- P0=table[nian/1000];
- delay(1);
- P0=0x00;
- P2=_crol_(P2,1);
- P0=table[nian%1000/100];
- delay(1);
- P0=0x00;
- P2=_crol_(P2,1);
- P0=table[nian%1000%100/10];
- delay(1);
- P0=0x00;
- P2=_crol_(P2,1);
- P0=table[nian%1000%100%10];
- delay(1);
- P0=0x00;
- P2=_crol_(P2,1);
- P0=0x40;
- delay(1);
- P0=0x00;
- P2=_crol_(P2,1);
- P0=table[yue/10];
- delay(1);
- P0=0x00;
- P2=_crol_(P2,1);
- P0=table[yue%10];
- delay(1);
- P0=0x00;
- P2=_crol_(P2,1);
- P0=0x40;
- delay(1);
- P2=0xff;
- P3=0xfe;
- P0=table[ri/10];
- delay(1);
- P0=0x00;
- P3=0xfd;
- P0=table[ri%10];
- delay(1);
- P3=0xff;
- }
- void delay(uint x)
- {
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
0.png (53.17 KB, 下載次數: 73)
下載附件
2018-2-13 22:36 上傳
所有資料51hei提供下載:
數碼管顯示日歷.zip
(59.07 KB, 下載次數: 33)
2018-2-13 13:50 上傳
點擊文件名下載附件
日歷 下載積分: 黑幣 -5
|