资源简介
基于51单片机的温度控制系统在protues上的仿真

代码片段和文件信息
#include
#define uchar unsigned char
#define uint unsigned int
sbit DQ=P3^0;
sbit led=P3^6;
sbit buzzer=P3^7;
uchar code table[]={0x3f 0x06 0x5b 0x4f 0x66 0x6d 0x7d 0x07 0x7f 0x6f};
uchar code table1[]={0xfe0xfd0xfb0xf7};
uchar temp_num[4];
uchar set_temp[5];
uchar ab;
uint temp1temp2xs;
#define KEYBOARD P1
uchar tempnumflagkey_flagmin=40max=90;
void delay(uchar gaq)
{
while(gaq--);
}
void rest() //复位
{
uchar x;
DQ=1;
delay(2);
DQ=0;
delay(80);
DQ=1;
delay(5);
x=DQ;
delay(18);
if(x) //判断初始化成功了么
led=0;
}
void write(uchar date) //写函数
{
uchar i;
for(i=0;i<8;i++)
{
DQ=0;
DQ=date&0x01;
delay(7);
DQ=1;
date>>=1;
}
}
uchar read() //读函数
{
uchar idate;
for(i=0;i<8;i++)
{
DQ=0;
date>>=1;
DQ=1;
if(DQ)
date=date|0x80;
delay(7);
}
return(date) ;
}
void change()
{
rest();
write(0xcc);
write(0x44);
delay(10);
rest();
write(0xcc);
write(0xbe);
delay(10);
a=read();
b=read();
temp1=b<<4;
temp1+=(a&0xf0)>>4;
temp2=a&0x0f;
xs=temp2*0.0625*10;
temp_num[0]=table[temp1%1000/100]; //百位
temp_num[1]=table[temp1%100/10]; //10位
temp_num[2]=table[temp1%10]|0x80;//个位
temp_num[3]=table[xs]; // 小数位
}
void display()
{
uchar i;
for(i=0;i<4;i++)
{
P2=table1[i];
P0=temp_num[i];
delay(1000);
}
if((temp1 < min)|(temp1 >max))
{
buzzer=0;
if(temp1 > max)
{
led =0;
}
}
else
{
led =1;
buzzer=1;
}
}
void init()
{
EA=1;
ET0=1;
TR0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
}
void keyscan()
{
uchar i;
KEYBOARD=0xfe;
temp=KEYBOARD;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=KEYBOARD;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=KEYBOARD;
switch(temp)
{
case 0xee:key_flag = 1;flag = 0;
for(i=0;i<4;i++)
{
set_temp[i+1]=0;
}
break;
case 0xde:num=0;flag++;
break;
case 0xbe:key_flag = 0;flag = 0;
break;
}
while(temp!=0xf0)
{
temp=KEYBOARD;
temp=temp&0xf0;
}
}
}
KEYBOARD=0xfd;
temp=KEYBOARD;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=KEYBOARD;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=KEYBOARD;
switch(temp)
{
case 0xed:num=7;flag++;
break;
case 0xdd:num=8;flag++;
break;
case 0xbd:num=9;flag++;
break;
}
while(temp!=0xf0)
{
temp=KEYBOARD;
temp=temp&0xf0;
}
}
}
KEYBOARD=0xfb;
temp=KEYBOARD;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
temp=KEYBOARD;
temp=temp&0xf0;
while(temp!=0xf0)
{
temp=KEYBOARD;
switch(temp)
{
case 0xeb:num=4;flag++;
break;
case 0xdb:num=5;flag++;
break;
case 0xbb:num=6;flag++;
break;
}
while(temp!=0xf0)
{
temp=KEYBOARD;
temp=temp&0xf0;
}
}
}
KEYBOARD=0xf7;
temp=KEYBOARD;
temp=temp&0xf0;
while(temp!=0xf0)
{
delay(5);
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2012-12-19 13:50 温控\
文件 124572 2012-12-19 11:41 温控\Last Loaded 温控.DBK
文件 1939 2012-12-19 12:24 温控\keyscan.h
文件 11138 2012-12-19 13:18 温控\main.LST
文件 13079 2012-12-19 13:18 温控\main.OBJ
文件 3739 2012-12-19 13:18 温控\main.c
文件 11705 2012-12-19 13:18 温控\温控
文件 124572 2012-12-19 13:18 温控\温控.DSN
文件 16930 2012-12-19 13:18 温控\温控.M51
文件 1054 2012-12-19 13:19 温控\温控.PWI
文件 4847 2012-12-19 13:18 温控\温控.hex
文件 40 2012-12-19 13:18 温控\温控.lnp
文件 12210 2012-12-19 13:19 温控\温控.plg
文件 133206 2012-12-19 13:19 温控\温控.uvgui.hejuxiang
文件 68343 2012-12-19 11:42 温控\温控.uvgui_hejuxiang.bak
文件 5555 2012-12-19 13:19 温控\温控.uvopt
文件 13324 2012-12-18 22:52 温控\温控.uvproj
文件 5203 2012-12-19 11:42 温控\温控_uvopt.bak
文件 0 2012-12-18 21:49 温控\温控_uvproj.bak
- 上一篇:锦程网职前教育测试题目答案
- 下一篇:基于xm
l的网络相册
相关资源
- 一个labview仿真的函数信号发生器.vi
- 60个HFSS 仿真模型库
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- Quartus II 15.0中仿真Altera三速以太网I
- Quartus II 15.0中仿真Altera三速以太网I
- 51单片机PWM程序,占空比、周期可调整
- 瑞利信道的仿真,包括信号的调制,
- 51单片机多功能自行车测速仪
- proteus仿真 AT89C51输出各种波形
- 一种红外遥控编解码仿真
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 毕业论文之温度传感器DS18B20(源码
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- saber 扫频分析仿真文件
- 武汉理工大学 单片机课程设计 16*16点
- 步进电机protues仿真
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- 单片机与PC机串口通讯仿真
- 毕业设计 单片机 对讲机 protues仿真
- 数据采集系统——ADC0808的应用,单片
- DS18B20分布式多点测温的Proteus仿真
- 报文模拟仿真测试工具2.0
- MSK调制解调的systemview仿真
评论
共有 条评论