蓝桥杯单片机学习过程记录(二十三)第五届国赛多功能事件记录器

蓝桥杯单片机学习过程记录(二十三)第五届国赛多功能事件记录器

这套题基本涵盖了所有的基础知识点,串口通信部分没写,也不算是没写,就写了一点点字符串读取,具体原理还不懂,eeprom部分可以简化
用到的内容:
独立按键、小灯
数码管、定时器
IIC读取RB2和光敏电阻
EEPROM的写入读取
温度传感器DS18B20
时钟芯片DS1302
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

/*
-----------------------------------
第五届国赛多功能事件记录器
2020.3.2
串口部分未完成
其余部分完成EEPROM部分自动存储完成
问题:
IIC通信中rb2和光敏电阻的获取是反的,03得到了光敏电阻,01得到了rb2阻值
-----------------------------------
*/
#include<STC15F2K60S2.H>
#include<ds1302.h>
#include<onewire.h>
#include<iic.h>
sbit s5=P3^2;
sbit s4=P3^3;
sbit led1=P0^0;
sbit led2=P0^1;
sbit led3=P0^2;
sbit led4=P0^3;
int shidu;
bit jiange;
unsigned char eep[5][6];
unsigned char time0_t,close_t,close_temp,read_temp,eep_count;
unsigned char flag_yemian,flag_mode,flag_close;
unsigned char time_init[]={
   55,59,23,0,0,0,0};
unsigned char time_read[7];
unsigned char wendu,dianya,urdat,gm,eep_temp;
unsigned char seg[]={
   0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xff,0xc6,0x89};
unsigned char yi,er,san,si,wu,liu,qi,ba;
void delayms(int ms);
void allinit();
void display_12(yi,er);
void display_34(san,si);
void display_56(wu,liu);
void display_78(qi,ba);
void DS1302_READ();
void DS1302_INIT();
unsigned char onewire_read();
unsigned char iic_rb2(unsigned char add);
void Timer0Init(void);
void uart_init();
void sendstring(unsigned char *str);
void uart_working();
void key_scan();
unsigned char eeprom_read(unsigned char add);
void eeprom_write(unsigned char add,unsigned char dat);
void eep_input();
//void eep_output();
void main(){
   
	allinit();
	DS1302_INIT();
	uart_init();
	Timer0Init(); EA=1;ET0=1;ES=1;
	yi=10;er=10;san=10;si=10;wu=10;liu=10;qi=10;ba=10;
	sendstring("hello\r\n");
	close_temp=iic_rb2(0x03);
	while(1){
   
		//eep_output();
		uart_working();
		DS1302_READ();
		wendu=onewire_read();
		gm=iic_rb2(0x03);
		//对靠近物体进行判断
		if(gm<(close_temp-10)){
   
			flag_close=1;
			P2=0X80;led3=0;
		}
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值