今年是一个不平凡的一年,病毒的对抗体现着我们的大国风范。
下半场和上半场的省赛题都是一个类型的。下半场相对于上半场要简单一些。考察的都是AD的使用。想必大家也都用的很娴熟了。
由于本人准备很充分,得了省一。代码在下面,有需要的同学可以参考一下,能力有限,代码的算法处理不到位,省一中等的成绩,我一个学长,这个省第三,可想别人的代码是多简练 哈哈 一起加油吧
单片机源程序如下:
#include "key.h"
#include "smg.h"
#include "timer.h" //定时器中断函数
#include "delay.h" //软件延时函数
#include "ds18b20.h"
#include "pcf8591.h"
#include "userconfig.h" //配置15所使用的功能函数
unsigned char tempture; //DS18B20的读取温度值
bit flag_readtem; //温度数据刷新标志位
bit flag_writedac; //DAC响应标志位
void main()
{
Init_STC15MCU(); //初始化MCU外设
tempture = Read_Temperature(); //初始化数码管显示值
Init_Timer0(2); //定时2ms
while(1)
{
if(flag_readtem) //每隔 0.4s 刷新一下温度数据
{
flag_readtem = 0;
tempture = Read_Temperature();
}
com_date(); //默认参数比较函数
Key_Read(); //按键检测函数
out_DAC(); //DAC 每隔 0.1s 响应一次
}
}
/*===========定时器0中断响应函数=========*/
void InterruptTime0(void) interrupt 1
{
static unsigned char i;
static unsigned char cnt;
cnt ++;i++;
if(cnt > 8)
cnt = 1;
if(i % 50 == 0)
flag_writedac = 1; //0.1s到
if(i> 200)
{
i = 0;
flag_readtem = 1; //0.4s到
}
display(cnt); //数码管显示函数=== 显示界面切换时间:远远 ≤ 0.3 秒
signal_Led(); //指示灯函数
}
|