#include <STC15F2K60S2.H>
#include "Delay.h"
#include "InitHC138.h"
#include "iic.h"
#include "onewire.h"
#include "ds1302.h"
void showselect();
void show();
code unsigned char Seg_Table[17] =
{
0xc0, //0
0xf9, //1
0xa4, //2
0xb0, //3
0x99, //4
0x92, //5
0x82, //6
0xf8, //7
0x80, //8
0x90, //9
0x88, //A
0x83, //b
0xc6, //C
0xa1, //d
0x86, //E
0x8e, //F
0xbf
};
unsigned char time[3] = {0x00,0x00,0x13};
unsigned char DS1302_writeadd[3] = {0x80,0x82,0x84};
unsigned char DS1302_readadd[3] = {0x81,0x83,0x85};
unsigned char showmode = 0;//模式代号
unsigned char echomode = 0;//回显代号
unsigned char chufa = 0;//触发次数
unsigned int temp = 0;//当前采集的温度
unsigned int tempmax = 0;//最高温度
unsigned int wet = 0;//当前采集的湿度
unsigned char settemp = 30;//温度参数
unsigned int wetmax = 0;//最高湿度
unsigned long int tempall;//温度总和
unsigned long int wetall;//湿度总和
unsigned char led_stat = 0xff;
unsigned int count_hz = 0;//数频率
unsigned char count = 0;//产生1s的计时
unsigned int keycount = 0;
bit keystat;//按键状态
unsigned char light = 0;//光敏电阻
unsigned char wetlast[20] = {0};
unsigned char templast[20] = {0};
unsigned int tmp = 0;
//************************************************定时器与NE555频率测量
void Timer1_Isr(void) interrupt 3
{
count++;
if(keystat){
keycount++;
}
if(count == 100){
tmp = count_hz;
wet = 2 * tmp / 45 + (10 / 9);
count_hz = 0;
count = 0;
}
if((temp > settemp)){
if((count % 10 == 0)&&(count % 20 != 0)){
led_stat &= 0xf7;OutPutP0(4,led_stat);
}else if(count % 20 == 0){
led_stat |= 0x08;OutPutP0(4,led_stat);
}
}
}
void Timer0_Isr(void) interrupt 1
{
count_hz++;
}
void Timer_Init(void) //10毫秒@12.000MHz
{
TMOD = 0x07; //设置定时器模式
TL1 = 0xF0; //设置定时初始值
TH1 = 0xD8; //设置定时初始值
TL0 = 0xFF;
TH0 = 0xFF;
TR1 = 1; //定时器1开始计时
TR0 = 1;
TF1 = 0; //清除TF1标志
TF0 = 0;
ET1 = 1; //使能定时器1中断
ET0 = 1;
EA = 1;
}
//************************************************
//************************************************时间初始化与读取
void DS1302_config(){
unsigned char i;
Write_Ds1302_Byte(0x8e,0x00);
for(i = 0;i < 3;i++){
Write_Ds1302_Byte(DS1302_writeadd[i],time[i]);
}
Write_Ds1302_Byte(0x8e,0x80);
}
void DS1302_Read(){
unsigned char i;
for(i = 0;i < 3;i++){
time[i] = Read_Ds1302_Byte(DS1302_readadd[i]);
}
}
//************************************************
//************************************************温度读取
void show2(){
if((tmp > 200) && (tmp < 2000)){
ShowSMG(7,Seg_Table[wet / 10]);
ShowSMG(8,Seg_Table[wet % 10]);
led_stat = led_stat | 0x10;OutPutP0(4,led_stat);
}else{
led_stat = led_stat & 0xef;OutPutP0(4,led_stat);
ShowSMG(1,0x86);
ShowSMG(2,0xff);
ShowSMG(3,0xff);
ShowSMG(4,Seg_Table[temp / 10]);
ShowSMG(5,Seg_Table[temp % 10]);
ShowSMG(6,Seg_Table[16]);
ShowSMG(7,Seg_Table[10]);
ShowSMG(8,Seg_Table[10]);
}
ShowSMG(1,0x86);
ShowSMG(2,0xff);
ShowSMG(3,0xff);
ShowSMG(4,Seg_Table[temp / 10]);
ShowSMG(5,Seg_Table[temp % 10]);
ShowSMG(6,Seg_Table[16]);
}
void DelaySMG(unsigned int xms){//晶体管显示延时
while(xms--){
show2();
Delay(1);
}
}
void DS18B20_Read(){
unsigned char LSB,MSB;
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0x44);
DelaySMG(180);
init_ds18b20();
Write_DS18B20(0xcc);
Write_DS18B20(0xbe);
LSB = Read_DS18B20();
MSB = Read_DS18B20();
temp = MSB;
temp = (temp << 8) | LSB;
temp = temp * 0.0625;
}
//************************************************时间显示
void showtime(){
DS1302_Read();
ShowSMG(1,Seg_Table[time[2] / 16]);
ShowSMG(2,Seg_Table[time[2] % 16]);
ShowSMG(3,Seg_Table[16]);
ShowSMG(4,Seg_Table[time[1] / 16]);
ShowSMG(5,Seg_Table[time[1] % 16]);
ShowSMG(6,Seg_Table[16]);
ShowSMG(7,Seg_Table[time[0] / 16]);
ShowSMG(8,Seg_Table[time[0] % 16]);
}
//************************************************
//************************************************温度回显
void showtempecho(){
if(temp > tempmax){
tempmax = temp;
}
ShowSMG(1,0xc6);
ShowSMG(2,0xff);
if(chufa == 0){
ShowSMG(3,0xff);ShowSMG(4,0xff);ShowSMG(5,0xff);
ShowSMG(6,0xff);ShowSMG(7,0xff);ShowSMG(8,0xff);
}else{
ShowSMG(3,Seg_Table[tempmax / 10]);
ShowSMG(4,Seg_Table[tempmax % 10]);
ShowSMG(5,Seg_Table[16]);
ShowSMG(6,Seg_Table[(tempall / chufa) / 100]);
ShowSMG(7,Seg_Table[(tempall / chufa) / 10 % 10] & 0x7f);
ShowSMG(8,Seg_Table[(tempall / chufa) % 10]);
}
}
//************************************************湿度回显
void showwetecho(){
if(wet > wetmax){
wetmax = wet;
}
ShowSMG(1,0x89);
ShowSMG(2,0xff);
if(chufa == 0){
ShowSMG(3,0xff);ShowSMG(4,0xff);ShowSMG(5,0xff);
ShowSMG(6,0xff);ShowSMG(7,0xff);ShowSMG(8,0xff);
}else{
ShowSMG(3,Seg_Table[wetmax / 10]);
ShowSMG(4,Seg_Table[wetmax % 10]);
ShowSMG(5,Seg_Table[16]);
ShowSMG(6,Seg_Table[(wetall / chufa) / 100]);
ShowSMG(7,Seg_Table[(wetall / chufa) / 10 % 10] & 0x7f);
ShowSMG(8,Seg_Table[(wetall / chufa) % 10]);
}
}
//************************************************
//************************************************时间回显
void showtimeecho(){
ShowSMG(1,Seg_Table[15]);
ShowSMG(2,Seg_Table[chufa / 10]);
ShowSMG(3,Seg_Table[chufa % 10]);
if(chufa == 0){
ShowSMG(4,0xff);ShowSMG(5,0xff);ShowSMG(6,0xff);ShowSMG(7,0xff);ShowSMG(8,0xff);
}else{
ShowSMG(4,Seg_Table[time[2] / 10]);
ShowSMG(5,Seg_Table[time[2] % 10]);
ShowSMG(6,Seg_Table[16]);
ShowSMG(7,Seg_Table[time[1] / 10]);
ShowSMG(8,Seg_Table[time[1] % 10]);
}
}
//************************************************
//************************************************参数显示
void showcanshu(){
ShowSMG(1,0x8c);
ShowSMG(2,0xff);
ShowSMG(3,0xff);
ShowSMG(4,0xff);
ShowSMG(5,0xff);
ShowSMG(6,0xff);
ShowSMG(7,Seg_Table[settemp / 10]);
ShowSMG(8,Seg_Table[settemp % 10]);
}
//************************************************
//************************************************回显选择
void echoselect(){
switch(echomode){
case 0:showtempecho();break;
case 1:showwetecho();break;
case 2:showtimeecho();break;
}
}
//************************************************
//************************************************显示选择
void showselect(){
switch(showmode){
case 0:showtime();led_stat = (led_stat & 0xf8) | 0x06;OutPutP0(4,led_stat);break;//模式0显示时间
case 1:echoselect();led_stat = (led_stat & 0xf8) | 0x0d;OutPutP0(4,led_stat);break;//模式1为回显模式
case 2:showcanshu();led_stat = (led_stat & 0xf8) | 0x0b;OutPutP0(4,led_stat);break;//模式2为参数显示
}
}
//************************************************
//************************************************按键扫描
void scankey(){
P33 = 0;P32 = 1;
P42 = 1;P44 = 1;
if(P44 == 0){
Delay(5);
showmode++;
showmode %= 3;
while(P44 == 0){
showselect();
}
}
if(showmode == 1){
P33 = 1;P32 = 0;
P42 = 1;P44 = 1;
if(P44 == 0){//S5
Delay(5);
echomode++;
echomode%= 3;
while(P44 == 0){
showselect();
}
}
if(echomode == 2){//s9
P33 = 1;P32 = 0;
P42 = 1;P44 = 1;
if(P42 == 0){
Delay(5);
keystat = 1;
while(P42 == 0){
showselect();
}
keystat = 0;
if(keycount > 200){
wetall = 0;
wet = 0;
temp = 0;
tempall = 0;
chufa = 0;
}
keycount = 0;
}
}
}
if(showmode == 2){
P33 = 0;P32 = 1;
P42 = 1;P44 = 1;
if(P42 == 0){ //S8
Delay(5);
settemp++;
if(settemp > 99){
settemp = 0;
}
while(P42 == 0){
showselect(
没有合适的资源?快使用搜索试试~ 我知道了~
蓝桥杯单片机第十四届省赛程序题
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共102个文件
obj:21个
lst:21个
c:18个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
0 下载量 161 浏览量
2024-05-24
01:12:41
上传
评论
收藏 276KB ZIP 举报
温馨提示
蓝桥杯单片机第十四届省赛程序题
资源推荐
资源详情
资源评论
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![tar](https://img-home.csdnimg.cn/images/20210720083646.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
收起资源包目录
![package](https://csdnimg.cn/release/downloadcmsfe/public/img/package.f3fc750b.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
![file-type](https://csdnimg.cn/release/download/static_files/pc/images/minetype/UNKNOWN.png)
共 102 条
- 1
- 2
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/default.jpg!1)
缪志
- 粉丝: 205
- 资源: 16
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![voice](https://csdnimg.cn/release/downloadcmsfe/public/img/voice.245cc511.png)
![center-task](https://csdnimg.cn/release/downloadcmsfe/public/img/center-task.c2eda91a.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![dialog-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/green-success.6a4acb44.png)