📄 main.c
字号:
#include <STC12C5410AD.H>
#include <stdio.h>
sbit P1_3 = P1^3;
sbit P1_4 = P1^4;
sbit P1_2 = P1^2;
unsigned int table[10]={0x88,0xEB,0x4C,0x49,0x2B,0x19,0x18,0x8B,0x08,0x09};
unsigned int light_data[3]={1,2,3};
unsigned int adtemp;
delay(unsigned int a,unsigned int b)
{
while(a--)
{while(b--)
;
}
}
display( ) //串口通讯显示数据
{
unsigned int i;
SCON = 0x00;
for(i=0;i<3;i++)
{
SBUF=table[light_data[2-i]];
while(TI==0)
;
TI=0;
}
}
light_test()
{
unsigned char k;
adtemp=0;
for(k=0;k<3;k++)
{ADC_DATA=0x0000;
ADC_LOW2=0x0000;
ADC_CONTR=ADC_CONTR |0x08; //启动AD转换
delay(2,1);
while ((ADC_CONTR&0x10)==0)
;
ADC_CONTR=ADC_CONTR &0xE7;
adtemp=adtemp+((ADC_DATA&0x00FF)<<2)+(ADC_LOW2&0x03);//ADC_DATA*4;//&0x00FF*4+ADC_LOW2&0x0003;
}
adtemp=adtemp/3;
adtemp=0x0400-adtemp;
if(adtemp>999)
adtemp=999;
//adtemp=adtemp%1000;
light_data[0]=adtemp/100;
light_data[1]=(adtemp%100)/10;
light_data[2]=adtemp%10;
}
main()
{
ADC_CONTR=ADC_CONTR |0x80; //开AD电源
//delay(10,20);
display();
P1M0=P1M0|4;//P1M0=P1M0|4; //设置P1.2为开漏模式
P1M1=P1M1|4;
//delay(10,5);
display();
ADC_CONTR=0xE2; //设置P1.2作为AD转换通道
//delay(10,5);
display();
while(1)
{light_test();
display();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -