自动化1001班高洪亮.docx

上传人:b****4 文档编号:4675125 上传时间:2022-12-07 格式:DOCX 页数:31 大小:187.01KB
下载 相关 举报
自动化1001班高洪亮.docx_第1页
第1页 / 共31页
自动化1001班高洪亮.docx_第2页
第2页 / 共31页
自动化1001班高洪亮.docx_第3页
第3页 / 共31页
自动化1001班高洪亮.docx_第4页
第4页 / 共31页
自动化1001班高洪亮.docx_第5页
第5页 / 共31页
点击查看更多>>
下载资源
资源描述

自动化1001班高洪亮.docx

《自动化1001班高洪亮.docx》由会员分享,可在线阅读,更多相关《自动化1001班高洪亮.docx(31页珍藏版)》请在冰豆网上搜索。

自动化1001班高洪亮.docx

自动化1001班高洪亮

单片机系统

课程设计

成绩评定表

设计课题:

基于89C51的自动断电保护系统

学院名称:

专业班级:

学生姓名:

学号:

 

目录

一、引言.......................................2

二、总体方案论证与设计......................3

三、硬件电路设计

3.1时钟电路...............................6

3.2复位电路...............................7

3.3电流采样电路和继电器控制电路............7

3.4A/D采样电路...........................9

3.5键盘和显示接口电路....................10

3.5声光报警电路............................11

四、系统软件设计

4.1主程序设计流程图.........................12

4.2中断服务程序设计.........................12

4.3键盘和显示子程序设计.....................14

五、系统调试................................15

六、总结....................................15

参考文献....................................15

附件A.......................................17

附件B..........................................18

 

一、引言

现在人们生活离不开家用电器,并对家用电器的安全使用等提出了更高的要求。

自动断电保护系统不仅可以因为电路内部短路或者用电器超载时自动切断,防止发生用电事故,减少不必要的损失,而且系统中使用电流互感器,通过比较电流的采集值与设定值来自动控制继电器的通断,从而可以控制回路中电流的通断。

该系统中还设定了声光报警装置,使用户及时发现和处理用电事故。

二、总体方案论证与设计

按照任务要求和系统设计要求,控制系统包括以下几个部分:

1.控制器。

由于89c51单片机比较便宜,而且性能可以满足该系统的使用,因此可以作为该系统的控制核心。

2.A/D转换器。

ADC0809转换器模拟输入电压范围0~+5V,不需零点和满刻度校准,而且能耗低,工作温度范围宽,所以可以作为该系统的转换器。

3.电流采样。

可以通过一个互感器把大电流转换成小的电流,同时可以通过传感器把电流值转化成电压值输出。

4.继电器。

使用过电流电流继电器,当电流超过设定值时,继电器断开,电路回路断开,一般电流过电流继电器的工作电流为系统干路电流的2.2倍。

5.声光报警。

当电流值超过设定值时,进行报警。

6.键盘。

通过键盘可以设置限制电流大小。

7.数码管显示。

可以显示设置电流以及实时电流值大小。

图2.1就是总体设计图:

图:

图2-1总体设计结构图

三、硬件电路设计

3.1时钟电路

单片机片内有一个高增益的反相放大器,反相放大器的输入端为XTAL1,输出端为XTAL2,由该放大器构成的振荡电路和时钟电路一起构成了单片机的时钟方式。

在内部方式时钟电路中,必须在XTAL1和XTAL2引脚两端跨接石英晶体振荡器和两个微调电容构成振荡电路,通常C1和C2一般取30pF,晶振的频率取值在1.2MHz~12MHz之间。

对于外接时钟电路,要求XTAL1接地,XTAL2脚接外部时钟,对于外部时钟信号并无特殊要求,只要保证一定的脉冲宽度,时钟频率低于12MHz即可。

    晶体振荡器的振荡信号从XTAL2端送入内部时钟电路,它将该振荡信号二分频,产生一个两相时钟信号P1和P2供单片机使用。

时钟信号的周期称为状态时间S,它是振荡周期的2倍,P1信号在每个状态的前半周期有效,在每个状态的后半周期P2信号有效。

