资源简介
基于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的网络相册
相关资源
- ccs仿真qpsk
- 水温水位控制器程序C51带仿真
- 质点弹簧模型
- 8×8LED点阵屏显示数字程序代码和pro
- 基于89C51单片机的智能超声波流量检测
- 用multisim仿真的汽车尾灯控制系统
- proteus仿真 光电开关
- stm32控制的PID温度控制系统介绍
- 网络控制系统Truetime仿真源程序
- 机器人轨迹仿真用三次B样条插值
- 51单片机双机通信程序(含仿真)
- 51单片机交通灯完整版
- 一种幅度均衡器的设计与仿真
- ns-3 网络仿真 时延;吞吐量;抖动率
- 直流无刷电机双闭环控制系统仿真模
- 51单片机频率计-六位数码管显示-汇编
- 他励直流电机启动控制系统设计与仿
- 51单片机—串口计算器
- 51单片机—计算器包含小数计算
- 基于51单片机的温度控制系统.rar
- ofdm链路仿真2
- 煤矿10千伏电缆的pscad仿真
- 51单片机电子钟 proteus仿真 完美电子钟
- 51单片机数码管动态显示+汇编程序+
- Simulator OPC Server 仿真模拟器
- 仿真图.zip
- AT89C51单片机在直流电机闭环调速系统
- 步进电机控制仿真步进电机控制仿真
- 热敏电阻测温proteus仿真
- 51单片机SPWM输出程序
评论
共有 条评论