本帖最后由 多喝點 于 2020-2-7 16:45 編輯
- 動態控制:使用74HC573八個共陽極數碼管依次顯示0-7
仿真電路圖:
2.PNG (70.54 KB, 下載次數: 37)
下載附件
2020-2-7 10:51 上傳
C語言程序代碼:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
-
- sbit we = P3^7;
- sbit du = P3^0;
- uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};
- uchar code tab[]={0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
- void delay(uint z)
- {
- uint x,y;
- for(x = z; x > 0; x--)
- for(y =10; y>0 ; y--);
- }
- uchar num;
- void main()
- {
- du=0;
- we=0;
- while(1)
- {
- for(num=0;num<8;num++)
- {
-
- we=1;
- P1=tab[num];
- we=0;
-
-
- du=1;
- P2=table[num];
- du=0;
- delay(10);
- };
- }
- }
復制代碼 2.動態控制:不使用74HC573使八個數碼管依次顯示0-7
仿真電路圖:(請注意:在接實際電路時,在數碼管管腳之前都要接上電阻,否則會燒壞電子器件)
1.PNG (53.85 KB, 下載次數: 38)
下載附件
2020-2-7 10:58 上傳
C語言程序代碼:
- #include <reg51.h>
- void delay(void)
- {
- unsigned char i, j;
- for (i=0; i<10; i++)
- for (j=0; j<10; j++);
- }
- unsigned char duanma[16] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8};
- unsigned char weima[8] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80};
- void main(void)
- {
- while (1)
- {
- unsigned char i = 0;
- for (i=0; i<8; i++)
- {
- P2 = weima[i];
- P1 = duanma[i];
- delay();
- P0 = 0x00;
- }
- }
- }
復制代碼
3、靜態控制:8個數碼管顯示相同數字,自動從0開始切換,直到F
仿真電路圖:
170612r7qquk9koqga73l7.png (70.77 KB, 下載次數: 35)
下載附件
2020-2-7 11:17 上傳
C語言程序代碼:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- #define DELAY_TIME 1
- sbit we = P3^7;
- sbit du = P3^0;
- uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};
- void delay(uint z)
- {
- uint x,y;
- for(x = z; x > 0; x--)
- for(y =500; y>0 ; y--);
- }
- uchar num;
- void main()
- {
- we=1;
- P1=0xff;
- we=0;
- while(1);
- {
- for(num=0;num<16;num++)
- {
- du=1;
- P2=table[num];
- du=0;
- delay(100);
- };
-
- }
- }
復制代碼
4、動態控制:使用74LS138譯碼器控制八位數碼管依次顯示0-7
仿真電路圖:
3.PNG (60.96 KB, 下載次數: 34)
下載附件
2020-2-7 15:49 上傳
C語言程序代碼:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code table[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07};
- uchar code tab[]={0x00,0x01,0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
- void delay(uint z)
- {
- uint x,y;
- for(x = z; x > 0; x--)
- for(y =10; y>0 ; y--);
- }
- uint i;
- void main()
- {
- for(i=0;i<8;i++)
- {
- P2=tab[i];
- P1=table[i];
- delay(50);
- }
-
- }
復制代碼
5、動態控制:使用74LS138譯碼器和74LS247七段數碼管譯碼器控制8位數碼管依次顯示0-7
仿真電路圖:
4.PNG (57.02 KB, 下載次數: 31)
下載附件
2020-2-7 16:44 上傳
C語言程序代碼:
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar code table[]={0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07};
- uchar code tab[]={0x00,0x01,0x02, 0x03, 0x04, 0x05, 0x06, 0x07};
- void delay(uint z)
- {
- uint x,y;
- for(x = z; x > 0; x--)
- for(y =10; y>0 ; y--);
- }
- uint i;
- void main()
- {
- for(i=0;i<8;i++)
- {
- P3=tab[i];
- P2=table[i];
- delay(30);
- }
-
- }
復制代碼
|