|
給你改了一下試試。
- #include "reg52.h"
- #include "intrins.h"
- typedef unsigned char uchar;
- typedef unsigned int uint;
- typedef unsigned long ulong;
- sfr T2H = 0xd6; //定時器2高8位
- sfr T2L = 0xd7; //定時器2低8位
- sfr AUXR = 0x8e; //輔助寄存器
- sfr ADC_CONTR = 0xBC; //ADC控制寄存器
- sfr ADC_RES = 0xBD; //ADC高8位結(jié)果
- sfr ADC_RESL = 0xBE; //ADC低2位結(jié)果
- sfr P1ASF = 0x9D; //P1口第2功能控制寄存器
- sfr CLK_DIV = 0x97;
- sbit LSA=P3^2;
- sbit LSB=P3^3;
- sbit LSC=P3^4;
- uchar code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
- uchar DisplayData[8];
- void Delay_ms(unsigned int ms)//ms級延時
- {
- unsigned int a,b;
- for(a=ms;a>0;)
- {
- for(b=1000;b>0;)
- {
- b=b-1;
- }
- a--;
- }
- }
- void ADC_int() //ADC初始化
- {
- ADC_CONTR=0X80;
- P1ASF=0X01;
- CLK_DIV=0X20;
- ADC_RESL=0;
- ADC_RES=0;
- Delay_ms(10);
- }
- unsigned int ADC_Read()
- {
- unsigned int a=0;
- ADC_CONTR = 0X88;
- Delay_ms(1);
- while(!(ADC_CONTR&0X10));
- a=ADC_RES*256+ADC_RESL;
- ADC_CONTR&=~0x10;
- return a;
- }
- void DigDisplay()
- {
- uchar i;
- for(i=0;i<8;i++)
- {
- switch(i) //位選,選擇點(diǎn)亮的數(shù)碼管,
- {
- case(0):
- LSA=0;LSB=0;LSC=0; break;//顯示第0位
- case(1):
- LSA=1;LSB=0;LSC=0; break;//顯示第1位
- case(2):
- LSA=0;LSB=1;LSC=0; break;//顯示第2位
- case(3):
- LSA=1;LSB=1;LSC=0; break;//顯示第3位
- case(4):
- LSA=0;LSB=0;LSC=1; break;//顯示第4位
- case(5):
- LSA=1;LSB=0;LSC=1; break;//顯示第5位
- case(6):
- LSA=0;LSB=1;LSC=1; break;//顯示第6位
- case(7):
- LSA=1;LSB=1;LSC=1; break;//顯示第7位
- }
- P2=DisplayData[i];//發(fā)送段碼
- Delay_ms(1);//間隔一段時間掃描
- P2=0x00;//消隱
- }
- }
- void datapros()
- {
- ulong adcnum;
- adcnum=ADC_Read();
- adcnum=adcnum*500/1024;
- DisplayData[0]=smgduan[adcnum%1000%100%10/1]; //顯示個位
- DisplayData[1]=smgduan[adcnum%1000%100/10]; //顯示十位
- DisplayData[2]=smgduan[adcnum%1000/100]; //顯示百位
- DisplayData[3]=smgduan[adcnum/1000]; //顯示千位
- Delay_ms(10);
-
- }
- void main()
- {
- ADC_int(); //初始化ADC
- while(1)
- {
- datapros(); //數(shù)碼管數(shù)據(jù)處理函數(shù)
- DigDisplay(); //數(shù)碼管顯示函數(shù)
-
- }
- }
復(fù)制代碼 |
|