#include <AT89X52.H>
unsigned char code displaybit[]={0xfe,0xfd,0xfb,0xf7, //位显代码
0xef,0xdf,0xbf,0x7f};
unsigned char code displaycode[]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0, //数码管显示代码
0xFE,0xF6,0xEE,0x3E,0x9C,0x7A,0x9E,0x8E};
unsigned char b,c=0,tab[8]={0,0,0,0,0,0,0,0},displaycount=4;
unsigned long a,d,e=17;
#define AlarmH 120 // 报警上限
#define AlarmL 10 // 报警下限
sbit KEY1=P1^4; //按键1继续测量
sbit KEY2=P1^5; //按键2停止测量
sbit Beed=P1^0; //蜂鸣器
sbit LED =P1^3; //发光二极管
bit nSTOP=1;
void timer0(void) interrupt 1 using 0
{TH0=0xff;TL0=0xfc;
if(b==1)
{P1_2=~P1_2;}
}
unsigned char aa; //控制每次测量之间的时间间隔
void EX0INT(void) interrupt 0 using 0
{
a=TH1*256+TL1-50; //减去误差
EX0=0;//禁止外中断
b=0;TR1=0;//TR2=0;
LED=~LED;
d=a*e;
d=d/1000-1;
tab[4]=d/1000;
tab[5]=d%1000/100;
tab[6]=d%100/10;
tab[7]=d%10;
if((d>AlarmH)||(d<AlarmL))Beed=0;else Beed=1;
}
void delay(unsigned int tt)
{
while(tt--);
}
//显示子程序
void xianshi(void)
{
if(displaycount==5)
{
P0=displaycode[tab[displaycount]]|0x01;
}
else
{
P0=displaycode[tab[displaycount]];
}
P2=displaybit[displaycount];
displaycount++;
delay(50);
if(displaycount==8)
{
displaycount=4;
}
}
//键盘扫描程序
void keyscan(void)
{
if(KEY1==0)
{ delay(100);
if(KEY1==0)
{
Beed=0;nSTOP=1;//蜂鸣器响,继续测量
while(KEY1==0); Beed=1;//关蜂鸣器
}
}
if(KEY2==0)
{ delay(100);
if(KEY2==0)
{
Beed=0;nSTOP=0; //蜂鸣器响,停止测量,
while(KEY2==0);Beed=1;//关蜂鸣器
}
}
}
void main(void)
{
TMOD=0x11;
TH0=0xff;TL0=0xf3;
EA=1;EX0=0;ET0=1;ET1=1;TR0=1;TR1=0;P3_2=1;b=0;IT0=0;//IT0=0;//--为电平出发
nSTOP=1;
while(1)
{
keyscan(); //调用keyscan()按键扫描程序
aa++;
if((aa>60) && nSTOP)
{
aa=0;
Beed=1;
EX0=1;//允许外中断
b=1;
TR1=1;
TH1=0x00;
TL1=0x00;
}
xianshi();//调用显示子程序
}
}
alvarocfc
- 粉丝: 135
- 资源: 1万+
最新资源
- 两级运算放大器设计 cadence 电路设计 工艺tsmc18 低频增益87dB 相位裕度80 单位增益带宽积GBW 30MHz 压摆率 116V us 原理图带仿真状态 有版图过DRC lvs
- 欧姆龙, PLC CJ2M标准程序,一共控制12个伺服电机 ,气缸若干,包含轴点动,回零,相对与绝对定位,整个项目的模块都有:主控程序,复位程序,手动,生产计数,只要弄明白这个程序,就可以非常了解整
- 三菱简易运动模块程序qd77ms16,ld77ms16程序,多轴插,块启动,各种FB块, 教学程序,带注释,可移植
- Mitsubishi 三菱 FX5U程序模板 1 完整的PLC程序,设备对同步电机进行装配 系统分8部分来写 分别是: A)报警 B)初始化 C) 气动动作 D)手动程序 E)
- 011西门子1200三轴打胶机程序,三轴运动控制定位, plc 与工业相机进行TCP通信,读取定位偏差,进行比较完成精准定位 该程序支持博图15及以上 程序有注释
- 西门子485通讯 西门子smart200 自带的485口 modbus rtu协议 485通讯例程 控制12个温控表一个变频器 提供西门子新手操作485通讯的细节注意点,让新手快速掌握这个功能
- 三菱FX3U ST语言程序模板 1 程序采用三菱FX3U的PLC编写 2 触摸屏是台达 3 程序由以下部分组成 3.1 开机准备 3.2 复位 3.3 加热控制 3.4 暂停控制 3.5自
- labview 键盘 触摸键盘 vi源码 中英输入 支持win10和win7 特别注意:开发环境版本2017及以上;WIN10系统下,labview开发软件 或生成的exe,必须以管理员运行
- mmc四端配电网pscad 张北柔直实际工程pscad仿真 PSCAD直流电网,基于MMC变器的柔性直流输电PSCAD仿真 500kV 4端 200子模块,有环流抑制控制,子模块均压控制 还有500k
- 幻尔4轴码垛机械臂 4轴码垛机械臂资料,资料里包含第四轴导轨资料,具有搬运,写字画画,语音控制,图像处理,等可扩展功能 资料里包含机械臂step模型文件,stl 3D打印文件,组装说明,物料清单,各
- MATLAB代码:面向削峰填谷的电动汽车多目标优化调度策略 关键词:电动汽车 削峰填谷 多目标 充放电优化 参考文档:店主自己整理的说明文档,公式、约束、数据齐全,可联系我查看 仿真平台:MATLAB
- MATLAB代码:考虑柔性负荷的综合能源系统日前优化调度模型 关键词:柔性负荷 需求响应 综合需求响应 日前优化调度 综合能源系统 参考文档:《考虑用户侧柔性负荷的社区综合能源系统日前优化调度》参考
- MATLAB代码:基于二阶锥规划的主动配电网动态最优潮流求解 关键词:配电网优化 二阶锥优化 动态优化 最优潮流 参考文档:《主动配电网最优潮流研究及其应用实例》仅参考部分模型,非完全复现 仿真平台
- 西门子1200伺服步进FB块程序西门子程序模板 程序内含两个FB,一个是scl写的,一个是梯形图,可以多轴多次调用,中文注释详细 真实可用,经过在专用设备真实调试运行,可以直接应用到实际项目中,提供
- MATLAB线性调频LFM脉冲压缩 连续波雷达仿真&线性调频信号仿真分析压缩matlab程序源码 源码内容如下: 1、线性调频LFM脉冲压缩雷达仿真(Matlab程序,Word说明,运行结果)
- 三菱fx3uplc模拟量输入输出万能转程序FB块,和2ad 2da 4ad 4da模拟量FB块程序, 原来只有西门子模拟量库,现在三菱模拟量FB来了 所需硬件:3u一台,fx2n-2AD和fx2n
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