#include "STC15.h" //引用头文件
#include "intrins.h" //汇编指令头文件
#include "ds1302.h" //DS1302头文件
#include "onewire.h" //DS18B20头文件
#include "iic.h" //IIC头文件
#define uchar unsigned char
#define uint unsigned int
/*===============================矩阵按键相关变量及函数==========================*/
sbit A1 = P4^4; //定义按键IO
sbit A2 = P4^2;
sbit A3 = P3^5;
sbit A4 = P3^4;
sbit B1 = P3^3; //定义按键IO
sbit B2 = P3^2;
sbit B3 = P3^1;
sbit B4 = P3^0;
uchar KEY_data[16]={0}; //按键状态缓冲数组。0=没按;1=按下
void GET_KEY(void); //扫描按键函数,每5-10ms执行一次
void KEY_APP(void); //按键功能应用函数
/*===============================================================================*/
/*=================================数码管相关变量及函数============================*/
uchar dis_seg_data[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xbf,0xff};
//数码管显示的段码表 0 1 2 3 4 5 6 7 8 9 A B C D E F - 灭
uchar DIS_data[8]={17,17,17,17,17,17,17,17}; //数码管显示的缓冲数组
uchar SEG_n=0; //当前数码管正在刷新的哪一位 0-7
uchar SEG_dp=0x00;//数码管小数点显示使能变量 0000 0000
uint NUM=0;
void DIS_SEG(void); //数码管动态显示
/*===============================================================================*/
/*=================================串口相关变量及函数==============================*/
bit TX_ok=1; //发送完成标志位
void Uart1_Init(void); //串口1初始化函数,波特率115200
void Uart1_Putchar(uchar dat); //串口1发送一个字符函数
void Uart1_Putstr(uchar *p); //串口1发送字符串函数
/*===============================================================================*/
/*===============================实时时钟相关变量及函数============================*/
bit DIS_MODE=0; // 0=显示年月日;1=显示时分秒
bit DS1302_Read_flag=0; //读时钟标志
uchar Year=24,Month=2,Day=22,Week=4,Hour=22,Min=8,Sec=20; //ds1302时间数据,初始值
void DS1302_init(void); //1302初始化函数
void GET_DS1302(void); //读取时间函数
/*================================================================================*/
/*===============================实时温度相关变量及函数=============================*/
float Temp=0; //读取的温度值
bit DS18B20_Read_flag=0; //读温度标志
void GET_DS18B20(void); //获取温度函数 50ms运行一次
/*================================================================================*/
/*===============================AD\AD相关变量及函数===============================*/
uchar ADC_data[4]={0}; //读取的ADC值
uchar DAC_data=176; //要输出的DAC值
uchar ADC_n=0; //当前正在转换的ADC通道
bit PCF8591_Read_flag=0; //读ADC标志
uchar PCF8591_ADDR = 0x90; //PCF8591-IIC地址
void GET_ADC(void); //获取ADC函数
/*================================================================================*/
/*===============================EEPROM相关变量及函数==============================*/
uchar AT24C02_ADDR = 0xA0; //AT24C02-IIC地址
void EEPROM_W(uchar addr,uchar dat); //EEPROM写函数,写函数需间隔至少2ms
uchar EEPROM_R(uchar addr); //EEPROM读函数
/*================================================================================*/
/*=================================超声波相关变量及函数============================*/
bit T2_flag=0; //定时器2中断标志
uint PCA_n; //PCA计数值
uint T_1ms = 1000; //PCA1ms初值
bit ULT_Read_flag=0;
uint ULT_dat=0; //超声波的测距值,单位mm
void GET_ULT(void); //进行超声波测距函数
/*================================================================================*/
/*=================================PWM输出相关变量及函数===========================*/
uchar PWM1_T = 20; //PWM脉宽
uchar T1_MAX=100; //定时器1计数值
bit PWM1_mode =0; //模式0=输出低电压;模式1=输出高电压
sbit PWM1_IO = P3^6; //PWM引脚
void Timer1_Init(void); //PWM输出定时器初始化
/*================================================================================*/
/*=================================频率测量相关变量及函数==========================*/
uint PWM_F =0; //输入P34引脚的PWM频率
void Timer0_Init(void); //定时器0脉冲频率测量
/*================================================================================*/
/*===============================1ms定时器相关变量及函数===========================*/
uint T_n=0; //基准定时器计数器
void PCA_Init(void); //PCA模块定时器初始化
/*================================================================================*/
void Delay1ms(void); //声明500ms延时函数
void Delay_ms(uint time); //声明ms延时函数
void LED_OUT(uchar dat); //声明LED控制函数
void RMB_OUT(uchar); //继电器P04-0x10、蜂鸣器P06-0x40、电机P05-0x20控制函数
void main(void) //主函数
{
//初始化部分
RMB_OUT(0x00); //关闭蜂鸣器、继电器、关闭电机
LED_OUT(0xff); //关闭所有LED
PCA_Init();
Timer0_Init(); //初始化定时器0,频率测量
Timer1_Init(); //初始化定时器1,进行超声波测距
//Uart1_Init(); //初始化串口1
DS1302_init(); //初始化DS1302时间
EA=1; //允许所有中断
//大循环
while(1)
{
KEY_APP(); //按键应用函数
DIS_data[3]=ULT_dat/10000%10;
DIS_data[4]=ULT_dat/1000%10;
DIS_data[5]=ULT_dat/100%10;
DIS_data[6]=ULT_dat/10%10;
DIS_data[7]=ULT_dat/1%10;
if(ULT_Read_flag)
{
GET_ULT(); //获取超声波测距值
ULT_Read_flag=0;
}
if(PCF8591_Read_flag)
{
GET_ADC(); //读取ADC参数
PCF8591_Read_flag=0;//清标志位
}
if(DS18B20_Read_flag)
{
GET_DS18B20(); //读取温度
DS18B20_Read_flag=0;//清标志位
}
if(DS1302_Read_flag)
{
GET_DS1302(); //读时间
DS1302_Read_flag=0; //清标志位
}
}
}
void KEY_APP(void) //矩阵按键功能应用函数
{
if(KEY_data[0]==0xff) //S4按下
{
while(KEY_data[0]!=0x00); //等待松开
}
if(KEY_data[1]==0xff) //S5按下
{
while(KEY_data[1]!=0x00); //等待松开
}
if(KEY_data[2]==0xff) //S6按下
{
while(KEY_data[2]!=0x00); //等待松开
}
if(KEY_data[3]==0xff) //S7按下
{
while(KEY_data[3]!=0x00); //等待松开
}
if(KEY_data[4]==0xff) //S8按下
{
while(KEY_data[4]!=0x00); //等待松开
}
if(KEY_data[5]==0xff) //S9按下
{
while(KEY_data[5]!=0x00); //等待松开
}
if(KEY_data[6]==0xff) //S10按下
{
while(KEY_data[6]!=0x00); //等待松开
}
if(KEY_data[7]==0xff) //S11按下
{
while(KEY_data[7]!=0x00); //等待松开
}
if(KEY_data[8]==0xff) //S12按下
{
while(KEY_data[8]!=0x00); //等待松开
}
if(KEY_data[9]==0xff) //S13按下
{
while(KEY_data[9]!=0x00); //等待松开
}
if(KEY_data[10]==0xff) //S14按下
{
while(KEY_data[10]!=0x00); //等待松开
}
if(KEY_data[11]==0xff) //S15按下
{
while(KEY_data[11]!=0x00); //等待松开
}
if(KEY_data[12]==0xff) //S16按下
{
while(KEY_data[12]!=0x00); //等待松开
}
if(KEY_data[13]==0xff) //S17按下
{
while(KEY_data[13]!=0x00); //等待松开
}
if(KEY_data[14]==0xff) //S18按下
{
while(KEY_data[14]!=0x00); //等待松开
}
if(KEY_data[15]==0xff) //S19按下
{
while(KEY_data[15]!=0x00); //等待松开
}
}
void GET_ULT(void) //超声波测距函数,注意:函数耗时较长,有可能会65ms
{
uchar n=10;
AUXR &= 0xFB; //定时器时钟12T模式
T2L = 0xF4; //设置定时初始值
T2H = 0xFF; //设置定时初始值
AUXR |= 0x10; //定时器2开始计时
IE2 |= 0x04; //使能定时器2中断
T2_flag=0; //发生中断标志
while(n--) //产生发送声波
{
while(!T2_flag);
P10=!P10;
T2_flag=0;
}
AUXR &= ~0x10; //定时器2停止计时
T2L=0; //计时器清0
T2H=0;
T2_flag=0;
AUXR |= 0x10; //定时器2开始计时
while(P11 && !T2_flag);//等待接收到信号或超时没收到信号 65.536ms
AUXR &= ~0x10; //定时器2停止计时
if(T2_flag)//超时的情况
{
ULT_dat = 65535; //输出max距离
}
else
{
ULT_dat = (T2H*256+T2L)*0.17;//得到距离,单位mm
}
}
void Timer2_Isr(void) interrupt 12 //定时器2中断函数,服务超声波测距
{
T
没有合适的资源?快使用搜索试试~ 我知道了~
24蓝桥杯代码.zip
![preview](https://csdnimg.cn/release/downloadcmsfe/public/img/white-bg.ca8570fa.png)
共383个文件
lst:58个
obj:56个
h:44个
![preview-icon](https://csdnimg.cn/release/downloadcmsfe/public/img/scale.ab9e0183.png)
需积分: 0 1 下载量 191 浏览量
2024-03-07
19:47:32
上传
评论
收藏 1.14MB ZIP 举报
温馨提示
24蓝桥杯代码.zip
资源推荐
资源详情
资源评论
![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)
![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)
![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)
![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)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
共 383 条
- 1
- 2
- 3
- 4
资源评论
![avatar-default](https://csdnimg.cn/release/downloadcmsfe/public/img/lazyLogo2.1882d7f4.png)
![avatar](https://profile-avatar.csdnimg.cn/c957fd2e96004344b215e85e0b9d249f_m0_75077660.jpg!1)
阿水不想改代码
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的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)