标题:
这个程序改成c51的怎么改
[打印本页]
作者:
wen1234567890
时间:
2018-5-5 18:18
标题:
这个程序改成c51的怎么改
#include<at89s53.h>
#include<absacc.h>
#define uchar unsigned char
#define CO XBYTE[0x9fff]
#define yanw XBYTE[0xafff]
sbit R=P1^0;
sbit Y=P1^1;
sbit G=P1^2;
sbit ring=P1^3;
bit flag=0; //检测一氧化碳还是烟雾的标志位,0为一氧化碳;1为烟雾
uchar result; //AD转换后的结果
uchar Cmax=0x20,Ymax=0x30;/*Cmax为一氧化碳的下限值,Ymax为烟雾浓度的上限值,如果超出了这两个值,则报警器发出
报警信号 */
uchar times=0;
delay()
{
uchar i,j;
for(i=200;i--;i>0)
for(j=10;j--;j>0);
}
main()
{ P1=0xFF;
TCON=0X00;
PCON=0X00;
TMOD=0X21;
TH0=0X3C;
TL0=0XB0;
TH1=0xe6;
TL1=0xe6;
SCON=0X40;
IE=0X93;
TR0=1;
TR1=1;
while(1)
{if(flag==0)
{
if(result>Cmax)
{ R=0;
Y=1;
G=0;
ring=1;
}
else if(result<=Cmax)
{ R=1;
Y=0;
G=0;
ring=0;
}
}
else if(flag==1)
{
if(result>Ymax)
{ R=0;
Y=0;
G=1;
ring=1;
}
else if(result<=Ymax)
{ R=1;
Y=0;
G=0;
ring=0;
}
}
}
}
void tn() interrupt 4
{
if(TI==1)
TI=0;
}
/* 绿色灯亮即 P1。0为低电平则正常,
红色灯亮即P1。1为低电平则一氧化碳浓度超出范围,并蜂鸣器响
黄色灯亮即P1。2为低电平则烟雾浓度超出范围,并蜂鸣器响
*/
void end0809() interrupt 0
{
enable=1;
_nop_();
_nop_();
result=P0;
enable=0;
ACC=flag;
SBUF=ACC;
delay();
ACC=result;
SBUF=ACC;
}
void t0() interrupt 1
{
TH0=0X3C;
TL0=0XB0;
if(times==0) times++;
else
{
times=0;
if(flag==0)
{
ada=0;
adb=0;
}
else
{
ada=1;
adb=0;
}
start=0;
_nop_();
_nop_();
_nop_();
start=1;
_nop_();
_nop_();
start=0;
flag=~flag;
}
2. 上位PC机程序
#include<stdio.h>
#include<dos.h>
#define port 0x03f8
main()
{
unsigned int result,n=0;
unsigned int flag,i,j,k;
char ch;
struct date d;
struct time t;
clrscr();
outportb(port+3,0x80);
outportb(port,0x60);
outportb(port+1,0x00);
outportb(port+3,0x03);
outportb(port+4,0x03);
outportb(port+2,0x0f);
outportb(port+1,0x00);
printf("\n\n*****type*****chroma(PPM)*******state*********time**************address********");
for(;;)
{
if(n==0)
{
while(!(inportb(port+5)&0x20));
flag=inportb(port);
n++;
}
else
{
while(!(inportb(port+5)&0x20));
result=inportb(port);
n=0;
if(flag==0)
{
getdate(&d);
gettime(&t);
if(result>90)
{
printf("\n\n co%11d dangerous%9d.%d.%d--%d:%d:%d 1",result,d.da_year,d.da_mon,d.da_day,t.ti_hour,t.ti_min,t.ti_sec);
}
else
{
printf("\n\n co%11d natural%13d.%d.%d--%d:%d:%d 1",result,d.da_year,d.da_mon,d.da_day,t.ti_hour,t.ti_min,t.ti_sec);
}
}
else
{
getdate(&d);
gettime(&t);
if(result>90)
{
printf("\n\n flog%11d dangerous%9d.%d.%d--%d:%d:%d 1",result,d.da_year,d.da_mon,d.da_day,t.ti_hour,t.ti_min,t.ti_sec+1);
}
else
{
printf("\n\n flog%9d natural%10d.%d.%d--%d:%d:%d 1",result,d.da_year,d.da_mon,d.da_day,t.ti_hour,t.ti_min,t.ti_sec+1);
}
}
}
}
}
复制代码
新建 Microsoft Word 2007 文档.docx
2018-5-5 18:16 上传
点击文件名下载附件
14.88 KB, 下载次数: 2
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1