单片机课程设计电压报警器.docx

上传人:b****3 文档编号:6599568 上传时间:2023-05-10 格式:DOCX 页数:9 大小:40.04KB
下载 相关 举报
单片机课程设计电压报警器.docx_第1页
第1页 / 共9页
单片机课程设计电压报警器.docx_第2页
第2页 / 共9页
单片机课程设计电压报警器.docx_第3页
第3页 / 共9页
单片机课程设计电压报警器.docx_第4页
第4页 / 共9页
单片机课程设计电压报警器.docx_第5页
第5页 / 共9页
单片机课程设计电压报警器.docx_第6页
第6页 / 共9页
单片机课程设计电压报警器.docx_第7页
第7页 / 共9页
单片机课程设计电压报警器.docx_第8页
第8页 / 共9页
单片机课程设计电压报警器.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机课程设计电压报警器.docx

《单片机课程设计电压报警器.docx》由会员分享,可在线阅读,更多相关《单片机课程设计电压报警器.docx(9页珍藏版)》请在冰点文库上搜索。

单片机课程设计电压报警器.docx

单片机课程设计电压报警器

河北工业大学

计算机硬件技术基础

MCS-51单片机原理及应用)

课程设计报告书

、设计题目:

电压报警器的单片机模拟

、总体设计

(1)所实现的功能描述:

为防止电压波动会导致电器工作异常并烧毁,用ADC模拟电压波动的过程,程序检测并通过八段显示器显示出当前电压值,当电压过低或者过高以后使用闪动的灯光加蜂鸣报警。

(2)设计方案的描述:

本试验采用实验板自带的ADC转换来模拟电压检测,通过多次采集取平均值的方法得到比较时效且较准确的电压值,然后计算出所测的值对应的实际值,并通过八段显示器显示出当前电压值,电压在1-4V范围(可以在不同情况下方便的设置你需要的电压范围值)内属于正常,否则报警,报警灯光使用的是闪动的LED发光二极管来模拟,报警鸣笛使用的是蜂鸣器来模拟,

通过一个定时器0的中断模式并采用软件延时使二极管和蜂鸣器得到两个各自适用的不同频率,通过INTO外部中断来启动静音模式,并且用户可操作电压旋转按钮来改变电压模拟波动的过程,如果报警过程中电压恢复正常,则报警结束,而当报警超过一定时间后可以自动切断电源,矢闭系统。

三、硬件系统设计,包括所需设备,接线方式,以及资源分配。

1设备:

IBMPC机一台

DP・51PROC单片机综合仿真实验仪一台

2接线方式:

单通道采集接线

⑴使用2X10的排线连接D7区的J28接到A7区的J84;

(2)将D2区10K电位器的左端金属孔通过导线连接到该区的GND金属孔,而右端金属孔

通过导线连接到该区的VCC金属孔;

(3)D2区10K电位器的中间金属孔连接到A7区的P2JO2金属孔(IN0);

(4)将A7区的P2JO3-P2JO5分别连接到A2区的A2~A0;

(5)将A7区的P2_CS连接到A2区的A15;

(6)将D1区LED1连接到A2区的P10

(7)将D1区SW1连接到A2区的INTO

(8)将A2区的P16与B5区的BUZZ相连

P1.0

P1.6

P2_IO3

P2_IO4

P2JO5

P2_CS

INTO

3、资源分配:

通过一个定时器0的中断模式并采用软件延时使二极管和蜂鸣器得到两个各自适用的不冋频率,通过INTO外部中断来启动静音模式,通过八段显示器显示出当前电压的实际数值。

四、软件系统的设计

选择电压工作范围功能模块

数据采集功能模块

数据运算转换模块

数据判断功能模块

1、功能模块

定时器0中断功能模块

外部中断0功能模块/外部中断1功能模块

显示功能模块

系统自动矢闭功能模块

2、各个功能模块实现的功能

1、选择电压工作范围功能模块:

根据输入电压的实际范围转换成条件所需要的数值范围

2、数据采集功能模块:

多次采集电压求取平均值

3、数据运算转换功能模块:

计算出所测的值对应的实际值

4、数据判断功能模块:

判断电压处于什么工作范围并相应的响应什么状态

5、定时器0中断功能模块:

通过一个定时器0的中断模式并采用软件延时使二极

管和蜂鸣器得到两个各自适用的不同频率,达到二极管闪烁和蜂鸣器蜂鸣的效

6、夕卜部中断功能模块:

通过INTO外部中断来启动静音模式

7、显示功能模块:

通过八段显示器显示出当前电压值

8、系统自动矢闭功能模块:

当报警超过一定时间后可以自动切断电源,矢闭系统。

3、程序流程图

4、ADC08091勺内部逻辑结

INO

8

IN1

nn

M3

IN4

INJ

IN6

IN7

1

A

IF

ALE

码器

五、程序清单:

EOC

VREFX+)

VREFTA)

OE

ORG8000H

 

LJMPMAIN

;转入主程序转入

外部中断程序转

入定时程序

MOVR0,#00H

ORG8003HLJMP

INTVSORG800BH

LJMPTCOSORG

81OOHMAIN:

