第四届蓝桥杯单片机省赛 自动灌溉系统
第四届蓝桥杯单片机省赛 自动灌溉系统
新手、所用驱动为大赛提供驱动
#include<stc15f2k60s2.h>
#include "intrins.h"#define somenop {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
#define SlaveAddrW 0xA0
#define SlaveAddrR 0xA1
#define uchar unsigned char
#define uint unsigned int//总线引脚定义
sbit SDA2= P2^1; /* 数据线 */
sbit SCL = P2^0; /* 时钟线 */
sbit SCK=P1^7;
sbit SDA1=P2^3;
sbit RST = P1^3; // DS1302复位#ifndef _IIC_H
#define _IIC_H//函数声明
void IIC_Start(void);
void IIC_Stop(void);
void IIC_Ack(bit ackbit);
void IIC_SendByte(unsigned char byt);
bit IIC_WaitAck(void);
unsigned char IIC_RecByte(void);#endif#ifndef __DS1302_H
#define __DS1302_Hvoid Write_Ds1302_Byte(unsigned char temp);
void Write_Ds1302( unsigned char address,unsigned char dat );
unsigned char Read_Ds1302 ( unsigned char address );#endif
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff};
uchar shijian[]={0,30,8,0,0,0,0};//s,m,h,
uchar yi,er,san,si,wu,liu,qi,ba;
uchar shidu,fazhi;
bit s6=0,jia=0,jian=0,status=0,kai=1,jidianqi=0; //status切换手动自动void allinit(void);
void delayms(uint ms);
void display1(uchar yi,uchar er);
void display2(uchar san,uchar si);
void display3(uchar wu,uchar liu);
void display4(uchar qi,uchar ba);
void keyscan(void);
void keyscan16(void);
uchar AD_read(uchar add);
uchar EEPROM_read(uchar add);
void EEPROM_write(uchar add,uchar dat);
void DS_init(void);
void DS_get(void);void main(void)
{ allinit();DS_init();P2=0x80;P0=0xfe; yi=0;er=8;san=10;si=3;wu=0;liu=10;qi=0;ba=0;// EEPROM_write(0x10,50); //运行一次后可注释
// delayms(5);fazhi=EEPROM_read(0x10);while(1){ DS_get();shidu=AD_read(0x03);if(status==0){if(shidu<fazhi){P2=0xa0;P0=0x10; //打开}else{P2=0xa0;P0=0x00; //继电器关闭}if(s6==1){if(jia==1){jia=0;fazhi=fazhi+1;}if(jian==1){jian=0;fazhi=fazhi-1;}yi=10;er=10;san=11;si=11;wu=11;liu=11;qi=fazhi/10;ba=fazhi%10;}else if(s6==0){yi=shijian[2]/10;er=shijian[2]%10;san=10;si=shijian[1]/10;wu=shijian[1]%10;liu=11;qi=shidu/10;ba=shidu%10; }}else if(status==1){if((shidu<fazhi)&&(kai==0)){if(jidianqi==1){P2=0xa0;P0=0x10;}else if(jidianqi==0){P2=0xa0;P0=0x00;}}if((shidu<fazhi)&&(kai==1)){if(jidianqi==1){P2=0xa0;P0=0x50;}else if(jidianqi==00){P2=0xa0;P0=0x40;}}else if(shidu>fazhi){if(jidianqi==1){P2=0xa0;P0=0x10;}else if(jidianqi==0){P2=0xa0;P0=0x00;}}yi=shijian[2]/10;er=shijian[2]%10;san=10;si=shijian[1]/10;wu=shijian[1]%10;liu=11;qi=shidu/10;ba=shidu%10; }// EEPROM_write(0x10,220);
// delayms(5);
// fazhi=EEPROM_read(0x10);
// liu=fazhi/100;qi=fazhi%100/10;ba=fazhi%10;// shidu=AD_read(0x03);//RB2-->0x03
// liu=shidu/100;qi=shidu%100/10;ba=shidu%10;display1(yi,er);display2(san,si);display3(wu,liu);display4(qi,ba);keyscan();}
}void keyscan(void)
{if(P30==0){ delayms(5);if(P30==0){if(status==0){status=1;P2=0x80;P0=0xFD;}else if(status==1){status=0;P2=0x80;P0=0xfe;}}while(!P30);}if(P31==0){ delayms(5);if(P31==0){ if(status==0){if(s6==0){s6=1;}else if(s6==1){s6=0;EEPROM_write(0x10,fazhi);;}else if(status==1){kai=~kai;}}}while(!P31);}if(P32==0){ delayms(5);if(P32==0){if(status==0){jia=1;}else if(status==1){jidianqi=1;}}while(!P32);}if(P33==0){ delayms(5);if(P33==0){if(status==0){jian=1;}if(status==1){jidianqi=0;} }while(!P33) ;}
}void allinit(void)
{P2=0xa0; //关闭蜂鸣器继电器P0=0x00;P2=0x80; //关闭LED灯P0=0xff;P2=0xc0; //打开数码管位选P0=0xff;P2=0xff;P0=0xff; //关闭所有数码管
}void display1(uchar yi,uchar er)
{P2=0xc0; //位选P0=0x01; //选择第一个数码管P2=0xff; //段选P0=tab[yi];delayms(1);P2=0xc0;P0=0x02; P2=0xff; P0=tab[er];delayms(1);
}void display2(uchar san,uchar si)
{P2=0xc0; P0=0x04; P2=0xff; P0=tab[san];delayms(1);P2=0xc0;P0=0x08; P2=0xff; P0=tab[si];delayms(1);
}void display3(uchar wu,uchar liu)
{P2=0xc0; P0=0x10; P2=0xff; P0=tab[wu];delayms(1);P2=0xc0;P0=0x20; P2=0xff; P0=tab[liu];delayms(1);
}void display4(uchar qi,uchar ba)
{P2=0xc0; P0=0x40; P2=0xff; P0=tab[qi];delayms(1);P2=0xc0;P0=0x80; P2=0xff; P0=tab[ba];delayms(1);
}void delayms(uint ms)
{uint i,j;for(i=ms;i>0;i--)for(j=845;j>0;j--);}
第四届蓝桥杯单片机省赛 自动灌溉系统相关推荐
- 蓝桥杯单片机省赛——第五届(模拟智能灌溉系统)
蓝桥杯单片机省赛--第五届(模拟智能灌溉系统) 一.题目内容 二.程序源代码 1.主函数 2.ds1302驱动函数 3.iic驱动函数 注意:驱动代码需要改动一下,可以将原驱动代码按照下面的代码修改 ...
- 蓝桥杯单片机省赛第三届初赛试题 自动售水机
蓝桥杯单片机省赛第三届初赛试题 自动售水机 蓝桥杯单片机 原题如下 `` main.c代码如下 iic.c文件 iic.h文件 这是第一次写蓝桥杯的题目的代码,写的时候外设没有熟悉 花费了很多时间 感 ...
- 【第十三届蓝桥杯单片机省赛模拟冲刺01】
第十三届蓝桥杯单片机省赛模拟冲刺 赛前一两周一定要多练习,把之前写过的程序在好好看看,把每个模块的代码都多敲几遍,把常考的每个模块部分都吃透,如果理解不了的趁时间还比较充足该背的背牢.同时在准备编程题 ...
- 【蓝桥杯】第十三届蓝桥杯单片机国赛 代码程序
第十三届蓝桥杯单片机国赛 程序 题目 hex文件 代码 工程文件 B站视频 更多资料 题目 历届的省赛和国赛的题目我已经在前面的文章(点击查看)里给大家分享了(网盘资源),需要的话,直接去下载,我在这 ...
- 第八届蓝桥杯单片机省赛----程序题
main.c程序 #include<stc15f2k60s2.h> #include "ds18b20.h" #include <ds1302.h>#def ...
- 第十三届“蓝桥杯”单片机省赛——程序设计题
第十三届"蓝桥杯"单片机省赛--程序设计题 在比赛时候编写,代码仅供参考 如有不足,多多指教 1.题目 2.代码 main.c程序 #include "reg52.h&q ...
- 【蓝桥杯】第九届蓝桥杯单片机国赛 代码程序
第九届蓝桥杯单片机国赛 程序 题目 hex文件 代码 工程文件 B站视频 更多资料 题目 历届的省赛和国赛的题目我已经在前面的文章(点击查看)里给大家分享了(网盘资源),需要的话,直接去下载,我在这里 ...
- 第jiu届蓝桥杯单片机省赛真题_第九届蓝桥杯单片机组省赛试题.pdf
第九届蓝桥杯单片机组省赛试题 "彩灯控制器"的程序设计与调试 (70 分) 一.基本要求 1.1 使用CT107D 单片机竞赛板,完成"彩灯控制器"功能的程序设 ...
- 蓝桥杯单片机省赛第十一届赛题二
文章目录 前言 一.题目 二.代码部分 1.IIC.C 2.IIC.H 3.onewire.h 4.onewire.h 5. main.c 总结 前言 蓝桥杯单片机--第十一届省赛赛题二解析 今年 ...
最新文章
- 【Android基础】趣谈Intent
- 蓝牙 GATT 协议
- boost::intrusive::circular_list_algorithms用法的测试程序
- 深入浅出CSS(二):关于雪碧图、background-position与steps函数的三角恋情
- spring-security学习笔记--配置文件
- 简单粗暴的多目标跟踪神器 – DeepSort
- 关于servlet类,继承HttpServlet,但是无法导入HttpServlet包的原因和解决方法
- php double 类型 浮点数相减
- 基于贪心算法的几类区间覆盖问题 nyoj 12喷水装置(二) nyoj 14会场安排问题...
- aws rds监控慢sql_使用AWS Database迁移服务进行AWS RDS SQL Server迁移
- 用循环语句编程打印如下图案
- struct结构体指定初始化项目
- c语言汉诺塔动画程序,汉诺塔问题算法(c语言控制台动画演示版)
- springboot中使用redis的案例
- IObit Uninstaller Pro 10.0.2.20 便携版 — 卸载工具
- ZDM按横断面水位线河道开挖
- 深圳大学计算机网络实验五:Socket编程
- VB.net 图片刷新闪烁 解决方案
- 拼多多根据ID取商品详情 API 返回值说明
- 超级无敌各种排序算法 一个代码解决<可以做后序模板>