CPU就是以两相时钟P1和P2为基本节拍协调单片机各部分有效工作。

如图3.1和3.2为单片机内时钟电路:

图3.1内部自激震荡电路

图3.2时钟电路

3.2复位电路

在上电或复位过程中,控制CPU的复位状态:

这段时间内让CPU保持复位状态,而不是一上电或刚复位完毕就工作,防止CPU发出错误的指令、执行错误操作,也可以提高电磁兼容性能。

单片机在启动时都需要复位,以使CPU及系统各部件处于确定的初始状态,并从初态开始工作。

单片机系统的复位方式有:

手动按钮复位和上电复位。

复位方式有手动复位、上电复位和积分型复位。

图3.3就是上电复位电路图:

图3.3上电复位电路图

3.3A/D转换电路

ADC0809CMOS工艺为8通道,8位逐次逼近式A/D模数转换器。

其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。

其主要特性:

·8路输入通道,8位A/D转换器,即分辨率为8位。

  ·具有转换起停控制端。

  ·转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时) 

  ·单个+5V电源供电

  ·模拟输入电压范围0~+5V,不需零点和满刻度校准。

  ·工作温度范围为-40~+85摄氏度

·低功耗,约15mW

引脚功能

ADC0809芯片有28条引脚,采用双列直插式封装。

下面说明各引脚功能。

  IN0~IN7:

8路模拟量输入端。

  2-1~2-8:

8位数字量输出端。

  ADDA、ADDB、ADDC:

3位地址输入线,用于选通8路模拟输入中的一路

  ALE:

地址锁存允许信号,输入,高电平有效。

  START:

A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

  EOC:

A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

  OE:

数据输出允许信号,输入,高电平有效。

当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

  CLK:

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

  REF(+)、REF(-):

基准电压。

  VCC:

电源,单一+5V。

GND:

地。

A/D转换采样电路。

CS0接面板上的CS0端口,选择ADC0809芯片地址,A0,A1,A2接AD转换通道选择段,因为本设计只涉及一个通道0,所以可以赋值0即可,数据输出端接单片机AD0-AD7口,当ADC0809数据转换结束时,EOC端口输出一个高电平。

经过一个反相器,接单片机的外部中断输入口。

向单片机申请中断,读取数据。

图3.4就是A/D转换电路图:

图3.4A/D转换电路

3.4电流采样电路和继电器控制电路

采样电路采用电流互感器进行,并通过一定的放大和转换电路,把电流值转化成对应的电压值输出。

当电流值大于设定值后继电器会自动断开使用电器停止工作并保护电路。

图3.5就是电流采样和转换电路:

图3.5电流采样和转化电路

3.5显示电路设计

本系统中来实现段码和位码数据所存采用74LS374锁存器。

该电路会使用户设置的电流值和采集的电流值清晰的显示出来。

键盘电路会对74LS374输入低电平并读取74LS245的数值断定键是否按下,并识别按哪个键。

图3.6就是键盘显示电路:

图3.6键盘显示电路

3.6声光报警电路

声光报警电路中采用三极管驱动音频放大器实现音频报警,当电流大于设定值时就会在P1.0端口产生100HZ的方波信号,来有效的控制Q2通断,同时P1.2端口输出高电平,发光二级管发光而报警。

图3.7就是声光报警电路:

图3.7声光报警电路

四、软件设计

4.1主程序流程图

主程序主要完成初始化、扫面显示、扫描键盘等,是系统首先执行的程序。

图4.1就是主程序流程图:

图4.1主程序流程图

4.2中断服务程序流程图

图4-2外部中断服务程序

当A/D转换结束时,ADC0809模数转换器EOC引脚输出一个高电平信号,经过一个反向器,使89C51产生外部中断,进入外部中断服务程序。

首先保护现场,然后读取AD值,进行数据的转换然后存储,并与设定的电流值进行大小比较,如果超过设定值,则继电器断开,用电器回路断开,并置1报警标志位。

恢复现场,中断返回。

定时器0中断服务程序流程图如图4-3所示:

图4-3定时器0中断服务程序

