數碼管動態顯示,8位
單片機源程序如下:
- #include <reg51.h>
- #include "led.h"
- unsigned char code segduan[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71}; // 共陰接法
- unsigned char code segwei[] = { 0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
- void delayforled(void)
- {
- int i = 100;
- while(i--);
- }
- void Display_Led(long num)
- {
- unsigned char set7,set6,set5,set4,set3,set2,set1,set0;
-
- set0 = num / 1 % 10;
- set1 = num / 10 % 10;
- set2 = num / 100 % 10;
- set3 = num / 1000 % 10;
- set4 = num / 10000 % 10;
- set5 = num / 100000 % 10;
- set6 = num / 1000000 % 10;
- set7 = num / 10000000 % 10;
- P0 = segduan[set7]; P2 = segwei[0]; delayforled(); P0 = 0x00;
- P0 = segduan[set6]; P2 = segwei[1]; delayforled(); P0 = 0x00;
- P0 = segduan[set5]; P2 = segwei[2]; delayforled(); P0 = 0x00;
- P0 = segduan[set4]; P2 = segwei[3]; delayforled(); P0 = 0x00;
- P0 = segduan[set3]; P2 = segwei[4]; delayforled(); P0 = 0x00;
- P0 = segduan[set2]; P2 = segwei[5]; delayforled(); P0 = 0x00;
- P0 = segduan[set1]; P2 = segwei[6]; delayforled(); P0 = 0x00;
- P0 = segduan[set0]; P2 = segwei[7]; delayforled(); P0 = 0x00;
- }
- void Display_Led_Single(unsigned char digit, unsigned char place )
- {
- P0 = segduan[digit]; P2 = segwei[place]; delayforled(); P0 = 0x00;
-
- }
-
- void Display_Led_Letter(letter led,unsigned char place)
- {
- switch(led)
- {
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
Keil +Proteus仿真7.5版本的dsn文件下載:
8位LED動態顯示.rar
(68.67 KB, 下載次數: 33)
2021-12-31 12:18 上傳
點擊文件名下載附件
|