圖片1.png (234.84 KB, 下載次數: 32)
下載附件
2019-6-20 16:08 上傳
單片機源程序如下:
- #include "reg52.h"
- typedef unsigned int u16;
- typedef unsigned char u8;
- sbit LSA1 = P1^0;
- sbit LSA2 = P1^1;
- u8 n=0;
- u8 cnt=0;
- u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- void delay(u16 i)
- {
- while(i--);
- }
- void DigDisplay()
- {
- u8 i;
- if(n==1)
- {
- for(i=0;i<2;i++)
- {
- switch(i)
- {
- case 0:
- LSA1=0;LSA2=1; P2=~(smgduan[1]);break;
- case 1:
- LSA1=1;LSA2=0; P2=~(smgduan[4]);break;
- }
- delay(10);
- P2=0xff;
- }
- }
- if(n==0)
- {
- LSA1=1;LSA2=1;
- P2=~(smgduan[8]);
- delay(10);
- }
- }
- void exint0() interrupt 0
- {
- n = !n;
- }
- void main()
- {
- TMOD = 0x01;
- TH0 = 0xB8;
- TL0 = 0x00;
- TR0 = 1;
-
- IT0 = 1;
- EX0 = 1;
- EA = 1;
- while(1)
- {
- u8 i=0;
- DigDisplay();
- if(TF0 == 1)
- {
- TF0 = 0;
- TH0 = 0xB8;
- TL0 = 0x00;
- cnt++;
- if(cnt >= 50)
- {
- cnt = 0;
- // LSA1=1;LSA2=
- P2=0xff;
- delay(500);
-
- }
- }
- }
-
- }
復制代碼
|