定时器设置为10ms定时,每10ms中断一次,进入中断之后,首先保护现场,重装初值,判断是否处在报警状态,如果是,取反P1.0口,驱动扬声器进行声音报警。

如果没有处于报警状态在判断是否到1S,到1S,则重置1S计数初值,启动A/D转换然后恢复现场,中断返回,如果不到1S,则直接恢复现场,中断返回。

4.3键盘和显示子程序设计

键盘程序,采用三个独立按键来设置限制电流值的大小,第一次按下键1,启动限制电流大小的设置,此时按键2,则实现限制电流的增加,最大限制电流20A;若按键3,则实现限制电流的减小。

再次按下键1,则关闭对限制电流大小的设置。

显示程序,首先要将数据缓冲区的要显示的数据进行十位和个位的分离,进行查表,找到相应的段码,向数据总线送入段码地址,再送段码数据,接下来送位码地址和位码数据。

分别将电流采样值和设定值进行显示。

五、系统调试

由于硬件的限制,我们不能对互感器电流采样部分电路的测试,但是我们通过直接给ADC0809一个模拟信号可以实现当电压达到一定值时,蜂鸣器响起进行报警,同时发光二极管点亮进行报警。

键盘能够正常的对限制电流大小进行设置,显示部分能够正确显示出电流的设定值和采样值。

六、总结

通过这次课程设计,让我深刻地掌握了单片机的使用,了解了单片机内部的数据存储和定时器以及A/D转换的作用。

同时也知道了单片机外部电路的接口技术,数据总线的运用。

通过做这次设计,让我更好了解和掌握了汇编语言,喂以后的学习和应用奠定了坚实的基础。

参考文献:

