#define _key_board_c
#include "config.h"
#include "keyboard.h"
#include "led.h"
#include "main.h"
#include "lcd1602.h"
extern uint8 a;
extern uint8 b;
extern uint8 c;
extern uint8 d;
extern uint8 e;
extern uint8 f;
extern bit stasystem;
extern bit noise;
uint8 pdata keycodemap[]={0,1,2,3};
void keyscan()
{
uint8 i;
static uint8 keybuf[]={0xff,0xff,0xff,0xff};
keybuf[0]=(keybuf[0]<<1)|key_in_0;
keybuf[1]=(keybuf[1]<<1)|key_in_1;
keybuf[2]=(keybuf[2]<<1)|key_in_2;
keybuf[3]=(keybuf[3]<<1)|key_in_3;
for(i=0;i<4;i++)
{
if((keybuf[i]&0x0f)==0x00)
{
keysta[i]=0;
}
else if ((keybuf[i]&0x0f)==0x0f)
{
keysta[i]=1;
}
}
}
void keydriver()
{
uint8 i;
static uint8 pdata backup[]={
1,1,1,1};
for(i=0;i<4;i++)
{
if(backup[i]!=keysta[i])
{
if(backup[i]!=0)
{
keyaction(keycodemap[i]);
}
backup[i]=keysta[i];
}
}
}
void jingyin()
{
if(stasystem==0)
{
noise=~noise;
}
}
void sethl()
{
if(stasystem==0)
{
uint8 pdata str[16];
stasystem=1;
lcdwritecmd(0x01);
lcdshowstr(0,0,"set H and L");
str[0]=' ';
str[1]='H';
str[2]=':';
str[3]=a+'0';
str[4]=b+'0';
str[5]='.';
str[6]=c+'0';
str[7]=' ';
str[8]=' ';
str[9]='L';
str[10]=':';
str[11]=d+'0';
str[12]=e+'0';
str[13]='.';
str[14]=f+'0';
str[15]='\0';
lcdshowstr(0,1,str);
}
else if(stasystem==1)
{
uint8 pdata str[16];
stasystem=0;
lcdclosecursor();
lcdwritecmd(0x01);
refreshtemp();
str[0]=' ';
str[1]='H';
str[2]=':';
str[3]=a+'0';
str[4]=b+'0';
str[5]='.';
str[6]=c+'0';
str[7]=' ';
str[8]=' ';
str[9]='L';
str[10]=':';
str[11]=d+'0';
str[12]=e+'0';
str[13]='.';
str[14]=f+'0';
str[15]='\0';
lcdshowstr(0,1,str);
}
}
void refreshsetshow()
{
uint8 pdata str[6];
str[0]=a+'0';
str[1]=b+'0';
str[2]='.';
str[3]=c+'0';
str[4]='\0';
lcdshowstr(3,1,str);
str[0]=d+'0';
str[1]=e+'0';
str[2]='.';
str[3]=f+'0';
str[4]='\0';
lcdshowstr(11,1,str);
switch(setindex)
{
case 0:lcdsetcursor(3,1);break;
case 1:lcdsetcursor(4,1);break;
case 2:lcdsetcursor(6,1);break;
case 3:lcdsetcursor(11,1);break;
case 4:lcdsetcursor(12,1);break;
case 5:lcdsetcursor(14,1);break;
default:break;
}
lcdopencursor();
}
void rightshifttimeset()
{
if(stasystem==1)
{
if(setindex<5)
setindex++;
else
setindex=0;
refreshsetshow();
}
}
void incsettime()
{
if(stasystem==1)
{
switch(setindex)
{
case 0:a=a+1;break;
case 1:b=b+1;break;
case 2:c=c+1;break;
case 3:d=d+1;break;
case 4:e=e+1;break;
case 5:f=f+1;break;
default:break;
}
if(a>=10)
{
a=0;
}
if(b>=10)
{
b=0;
}
if(c>=10)
{
c=0;
}
if(d>=10)
{
d=0;
}
if(e>=10)
{
e=0;
}
if(f>=10)
{
f=0;
}
refreshsetshow();
}
}
void keyaction(uint8 keycode)
{
if(keycode==0)
{
jingyin();
}
else if(keycode==1)
{
sethl();
}
else if(keycode==2)
{
rightshifttimeset();
}
else if(keycode==3)
{
incsettime();
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
基于51单片机的温度报警器程序和原理图
共102个文件
zip:34个
log:14个
obj:12个
需积分: 31 34 下载量 182 浏览量
2019-04-26
19:14:47
上传
评论 8
收藏 568KB RAR 举报
温馨提示
基于51单片机的温度报警器程序和原理图;
资源推荐
资源详情
资源评论
收起资源包目录
基于51单片机的温度报警器程序和原理图 (102个子文件)
STARTUP.A51 6KB
温度报警器_uvopt.bak 62KB
温度报警器_uvproj.bak 15KB
keyboard.c 3KB
main.c 2KB
ds18b20.c 2KB
lcd1602.c 1KB
led.c 357B
Last Loaded 温度报警器.DBK 101KB
温度报警器.DSN 99KB
config.h 568B
lcd1602.h 309B
keyboard.h 242B
led.h 218B
ds18b20.h 183B
main.h 181B
温度报警器.hex 8KB
温度报警器.lnp 219B
温度报警器.lnp 133B
PCB1 PCB ECO 2018-8-31 10-04-34.LOG 6KB
PCB1 PCB ECO 2018-8-31 10-01-42.LOG 4KB
PCB1 PCB ECO 2018-8-31 14-16-14.LOG 4KB
PCB1 PCB ECO 2018-8-31 14-16-39.LOG 2KB
温度报警器原理图 SCH ECO 2018-8-22 13-48-38.LOG 2KB
PCB1 PCB ECO 2018-8-31 14-46-03.LOG 328B
温度报警器原理图 SCH ECO 2018-8-23 14-18-10.LOG 264B
温度报警器原理图 SCH ECO 2018-8-22 13-50-55.LOG 132B
温度报警器原理图 SCH ECO 2018-8-22 15-32-03.LOG 0B
温度报警器原理图 SCH ECO 2018-8-22 15-57-29.LOG 0B
温度报警器原理图 SCH ECO 2018-8-23 14-14-49.LOG 0B
温度报警器原理图 SCH ECO 2018-8-23 14-31-58.LOG 0B
温度报警器原理图 SCH ECO 2018-8-22 15-36-44.LOG 0B
温度报警器原理图 SCH ECO 2018-8-31 14-39-44.LOG 0B
STARTUP.LST 14KB
keyboard.lst 10KB
main.lst 7KB
ds18b20.lst 6KB
lcd1602.lst 3KB
led.lst 2KB
温度报警器.M51 43KB
main.obj 12KB
keyboard.obj 12KB
keyboard.obj 12KB
main.obj 11KB
ds18b20.obj 10KB
ds18b20.obj 9KB
lcd1602.obj 7KB
lcd1602.obj 6KB
led.obj 3KB
led.obj 3KB
STARTUP.obj 789B
STARTUP.OBJ 749B
PCB1.PCB3D 222KB
PCB1.PcbDoc 154KB
PCB1.pcbdoc_viewstate 3KB
pcb库.PcbLib 40KB
pcb库.pcblib_viewstate 3KB
温度报警器.plg 12KB
温度报警器.plg 1KB
温度报警器.PWI 1KB
温度报警器原理图.SchDoc 142KB
温度报警器原理图.~(1).SchDoc 22B
温度报警器.SchLib 11KB
温度报警器.~(3).SchLib 22B
温度报警器.uvopt 62KB
温度报警器.uvproj 15KB
PCB.~(2).PCBDOC.Zip 20KB
PCB1.~(9).PcbDoc.Zip 20KB
PCB.~(3).PCBDOC.Zip 19KB
PCB1.~(8).PcbDoc.Zip 19KB
PCB.~(1).PCBDOC.Zip 19KB
PCB1.~(7).PcbDoc.Zip 19KB
PCB1.~(6).PcbDoc.Zip 18KB
温度报警器原理图.~(1).SchDoc.Zip 15KB
温度报警器原理图.~(6).SchDoc.Zip 15KB
温度报警器原理图.~(5).SchDoc.Zip 15KB
温度报警器原理图.~(4).SchDoc.Zip 15KB
温度报警器原理图.~(3).SchDoc.Zip 15KB
PCB1.~(4).PcbDoc.Zip 11KB
PCB1.~(3).PcbDoc.Zip 10KB
PCB1.~(5).PcbDoc.Zip 10KB
PCB1.~(2).PcbDoc.Zip 10KB
PCB1.~(1).PcbDoc.Zip 10KB
pcb库.~(12).PcbLib.Zip 6KB
pcb库.~(13).PcbLib.Zip 6KB
pcb库.~(6).PcbLib.Zip 6KB
pcb库.~(9).PcbLib.Zip 6KB
pcb库.~(7).PcbLib.Zip 6KB
pcb库.~(8).PcbLib.Zip 6KB
pcb库.~(11).PcbLib.Zip 6KB
pcb库.~(10).PcbLib.Zip 6KB
pcb库.~(5).PcbLib.Zip 6KB
pcb库.~(3).PcbLib.Zip 6KB
pcb库.~(2).PcbLib.Zip 6KB
pcb库.~(4).PcbLib.Zip 6KB
pcb库.~(1).PcbLib.Zip 6KB
温度报警器.~(3).SchLib.Zip 2KB
温度报警器.~(2).SchLib.Zip 2KB
温度报警器.~(1).SchLib.Zip 2KB
LCD1602.~(1).SchLib.Zip 1KB
共 102 条
- 1
- 2
资源评论
想飞,起嘛跳一跳
- 粉丝: 1
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 基于protel99se(原理图库+封装库)电路设计硬件PCB设计protel库合集protel封装大全(近3000个).zip
- python-leetcode面试题解之第157题用Read4读取N个字符-题解.zip
- python-leetcode面试题解之第156题上下翻转二叉树-题解.zip
- python-leetcode面试题解之第155题最小栈-题解.zip
- python-leetcode面试题解之第153题寻找旋转排序数组中的最小值-题解.zip
- python-leetcode面试题解之第152题乘积最大子数组-题解.zip
- python-leetcode面试题解之第151题反转字符串中的单词-题解.zip
- python-leetcode面试题解之第150题逆波兰表达式求值-题解.zip
- python-leetcode面试题解之第149题直线上最多的点数-题解.zip
- python-leetcode面试题解之第148题排序链表-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功