666.jpg (1.46 MB, 下載次數: 49)
下載附件
2024-1-17 16:40 上傳
555.png (82.56 KB, 下載次數: 42)
下載附件
2024-1-17 16:37 上傳
單片機源程序如下:
- #include "STC8H.h"
- #include "intrins.h"
- unsigned char NixieTable[]={ 0x03,/*0*/
- 0x9F,/*1*/
- 0x25,/*2*/
- 0x0D,/*3*/
- 0x99,/*4*/
- 0x49,/*5*/
- 0x41,/*6*/
- 0x1F,/*7*/
- 0x01,/*8*/
- 0x09,/*9*/};
- void Delay1ms() //@11.0592MHz
- {
- unsigned char i, j;
- i = 15;
- j = 90;
- do
- {
- while (--j);
- } while (--i);
- }
- void DelayXms(unsigned int x) //@11.0592MHz
- {
- while (--x)
- {
- Delay1ms();
- }
- }
- /************************************************
- * 函數名: void Led_Code(Lint date)
- * 功 能: 數碼管顯示函數
- * 參 數: 無符號長整型,要顯示的數字
- * 返回值: 無
- ***********************************************/
- void Led_adc(unsigned int date) //顯示函數
- {
- unsigned int a,b,c,d;
-
- a=date/1000%10; //求千位
- b=date/100%10; //求百位
- c=date/10%10; //求十位
- d=date%10; //求個位
-
- P10=1;P11=1;P12=1;P13=1;
- P2=NixieTable[a]; //千
- P10=0;P11=1;P12=1;P13=1;
- DelayXms(2);
-
- P10=1;P11=1;P12=1;P13=1;
- P2=NixieTable[b]; //百
- P11=0;//P12=1;P13=1; P10=1;
- DelayXms(2);
-
- P10=1;P11=1;P12=1;P13=1;
- P2=NixieTable[c]; //十
- P12=0;P13=1;P10=1;P11=1;
- DelayXms(2);
-
- P10=1;P11=1;P12=1;P13=1;
- P2=NixieTable[d]; //個
- P13=0;P10=1;P11=1;P12=1;
- DelayXms(2);
- }
- /************************************************
- * 函數名: void Led_Code(Lint date)
- * 功 能: 數碼管顯示函數
- * 參 數: 無符號長整型,要顯示的數字
- * 返回值: 無
- ***********************************************/
- void Led_Off(unsigned int date) //顯示函數
- {
- unsigned int a,b,c;
-
- a=date/100%10; //求百位
- b=date/10%10; //求十位
- c=date%10; //求個位
-
- P14=1;P15=1;P33=1;
- P2=NixieTable[a];//百位
- P14=0;P15=1;P33=1;
- DelayXms(2);
-
- P14=1;P15=1;P33=1;
- P2=NixieTable[b];//十位
- P15=0;P33=1;P14=1;
- DelayXms(2);
-
- P14=1;P15=1;P33=1;
- P2=NixieTable[c];//個位
- P33=0;P14=1;P15=1;
- DelayXms(2);
- }
- /************************************************
- * 函數名: void Led_Code(Lint date)
- * 功 能: 數碼管顯示函數
- * 參 數: 無符號長整型,要顯示的數字
- * 返回值: 無
- ***********************************************/
- void Led_On(unsigned int date) //顯示函數
- {
- unsigned int a,b,c;
-
- a=date/100%10; //求百位
- b=date/10%10; //求十位
- c=date%10; //求個位
-
- P00=1;P01=1;P02=1;
- P2=NixieTable[a];//百位
- P00=0;P01=1;P02=1;
- DelayXms(2);
-
- P00=1;P01=1;P02=1;
- P2=NixieTable[b];//十位
- P01=0;P02=1;P00=1;
- DelayXms(2);
-
- P00=1;P01=1;P02=1;
- P2=NixieTable[c];//個位
- P02=0;P00=1;P01=1;
- DelayXms(2);
- }
- void main ()
- { P0M0 = 0x07; P0M1 = 0x00;
- P1M0 = 0x00; P1M1 = 0xc0;
- P2M0 = 0xff; P2M1 = 0x00;
- P3M0 = 0x08; P3M1 = 0x00;
- Timer0_init() ;
- Timer2_init();
- Timer3_init();
- while(1)
- {
- }
- }
- SMG_SaoMiao()interrupt 1
- { //數碼管掃描定時器0
- unsigned int s;
- if(++s>1)
- { s=0;
- Led_adc(temperature) ;
- }
- }
- void TM2_Isr() interrupt 12
- {
- unsigned int s;
- kaiji_wendu = 012;
- tingzhi_wendu = 055 ;
- if(++s>1)
- { s=0;
- Led_On(kaiji_wendu) ;
-
- }
- }
- void TM3_Isr() interrupt 19
- {
- unsigned int s;
- tingzhi_wendu = 055 ;
- if(++s>1)
- { s=0;
- Led_Off(tingzhi_wendu);
- }
- }
復制代碼
數碼管亮度顯示不一致,是什么原因?
|