[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:

国防工业出版社,2004

[2]伟福LAB6000系列单片机仿真实验系统使用说明书

[3]阎石.数字电路技术基础(第五版).北京:

高等教育出版社,2006

附件A

 

附件B

程序:

ORG0000H

LJMPMAIN

ORG0003H

LJMPTS

ORG000BH

LJMPT_0

ORG0030H

MAIN:

MOVSP,#3FH

MOV60H,#0

MOV70H,#10

MOVR0,#60H

MOVR1,#70H

MOVR6,#50

MOVR7,#200

CLR20H

CLR21H

CLRP1.0

CLRP1.1

CLRP1.2

MOVTH0,#0F6H

MOVTL0,#3CH

SETBIT0

MOVIE,#83H

SETBTR0

MOVA,#0

MOVDPTR,#8000H

MOVX@DPTR,A

LOOP:

LCALLDISPLAY

LCALLKEY

LJMPLOOP

KEY:

PUSHACC

PUSHPSW

PUSHDPH

PUSHDPL

LCALLKEY_VALUE

JB21H,KEY0_0

KEY0:

CJNEA,#01H,RETURN

LCALLDISPLAY

CJNEA,#01H,RETURN

LCALLKEY_VALUE

JNZKEY0

SETB21H

LJMPRETURN

KEY0_0:

CJNEA,#01H,KEY1

LCALLDISPLAY

CJNEA,#01H,KEY1

LCALLKEY_VALUE

JNZKEY0_0

CLR21H

LJMPRETURN

KEY1:

CJNEA,#02H,KEY2

LCALLDISPLAY

CJNEA,#02H,KEY2

LCALLKEY_VALUE

JNZKEY1

INC70H

CJNE@R1,#20,RETURN

MOV70H,#0

LJMPRETURN

KEY2:

CJNEA,#04H,RETURN

LCALLDISPLAY

CJNEA,#04H,RETURN

LCALLKEY_VALUE

JNZKEY2

DEC70H

CJNE@R1,#0,RETURN

MOV70H,#20

RETURN:

POPDPL

POPDPH

POPPSW

POPACC

RET

KEY_VALUE:

MOVDPTR,#09002H

MOVA,#00H

MOVX@DPTR,A

MOVDPTR,#08001H

MOVXA,@DPTR

ANLA,#0FH

RET

DISPLAY:

PUSHACC

PUSHPSW

PUSHDPH

PUSHDPL

MOVA,@R0

MOVB,#10

DIVAB

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#09004H

MOVX@DPTR,A

MOVDPTR,#09002H

MOVA,#02H

MOVX@DPTR,A

MOVA,B

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#09004H

MOVX@DPTR,A

MOVDPTR,#09002H

MOVA,#01H

MOVX@DPTR,A

MOVA,#0

MOVX@DPTR,A

MOVA,@R1

MOVB,#10

DIVAB

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#09004H

MOVX@DPTR,A

MOVDPTR,#09002H

MOVA,#08H

MOVX@DPTR,A

MOVA,B

MOVDPTR,#TAB

MOVCA,@A+DPTR

MOVDPTR,#09004H

MOVX@DPTR,A

MOVDPTR,#09002H

MOVA,#04H

MOVX@DPTR,A

LJMPRETURN

DELAY:

MOVR6,#50

DELAY_LOOP:

DJNZR6,DELAY_LOOP

RET

TS:

PUSHACC

PUSHPSW

PUSHDPH

PUSHDPL

MOVDPTR,#8000H

MOVXA,@DPTR

MOVB,#5

DIVAB

MOVB,#2

MULAB

MOVB,#5

DIVAB

MOV@R0,A

SETBC

CJNEA,70H,NEXT

NEXT:

JNCNEXT0

CLR20H

CLRP1.1

CLRP1.2

LJMPBACK

NEXT0:

SETB20H

SETBP1.1

SETBP1.2

LJMPBACK

T_0:

PUSHACC

PUSHPSW

PUSHDPH

PUSHDPL

MOVTH0,#0F6H

MOVTL0,#3CH

JB20H,NEXT1

NEXT2:

DJNZR7,BACK

MOVR7,#200

MOVA,#0

MOVDPTR,#8000H

MOVX@DPTR,A

BACK:

POPDPL

POPDPH

POPPSW

POPACC

RETI

NEXT1:

CPLP1.0

LJMPNEXT2

TAB:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

 

 

图3-4键盘和显示电路

3.5声光报警电路

声光报警电路,采用三极管驱动音频放大器实现音频报警,当采样电流值大于电流设定值时,单片机P1.0端口产生100HZ的方波信号,控制Q2的通断,实现蜂鸣器报警;单片机P1.2端口变成高电平,则发光二极管点亮,实现报警功能。

电路图如图3-5所示:

图3-5声光报警电路

四、系统软件设计

软件设计包括主程序,中断服务程序等其它子程序

4.1主程序设计

主程序是系统上电或复位后首先要执行的程序,主程序主要完成系统的初始化、扫描显示、扫描键盘等工作。

主程序流程图如图4-1所示:

图4-1主程序流程图

当系统上电或者手动复位时,首先进行系统初始化,设置堆栈地址,定时器0工作方式,中断触发方式以及其它系统初始化。

然后启动定时器和AD转换。

然后进行不停的扫描键盘和显示。

4.2中断服务程序设计

外部中断服务程序流程图如图4-2所示:

图4-2外部中断服务程序

当A/D转换结束时,ADC0809模数转换器EOC引脚输出一个高电平信号,经过一个反向器,使89C51产生外部中断,进入外部中断服务程序。

首先保护现场,然后读取AD值,进行数据的转换然后存储,并与设定的电流值进行大小比较,如果超过设定值,则继电器断开,用电器回路断开,并置1报警标志位。

恢复现场,中断返回。

定时器0中断服务程序流程图如图4-3所示:

图4-3定时器0中断服务程序

定时器设置为10ms定时,每10ms中断一次,进入中断之后,首先保护现场,重装初值,判断是否处在报警状态,如果是,取反P1.0口,驱动扬声器进行声音报警。

如果没有处于报警状态在判断是否到1S,到1S,则重置1S计数初值,启动A/D转换然后恢复现场,中断返回,如果不到1S,则直接恢复现场,中断返回。

4.3键盘和显示子程序设计

键盘程序,采用三个独立按键来设置限制电流值的大小,第一次按下键1,启动限制电流大小的设置,此时按键2,则实现限制电流的增加,最大限制电流20A;若按键3,则实现限制电流的减小。

再次按下键1,则关闭对限制电流大小的设置。

显示程序,首先要将数据缓冲区的要显示的数据进行十位和个位的分离,进行查表,找到相应的段码,向数据总线送入段码地址,再送段码数据,接下来送位码地址和位码数据。

分别将电流采样值和设定值进行显示。

五、系统调试

由于硬件的限制,我们不能对互感器电流采样部分电路的测试,但是我们通过直接给ADC0809一个模拟信号可以实现当电压达到一定值时,蜂鸣器响起进行报警,同时发光二极管点亮进行报警。

键盘能够正常的对限制电流大小进行设置,显示部分能够正确显示出电流的设定值和采样值。

六、总结

通过本次的单片机课程设计,使我更好的掌握了单片机的使用,更好地理解了单片机内部的数据存储,中断和定时器的应用,单片机外部电路的接口技术,数据总线的运用,也更深入的了解了汇编语言,熟悉了汇编指令的功能以及程序的编写。

让我知道想设计好一个完整稳定的系统,需要考虑很多的细节,并不是那么容易,对我以后进入工作起到很大的帮助。

参考文献:

[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:

国防工业出版社,2004

[2]伟福LAB6000系列单片机仿真实验系统使用说明书

[3]阎石.数字电路技术基础(第五版).北京:

高等教育出版社,2006

附件A

程序:

ORG0000H

LJMPMAIN

ORG0003H

LJMPTS

ORG000BH

LJMPT_0

ORG0030H

MAIN:

MOVSP,#3FH;设置堆栈

MOV60H,#0;采集数据显示缓冲区

MOV70H,#10;设置数据显示缓冲区

MOVR0,#60H

MOVR1,#70H

MOVR6,#50

MOVR7,#200;1S计数值

CLR20H;报警状态标志位

CLR21H;设置数据标志位

CLRP1.0;音频报警

CLRP1.1;继电器

CLRP1.2;LED

MOVTH0,#0F6H;定时器0装初值

MOVTL0,#3CH

SETBIT0;外部中断触发方式设置

MOVIE,#83H;开总中断,外部中断0,定时器中断0

SETBTR0;启动定时器

MOVA,#0

MOVDPTR,#8000H;片选ADC0809

MOVX@DPTR,A;启动AD

LOOP:

LCALLDISPLAY;调用显示

LCALLKEY;扫描键盘

LJMPLOOP

KEY:

PUSHACC;保护现场

PUSHPSW

PUSHDPH

PUSHDPL

LCALLKEY_VALUE

JB21H,KEY0_0;判断是否处于设置数据状态

KEY0:

CJNEA,#01H,RETURN;判断键值

LCALLDISPLAY;调用显示延时,消抖

CJNEA,#01H,RETURN

LCALLKEY_VALUE

JNZKEY0;等键释放

SETB21H;设置数据状态标志位置1

LJMPRETURN;返回

KEY0_0:

CJNEA,#01H,KEY1;判断键值

LCALLDISPLAY;调用显示延时消抖

CJNEA,#01H,KEY1

LCALLKEY_VALUE

JNZKEY0_0;等键释放

CLR21H;设置完成,清除标志位

LJMPRETURN;返回

KEY1:

CJNEA,#02H,KEY2;判断键值

LCALLDISPLAY;调用显示延时,消抖

CJNEA,#02H,KEY2

LCALLKEY_VALUE

JNZKEY1;等键释放

INC70H;设置数据缓冲区加1

CJNE@R1,#20,RETURN;判断是否到最大值20

MOV70H,#0;是,归0

LJMPRETURN;返回

KEY2:

CJNEA,#04H,RETURN;判断键值

LCALLDISPLAY;调用显示延时,消抖

CJNEA,#04H,RETURN

LCALLKEY_VALUE

JNZKEY2;等键释放

DEC70H;设置数据缓冲区加1

CJNE@R1,#0,RETURN;判断是否到最小值0

MOV70H,#20;是,变为20

RETURN:

POPDPL;恢复现场

POPDPH

POPPSW

POPACC

RET

KEY_VALUE:

;读键值子程序

MOVD

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1