MOV

SP,#70H;MOV20H,#00HMOV给堆栈指针赋初值;给

TMOD,#01HMOV判断定时器的位清零;

TH0,#0FFHMOV确定定时器工作方式;

TL0,#60HMOV给定时器赋初值

R2,#00H

MOVIE,#1000001OB;开中断

SETBETO

SETBEA

SETBEXO

SETBPXO;将外部中断0设置成高级中断

CLRIT0

MAIN1:

MOV32H,#1;输入电压报警实际范围

MOV33H,#4

MOVA,#033H;转换成判断需要的数值

MOVB,32H

MULAB

MOV34H,A

MOVA,#033H

MOVB,33H

MULAB

MOV35H,A

MOVA,#00H

MOVB,#03H

CLRC

MOVR1,#30H

MOVDPTR,#7FF8H

MOVX@DPTR,A;A/D转换,进行三次测量求取平均值

CALLDELAY

MOVXA,@DPTR

DIVAB

MOV@R1,A

MOVB,#03H

MOVX@DPTR,A

CALLDELAY

MOVXA,@DPTR

DIVAB

ADDA,@R1

MOV@R1,A

MOVB,#03H

NEQ1:

L1:

L4:

L3:

L2:

NEQ2:

TCOS:

MOVX@DPTR,A

CALLDELAY

MOVXA,@DPTR

DIVAB

ADDA,@R1

MOV@R1,A

CJNEA,35H,NEQ1;与报警范围的最大值进行

LJMPL1

JNCL1

LJMPL2;在安全范围时转到L2继续判断

JB20H.1丄4

CLRP1.6

;开启定时器进行报警

CLRP1.0

JB20H.0,L3;判断定时器是否已经开启

SETBTR0;开启定时器

MOVTH0,#0FFH;给定时器重新赋初值

MOVTL0,#60H

MOVR2,#00H

SETB20H.0;将定时器开启标志位置高

MOVA,OOH

SJMPMAIN1

;与报警范围的最小值进行比较

CJNEA,34H,NEQ2

LJMPL1

JCL1

CLRTRO;电压范围正常尖闭定时器

CLR20H.0;清空定时器开启标志位

SETBP1.6;矢闭报警

SETBP1.0

MOVA,OOH

LJMPMAIN1;返回主程序继续判断

 

MOVTH0,#0FFH;给定时器重新赋初值

MOVTL0,#60H

JB20H.1丄5;判断是否通过中断启动静音模式

CPLP1.6;控制蜂鸣器蜂鸣

L5:

INCR2;软件记数获得灯闪烁需要的频率

CJNER2,#99,NEXT

CPLP1.0;控制二极管闪烁

MOVR2,#00H

INCRO

CJNER0,#0FFH,NEXT;判断是否长时间没有反应

LJMPCUTOFF;转入尖闭系统

NEXT:

RETI

DELAY:

:

软件延时

MOVR6,#00H

DELAY1:

MOVR5,#0FFH

DJNZR5,$

DJNZR6,DELAY1

RET

INTVS:

;启动静音模式矢闭蜂鸣器

CPL20H.1

RETI

CUTOFF:

:

矢闭系统

SETBP1.0

SETBP1.6

SJMP$

END

六、调试程序的方法在采集数据之后设置断点,然后将电压旋扭分别旋到最大值、中间值和最小值,并且改变开尖的状态,观察存储器里的内容及其二极管和蜂鸣器的工作状态的变化,看中断系统和定时器是否按预期效果响应,并以此不断的进行修改和调试,以达到最佳效果。

七、设计问题的不足和改进方案设计问题的不足:

八段显示器显示的是实际电压的十六进制数

改进方案:

通过十六进制数与BCD码的转换使八段显示器显示十进制数

八、自评分和收获体会收获体会:

这次开放性实验的设计使我,掌握通过堆栈保护现场和恢复现场的应用,明白了双定时同时使用时避免相互影响的方法,熟悉了对外部中断的使用和定时器的分时操作及计数,学会了把基本算法运用到实际过程中。

通过这次开放性实验的设计,清楚的让我明白书本上的总结和老师所授予知识点是解决一切问题的支柱,落实与消化是矢键;在设计过程中,感觉不仅锻炼了自己的动手能力,更是加强了自己对发现问题、分析问题以及解决问题的综合能力;强烈的感受到团体合作的重要性和必要性;这些与这次能取得如此好的成绩是直接相矢联的。

至此,我真诚的期待着能走更远。

这次开放性实验的设计同时使我对外部中断的使用和定时器的分时操作及计数有了更进一步的认识,掌握和明白了双定时同时使用时避免相互影响的方法和通过堆栈保护现场和恢复现场的应用,发现了通过位操作控制定时器开启以避免原状态影响的方法,熟悉了各种运算方法和自己分析发觉算法的能力,复习了多字节与单字节和多字节的乘法,逐渐学会学习和运用新程序发现新算法的方法。

发觉在实际应用中,知识并不是最重要的,可以通过查阅资料来完成设计,重要的是要注意设计中的每一个细节,尽量避免由于某一处应用的错误而导致整个程序不能运行。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2