本单片机程序采用硬件led驱动数码管,硬件iic驱动ds3231时钟芯片,ntc热敏电阻采样读取温度
void main(void)
{
u8 i;
P_SW2 |=0X90;
P0M1 = 0x00; P0M0 = 0xff; //设置为准双向口
P2M1 = 0x00; P2M0 = 0x0f; //设置为准双向口
P3M1 = 0x00; P3M0 = 0x00; //设置为准双向口
P4M1 = 0x00; P4M0 = 0xff; //设置为准双向口
P5M1 = 0x00; P5M0 = 0x00; //设置为准双向口
P6M1 = 0x00; P6M0 = 0x00; //设置为准双向口
P7M1 = 0x00; P7M0 = 0x00; //设置为准双向口
P1M1 = 0xff; P1M0 = 0x00; //设置 P1.3 为 ADC 输入口
COMEN = 0X0F; //使能0-4
SEGENL = 0XfF; //是能SEG0-SEG7
LEDCTRL = 0X06; //共阴驱动
LEDCKS = 7;//设置led刷新时间
I2CCFG = 0xe0; //使能I2C主机模式
I2CMSST = 0x00;
// set_time(0x01,0x22);
// set_time(0x02,0x17);
// P_SW2 |= 0x80;
ADCTIM = 0x3f; //设置 ADC 内部时序,ADC采样时间建议设最大值
// P_SW2 &= 0x9f;
ADCCFG = 0x2f; //设置 ADC 时钟为系统时钟/2/16/16
ADC_CONTR = 0x80; //使能 ADC 模块
AUXR |= 0xC4; //Timer0 set as 1T, 16 bits timer auto-reload,
TH0 = (u8)(Timer0_Reload / 256);
TL0 = (u8)(Timer0_Reload % 256);
TL1 = (u8)(Timer0_Reload / 256); //设置定时初始值
TH1 = (u8)(Timer0_Reload % 256); //设置定时初始值
TR1 = 1;
ET1 = 1;
TR1 = 1; //定时器1开始计时
ET0 = 1; //Timer0 interrupt enable
TR0 = 1; //Tiner0 run
EA = 1; //打开总中断
while(1)
{
// time_red();
// set_tim();//时钟设置与显示
// tmp();
i=rad_time(0x00);
if((i)<=0x30) //30s到
{
time_red();
}
else
tmp();
}
}
Keil代码下载(只有代码,不含原理图和PCB等其他任何文件):
STC8H4K_SMG.rar
(30.97 KB, 下载次数: 52)
|