西华大学电气信息学院智能化电子系统设计报告 for(i=5;i>0;i--) for(j=98;j>0;j--); }while(--count); }
//************ 温度报警********* //****************************** void beep_st() {
if (beepflag==1) { beep=0;
delayms(1000) ; beep=1; }
else beep=1; }
//***********键 盘 扫 描******** //****************************** void keyscan() //键盘扫描 {
if(setth==0) {
delayms(1); }
if(setth==0) {
bb++; while(!setth); }
if(bb==1) {
if(up==0) {
delayms(1); }
if(up==0) {
disp_temp(th,tempdf);
if(th<125) {th++;}
while(!up) //非0=1
{ disp_temp(th,tempdf);
} }
if(down==0) {
delayms(1); }
if(down==0) {
disp_temp(th,tempdf);
if(th!=0) //不等于0为真执行 {
th--;
while(!down)
//down为(非0=1)循环执行
{
disp_temp(th,tempdf);
} } } }
if(bb==2) {
if(up==0) {
delayms(1); }
if(up==0) {
disp_temp(tl,tempdf);
if(tl<125) {tl++;} while(!up)
//非0=1
{
disp_temp(th,tempdf); } }
if(down==0) {
delayms(1); }
第 29 页
西华大学电气信息学院智能化电子系统设计报告 if(down==0) {
disp_temp(th,tempdf); if(tl!=0)
//不等于0为真执行
{
tl--;
while(!down)
// down为(非0=1)循环执行
{ disp_temp(tl,tempdf); } } } }
if(bb==3) {bb=0;
set_ds18b20(); write_ds18b20(0xcc); write_ds18b20(0x4e); write_ds18b20(th); write_ds18b20(tl); set_ds18b20();
write_ds18b20(0xcc); write_ds18b20(0x48);
} }
//*********** 主 程 序******** //****************************** void main()
{ set_ds18b20();
write_ds18b20(0xcc);
//发跳过ROM匹配命令
write_ds18b20(0xbe);
//发出读温度命令
read_ds18b20();
//将读出的数据
th=tempth;
//将TH读到单片机 tl=temptl;
SP=0x60;
//设置堆栈指针 bb=0; led=0;
beepflag=0;
while(1) {
keyscan();
get_temperature();
//获得温度
disp_temp(tempint,tempdf);
//显示温度
beep_st();
//显示报警
} }
第 30 页