📄 q.c
字号:
#include <reg52.H>
#include<absacc.h>
unsigned char code dispbitcode[]={
0x3F,/*0*/
0x06,/*1*/
0x5B,/*2*/
0x4F,/*3*/
0x66,/*4*/
0x6D,/*5*/
0x7D,/*6*/
0x07,/*7*/
0x7F,/*8*/
0x6F,/*9*/
};
unsigned char code dispcode[]={0xfe,0xfd,0xfb,0xf7 };//,0x99,0x92,0x82,0xF8,0x80,0x90,0x00};
unsigned char dispbuf[4]={0,0,0,0};//八通道数据待存数组
unsigned char dispcount;
unsigned char getdata;
unsigned int temp;
unsigned char i;
sbit ST=P3^0;
sbit OE=P3^1;
sbit EOC=P3^2;
sbit CLK=P3^3;
sbit LED1=P3^6;
sbit LED2=P3^7;
sbit SPK=P3^5;
bit lowflag;
bit highflag;
unsigned int cnta;
unsigned int cntb;
bit alarmflag;
/***************
主程序
***************/
void main(void)
{
ST=0;//转换信号启动
OE=0;//输出允许信号
TMOD=0x12;//
TH0=216;//
TL0=216;//
TH1=(65536-4000)/256;//
TL1=(65536-4000)%256;
TR1=1;//
TR0=1;
ET0=1;
ET1=1;
EA=1;
ST=1;
ST=0;
/****************************************************
LED灯的指示,低的时候,LED2亮;高的时候LED1灭
否则LED1亮,LED2灭;
否则都亮
****************************************************/
while(1)
{
if((lowflag==1) &&(highflag==0))
{
LED1=0;
LED2=1;
}
else if((highflag==1) && (lowflag==0))
{
LED1=1;
LED2=0;
}
else
{
LED1=1;
LED2=1;
}
}
}
void t0(void) interrupt 1 using 0
{
CLK=~CLK;
}
void t1(void) interrupt 3 using 0
{
TH1=(65536-4000)/256;
TL1=(65536-4000)%256;
if(EOC==1)
{
OE=1;
getdata=P1;//从P0口得到数据
OE=0;
temp=getdata*25;
//temp=getdata*225;
temp=temp/64;
//i=6;
dispbuf[3]=temp/100;
dispbuf[2]=(temp%100)/10;
dispbuf[1]=(temp%10)/1;
dispbuf[0]=temp%1;
/* dispbuf[0]=0;
dispbuf[1]=0;
dispbuf[2]=0;
dispbuf[3]=0;
while(temp/10)
{
dispbuf[i]=temp%10;
temp=temp/10;
i++;
}
dispbuf[i]=temp; */
if(getdata<77)
{
lowflag=1;
highflag=0;
}
else if(getdata>153)
{
lowflag=0;
highflag=1;
}
else
{
lowflag=0;
highflag=0;
}
ST=1;
ST=0;
}
P0=dispbitcode[dispbuf[dispcount]];
P2=dispcode[dispcount];
dispcount++;
if(dispcount==4)
{
dispcount=0;
}
if((lowflag==1) && (highflag==0))
{
cnta++;
if(cnta==800)
{
cnta=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
SPK=~SPK;
}
}
else if((lowflag==0) && (highflag==1))
{
cntb++;
if(cntb==400)
{
cntb=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
SPK=~SPK;
}
}
else
{
alarmflag=0;
cnta=0;
cntb=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -