电压越限报警.docx
- 文档编号:29699301
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:10
- 大小:160.23KB
电压越限报警.docx
《电压越限报警.docx》由会员分享,可在线阅读,更多相关《电压越限报警.docx(10页珍藏版)》请在冰豆网上搜索。
电压越限报警
一、设计题目:
电压报警器的单片机模拟
二、总体设计
1)所实现的功能描述
电压波动会导致电器工作异常并烧毁,因而时刻检测电压并发出警告非常必要,本课题用ADC模拟电压波动的过程,程序检测到电压过低或者过高以后使用闪动的灯光报警。
2)设计方案的描述
鉴于实际条件的限制,本试验采用实验板自带的ADC转换来模拟电压检测,电压在1-4V范围内属于正常,否则报警,报警灯光可以使用闪动的LED发光二极管来模拟,用户通过操作电压旋转按钮来改变电压模拟波动的过程。
三、件系统设计,包括所需设备,接线方式,以及资源分配。
应用PC机、DICE-598H实验仪及8155+芯片,用实验板自带的ADC转换来模拟电压检测
四、软件系统的设计,包括划分功能模块,写出各个功能模块实现的功能。
画出程序流程图
1)ADC0809的内部逻辑结构
2)程序设计流程图
开始
设置初始状态P1口灯灭
设置显示缓冲区初值
方式控制字送8155命令口
位码送位选端依次显示缓冲区数值
采样0809通道0
<1V?
数字量送A
<4V?
红灯亮报警
安全
红灯亮报警
Y
N
Y
N
四、列出程序清单,并加以必要的注释
ORG0000H
MOVp1,#0ffh
SE11:
MOVSP,#70h
MOV7EH,#00H
MOV7DH,#08H
MOV7CH,#00H
MOV7BH,#09H
MOV7AH,#10H
MOV79H,#10H
MOVDPTR,#0FF20H
MOVA,#03h
MOVX@DPTR,A
L991:
LCALLse
MOVA,#00H
MOVDPTR,#8000H
MOVX@DPTR,A;启动A\D转换
MOVR7,#0FFH
L017:
DJNZR7,L017
MOVXA,@DPTR;读取转换结果
MOVR0,#79H
lcallcom
lo:
LCALLPTDS
SJMPL991
PTDS:
MOVR1,A
ACALLPTDS1
MOVA,R1
SWAPA
PTDS1:
ANLA,#0FH
MOV@R0,A
INCR0
RET
se:
SETBRS1
MOVR5,#05H
SsE2:
MOV30H,#20H
MOV31H,#7EH
MOVR7,#06H
SSHH:
MOVR1,#21H
MOVA,30H
MOVX@R1,A
MOVR0,31H
MOVA,@R0
MOVDPTR,#DDFF
MOVCA,@A+DPTR
MOVR1,#22H
MOVX@R1,A
LCALLDLY
MOVA,30H
RRA
MOV30H,A
DEC31H
MOVA,#0FFH
MOVX@R1,A
DJNZR7,SSHH
DJNZR5,SSE2
CLRRS1
RET
com:
pushaCC
cjnea,#50d,ne1
ret
ne1:
jcdan1
cjnea,#200d,ne2
ret
ne2:
jclo
dan1:
movp1,#11101111b
popaCC
ret
DDFF:
DB0C0H,0F9H,0A4H,0B0H
DB99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H
DB86H,8EH,0FFH,0CH,89H,0DEH
DLY:
MOV40H,#02H
D1:
MOV3FH,#0FAH
DJNZ3FH,$
DJNZ40H,D1
RET
END
六、写出调试程序的方法
首先连接硬件设备,旋动电压旋扭模拟电压波动,当电压超出允许范围是红灯亮,并且切断电压输出,当旋动电压旋扭到允许范围内时,电压中断停止,红灯灭。
七、指出所设计问题的不足和改进方案
由于条件限制实验模拟并不能解决实际中遇到的情况。
八、自评分和收获体会
通过学习单片机的原理和一周的程序设计实习,使我们充分了解了的它的实用性和在工业中的优势地位。
所以我们一定要认真学好单片机课程,以便在今后的工作中可以充分的利用它优势。
此次程序设计我们的题目是电压报警的模拟,虽然题目并不是很难,但其非常具有代表性,是一个典型的上下限报警模型。
可以让我们充分了解实验版ADC转换。
总的来说,这次电压报警器的单片机模拟设计使我们收获颇大!
计算机在启动运行时都需要复位,使中央处理器CPU和系统中的其它部件都处于一个确定的初始状态,并从这个状态开始工作。
AT89S52单片机有一个复位引脚RST,它是史密特触发输入(对于CHMOS单片机,RST引脚的内部有一个拉低电阻),当振荡器起振后该引脚上出现2个机器周期(即24个时钟周期)以上的高电平,使器件复位,只要RST保持高电平,MCS-51保持复位状态。
此时ALE、PSEN、P0、P1、P2、P3口都输出高电平。
RST变为低电平后,退出复位,单片机从初始状态开始工作。
单片机采用的复位方式是按键复位方式。
当复位信号输入段RSSET出现一定时间的高电平时,只要高电平时间足够长,就可以使AT89S52有效的复位。
RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间,Vss上升时间若为10ms,振荡器起振的时间和频率有关。
10MHZ时约为1ms,1MHZ时约为10ms,所以一般为了可靠的复位,RST在上电应保持20ms以上的高电平。
RC时间常数越大,上电RST端保持高电平的时间越长。
若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运转。
因此对于中央处理器CPU,在启动状态时复位电路必要。
时钟电路用于产生单片机工作所需的时钟信号。
一般时钟信号有两种方式,内部时钟信号和外部时钟信号。
内部时钟方式为片内震荡器,通过单片机的引脚XTAL1和XTAL2为片内震荡器的输入端和输出端,在XTAL1和XTAL2两端跨接晶体或陶瓷谐振器,这样就构成了稳定的自激振荡器,其发出的脉冲直接送入内部时钟发生器。
在连接外部时钟方式时,一般采用采用外部震荡器,外部震荡脉冲信号通过XTAL1端接入后直接送至内部时钟发生器,因此输出端XTAL2应悬浮。
不过因为XTAL1的逻辑电平不是TTL的,因此需外接一个上拉电阻。
对于本设计的电压越限报警器,由于电路只需一块单片机芯片进行工作,并且由于在AT89S52单片机芯片的内部有一个高增益反向放大器,因此进行内部时钟方式因此本设计采用内部时钟方式。
#defineucharunsignedchar
#defineuintunsignedint
sbitGATE=P2^0;
sbitBP=P2^1;
uintt_count,int0_count;
/+定时器0中断服务子程序*/
voidtimer0()interrupt1USing1
(
TR0=0; //停止计数
TH0=一5000/256; //重设5ms计数
TL0=一5000%256:
t_count++;
if(it_count>600) //第一次外部中断0产生后3S
(if(int0_count==1)//还没有出现第二次外部中断0,则认为充电完毕
(
GATE=0; //关闭充电电源
BP=0; //打开蜂鸣器报警
)
e1se //否则即是充电出错
(GATE=1;
BP=1;)
ET0 =0; //关闭TO中断
EX0 =0; //关闭外部中断0
int0_count =0;
t_count =0; )
else
TR0=1; //TO开始计数
)/*外部中断0服务子程序+/
voidint0()interrupt0USing1
(if(int0_count==0)
( TH0=一5000f256; //5ms定时
TL0=一5000%256;
TRO=1:
//启动定时/计数器O计数
t_count=0; //产生定时器0中断的计数器清零
)
intO—count++;)
/*初始化*/
voidinit()
( EA =1; //打开cpu中断
PTO=1 //T0中断设为高优先级
TMOD=0X01; //模式1,TO为16位定时/计数器
ETO =1; //打开TO中断
ITO =1; //外部中断O设为边沿触发
EXO =l; //打开外部中断O
GATE =1; //光耦正常输出电压
Bp =1; //关闭蜂鸣器
Int0_count =O //产生外部中断O的计数器清零
)
voidmain()
(
/*调用初始化函数*/
init();/*无限循环*/ while
(1);)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 电压 报警