無標題.jpg (268.21 KB, 下載次數: 23)
下載附件
2020-3-26 20:12 上傳
把串口暫時關閉,單試顯示重新,正常后再開串口。
- #include "reg52.h"
- #include "intrins.h"
- typedef unsigned char u8;
- typedef unsigned int u16;
- sbit signal_in_A = P2^2; //define the input pins for 74HC138
- sbit signal_in_B = P2^3;
- sbit signal_in_C = P2^4;
- u8 display_digit[10] = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07,
- 0x7f, 0x6f};
- u8 received_data=10;
- void delay(u16 i)
- {
- while(i--);
- }
- void dynamic_scan()
- {
- u8 counter;
- for(counter=3; counter<11; counter++)
- {
- P0=0x00;//消隱
- switch(counter)
- {
- case 3:
- signal_in_A = 0; signal_in_B = 0; signal_in_C = 0;
- break;
- case 4:
- signal_in_A = 1; signal_in_B = 0; signal_in_C = 0;
- break;
- case 5:
- signal_in_A = 0; signal_in_B = 1; signal_in_C = 0;
- break;
- case 6:
- signal_in_A = 1; signal_in_B = 1; signal_in_C = 0;
- break;
- case 7:
- signal_in_A = 0; signal_in_B = 0; signal_in_C = 1;
- break;
- case 8:
- signal_in_A = 1; signal_in_B = 0; signal_in_C = 1;
- break;
- case 9:
- signal_in_A = 0; signal_in_B = 1; signal_in_C = 1;
- break;
- case 10:
- signal_in_A = 1; signal_in_B = 1; signal_in_C = 1;
- break;
- }
- // if(received_data>9) P0=0x80;//顯示“.”
- // else P0=display_digit[received_data];//顯示范圍0~9
- if(counter>9) P0=0x80;//顯示“.”
- else P0=display_digit[counter];//顯示范圍3~9
- delay(100);
- }
- }
- /*
- void serial_init()
- {
- TMOD = 0x20;
- TH1 = 0xf3;
- TL1 = 0xf3;
- PCON = 0x80;
- TR1 = 1;
- SCON = 0x50;
- ES = 1;
- EA = 1;
- }
- void serial() interrupt 4
- {
- received_data = SBUF;
- RI = 0;
- SBUF = received_data;
- while(!TI); // wating for SBUF compeleting sending data
- TI = 0;
- }
- */
- void main()
- {
- // serial_init();
- while(1)
- {
- dynamic_scan();
- }
- }
復制代碼
|