基于单片的模拟电网数据采集系的设计毕业设计.docx
- 文档编号:29735185
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:37
- 大小:269.15KB
基于单片的模拟电网数据采集系的设计毕业设计.docx
《基于单片的模拟电网数据采集系的设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片的模拟电网数据采集系的设计毕业设计.docx(37页珍藏版)》请在冰豆网上搜索。
基于单片的模拟电网数据采集系的设计毕业设计
基于单片机的模拟
电网数据采集系统的设计
【摘要】
MCS-51是八位单片机的一个系列,其灵活性和可靠性受到了广大使用者的青睐。
本设计就是利用MCS-51系列单片机来模拟一个电网数据采集和当地显示的小系统,涵盖了MCS-51中断系统、内部定时器、键盘扫描和LED显示、并行I/O口、A/D变换等知识。
其主要四大硬件电路包括单片机对开关量的输入与显示,对A/D转换器的接线,对键盘和LED的接线,对继电器的超限控制;整个硬件电路连线简单,可靠性高。
【关键词】:
MCS-51系列单片机,四大硬件电路
ABSTRACT
MCS-51SCMisoneoftheeightseries,intheseriescontaindozensofspecificmodelsofthesetypesofsingle-chipmicrocontroller,verymuchthesame,andinternalstructurehasthesamecommandsystemandworkingprinciple,flexibilityandreliabilitybyboththeuser'sfavor.ThisdesignistousetheMCS-51seriesmicrocontrollertosimulateAgriddataacquisitionandlocalshowsmallsystem,coversMCS-51interruptsystems,internaltimer,keyboardscanandLEDdisplay,parallelI/Omouth,A/Dtransformationsuchknowledge.ItsmainfourhardwarecircuitincludingthemonolithicintegratedcircuittoswitchquantityinputanddisplayofA/Dconverterofwiring,thekeyboardandLEDthewiringoftheoff-gaugecontrol,ofrelays,Thewholehardwarecircuitattachmentissimple,highreliability.Thispapermainlyintroducesthedesignofhardwareandsoftwareofthedesign.
【KEYWORD】:
MCS-51seriesmicrocontroller,fourhardwarecircuit
三、硬件设计2
3.MCS-51的最小系统4
4.MCS-51的复位状态5
(二)输入与显示电路6
1.电路的原理图6
2.工作原理与实现功能6
(三)继电器的超限控制电路7
1.电路的原理图7
2.工作原理与实现功能7
(四)A/D转换电路7
1.电路的原理图7
2.工作原理与实现功能7
(五)键盘输入与LED显示电路……………………………………………………………………8
1.电路的原理图8
2.工作原理与实现功能8
四、软件设计9
(一)RAM单元的地址分配9
(二)总体程序流程框图10
(三)系统总程序11
总结20
附录一:
Protel图21
附录二:
PCB图22
参考文献23
致谢24
一、引言
(一)课题研究的背景、意义
随着社会生产力的发展,加快了信息社会的建设,电网数据的采集显得尤为重要。
可以用于满足电网安全监测的需要,分析电能在实际应用中的质量,用于一些数据的统计等。
模拟电网数据采集系统的设计涵盖了单片机、电路基础、数电、模电等学科,同时还得利用Protel软件制作印制电路板等。
其中单片机最重要,涵盖了MCS-51中断系统、内部定时器、键盘扫描和LED显示、并行I/O口、A/D变换、串行发送和接收等知识。
所以本课的题设计具有一定的参考价值,充分利用电能,服务于社会。
(二)国内外研究动态
2008年3月,美国科罗拉多州一座小城波尔得建成了美国第一座智能电网城市。
目前美国多个州都对此项技术表示出浓厚的兴趣,并开始设计智能电网系统,通用电气、IBM、西门子、谷歌、英特尔等信息产业龙头也瞄上了此间的商机,都已投入智能电网业务。
(三)课题主要研究内容
本课题是一个电网数据的模拟采集和当地显示的小系统,是MCS-51通过内部定时器、中断系统功能、键盘扫描和LED显示、并行I/O口、A/D转换器进行接口的综合性课题。
二、总体设计
(一)总体设计思想
以MCS-51系列单片机为核心,通过四大硬件电路——输入与显示电路、继电器超限控制电路、键盘输入与LED显示电路、A/D转换电路来达到控制的目的。
是MCS-51通过内部定时器、中断系统功能、键盘扫描和LED显示、并行I/O口、A/D转换器进行接口的综合性课题。
通过连接各个部分,从而达到对电网数据的采集。
(二)总体框图(如图2-1所示)
图2-1系统总框图
三、硬件设计
(一)MCS-51系列单片机
1.MCS-51的硬件结构
(1)CPU结构模块
该单片机中有一个高性能CMOS8位微控制器,包括运算器和控制器两部分。
(2)存储器结构模块
RAM:
片内为128B,片外最多可外扩至128B,共256B,用来存储程序在运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等。
ROM:
片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器。
(3)定时器/计数器
片内有3个16位的定时器/计数器,具有四种工作方式。
(4)中断系统
5个中断优先级2层中断嵌套中断。
(5)串行口
2个全双工的串行口,具有四种工作方式。
可用来进行串行通讯,扩展并行I/O口,甚至与多个单片机相连构成多机系统,从而使单片机的功能更强且应用更广。
(6)P1口、P2口、P3口、P4口
为4个并行8位I/O口。
2.MCS-51的引脚功能
MCS-51系列单片机都采用40个引脚的双列直插封装方式,引脚如图3-1所示,包括2个电源引脚、2个时钟引脚、4个控制引脚、32个I/O口。
图3-1MCS-51单片机引脚图
(1)电源引脚
Vcc(40脚):
接+5V电源正端。
Vss(20脚):
接地端。
(2)时钟引脚
XTAL1(19脚):
接外部晶振和微调电容的一端。
采用外部时钟电路时,对HMOS型工艺的单片机,此引脚应接地;对CHMOS型而言,此引脚应该接外部时钟的输入端。
XTAL2(18脚):
接外部晶振和微调电容的另一端。
使用外部时钟时,对HMOS型的单片机,此引脚应接外部时钟的输入端;对CHMOS型而言,此引脚悬空。
(3)控制引脚
EA非/Vpp(31脚):
外部程序存储器地址允许输入端/编程电压输入端。
当EA非接高电平时,CPU执行片内ROM指令,但当PC值超过0FFFH时,将自动去执行片外ROM指令;当接低电平时,CPU只执行片外ROM指令。
该引脚的第二功能Vpp是对8751片内EPROM编程写入时,作为21V编程电压的输入端。
ALE/PROG非(30脚):
地址锁存有效信号输入端。
ALE在每个机器周期内输出两个脉冲。
在访问片外程序存储器期间,下降沿用于控制锁存P0输出的低8位地址;在不访问片外程序存储器期间,可作为对外输出的时钟脉冲或用于定时目的。
对于片内含有EPROM的机型,在编程期间,该引脚用作编程脉冲PROG的输入端。
PSEN非(29脚):
片外程序存储器读选信号输出端,低电平有效。
当从外部程序存储器读取指令或常数期间,每个机器周期该信号两次有效,以通过数据总线P0口读回指令或常数。
在访问片外数据存储器期间,PSEN非信号将不出现。
RST/Vpd:
RST即为RESET,Vpd为备用电源。
该引脚为单片机的上电复位或掉电保护端。
当单片机振荡器工作时,该引脚上出现持续两个机器周期的高电平,就可实现复位操作使单片机回到初始状态。
上电时,考虑到振荡器有一定的起振时间,该引脚上的高电平必须持续10ms以上才能保证有效复位。
当Vcc发生故障时,降低到低电平规定时或掉电时,该引脚可接上备用电源Vpd(+5V)为内部RAM供电,以保证RAM中的数据不丢失。
(4)I/O引脚
P0口(P0.0~P0.7)(39~32脚):
P0口的8位双向I/O口线,P0口即可作为地址/数据总线使用,又可作为通用的I/O口使用。
当CPU片外存储器时,P0口分时先作低8位地址总线,后作双向数据总线,此时,P0口就不能再作I/O口使用了。
P1口(P1.0~P1.7)(1~8脚):
P1口的8位准双向I/O口线,P1口作为通用的I/O口使用。
P2口(P2.0~P2.7)(21~28脚):
P2口8位准双向I/O口线,P2口即可作为通用的I/O口使用,也可作为片外存储器的高8位地址总线,与P0口配合,组成16位片外存储器单元地址。
P3口(P3.0~P3.7)(10~17脚):
P3口的8位准双向I/O口线。
P3口除了作为通用的I/O口使用之外,每个引脚还具有第二功能。
3.MCS-51的最小系统(如图3-2所示)
MCS-51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。
用MCS-51单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,如图3-2MCS-51单片机最小系统所示。
由于集成度的限制,最小应用系统只能用作一些小型的控制单元。
其应用特点:
有可供用户使用的大量I/O口线;
内部存储器容量有限;
应用系统开发具有特殊性。
图3-2MCS-51最小系统图
(1)时钟电路
单片机的时钟信号用来提供单片机内部各种操作的时间基准。
单片机内部有一个高增益的反相放大器,其输入端XTAL1和XTAL2用于外接晶体和电容,以构成自激振荡器,其发出的脉冲直接送入内部的时钟电路,外接电路如图3-3(a)所示。
内部时钟方式是把外部已有的时钟信号引入单片机内,如图3-3(b)所示。
图3-3(a)内部方式时钟电路图3-3(b)外部方式时钟电路
本设计所采用外部方式时钟电路,当外加信号时,时钟电路会产生相应的基准信号,再按下EXEC键后进入“待命状态”,此时系统成为一个电脑时钟,LED显示相应的时间,外加信号正是通过外部方式时钟电路到达系统的。
(2)复位电路
MCS-51的复位是由外部的复位电路来实现的。
复位引脚RST通过一个施密特触发器用来抑制噪声,输出电平由复位电路采样一次,然后才能得到内部复位操作所需要的信号。
本设计采用按键手动复位电路,电路见图3-4。
时钟频率选用6MHZ时,C取22uF,Rs取200Ω,RK取1KΩ。
图3-4MCS-51的按键手动复位电路
4.MCS-51的复位状态如表3-1所示:
表3-1各特殊功能寄存器复位后的初始状态
特殊功能寄存器
初始态
特殊功能寄存器
初始态
ACC
00H
B
00H
PSW
00H
SP
07H
DPH
00H
TH0
00H
DPL
00H
TL0
00H
IP
XXX00000B
TH1
00H
IE
0XX000000B
TL1
00H
TMOD
00H
TCON
00H
SCON
00H
SBUF
XXXXXXXXB
P0~P3
11111111B
PCON
0XXXXXXXB
(二)输入与显示电路
该部分以单片机8255为核心,主要用8031和8255来连接开关组和发光二极管,8255各端口地址的分配也在其中指明,如图3-5所示。
8255端口的地址分配:
A口FF28H
B口FF29H
C口FF2AH
D口FF2BH
1.电路的原理图
图3-58255和开关组及二极管的连接
2.工作原理与实现功能
8255单片机利用MOS工艺,高速、高密度,当PB7-PC0分别与L8和L1相连以及PB7-PC0与K8-K1相连后,开启电源,在系统机上输入所编写的实验程序,机器汇编后装入DVCC-52S用户仿真区RAM,按下EXEC键执行程序,拨动K1-K8,观察L1-L8是否跟随点亮。
当闭上开关,信号进入单片机8255内部由相应的程序来控制,使之到达相应的二极管。
信号的复位由单片机8031来控制,电路图中二极管共阳极,高电平有效。
本系统共有三种工方式:
方式0、方式1、方式2,而本电路就是提供这三种工作方式,系统采集开关量(由K1~K8设定)并点亮相应的氖灯L1~L8,使系统工作在对应的状态下。
具体工作在何种状态下,由“键盘输入与LED显示电路”来进行选择与说明。
氖灯L1~L8就是分配给这三种工作方式的,可以从键盘来选择任意一种工作状态。
(三)继电器的超限控制电路
1.电路的原理图
利用8031与继电器M1来实现,对被采集的模拟电压进行超限控制,当超出范围时,继电器就会自动合上。
如图3-6所示:
图3-68031对继电器的超限控制
2.工作原理与实现功能
把模拟电压的范围设定在1V-4V,本电路就是当超出设定的范围时,图中开关S1就会自动吸合,当信号达到单片机8031时,内部程序会根据相应的要求来控制电压的大小。
此时继电器就会自动合上,来达到控制的目的。
8031单片机利用MOS工艺,高速、高密度且低耗能,把P1.0与JIN相连,把继电器的常开触点与L2相连,当P1.0为高电平时,继电器就会闭合,即达到控制的目的。
(四)A/D转换电路
1.电路的原理图
利用ADC0809与8031来实现,图中的译码器74LS138的连接在PCB中体现,电路连接如图3-7所示。
图3-7A/D转换电路
2.工作原理与实现功能
ADC0809是一种易于维护且操作简单的单片机,把W1与ADC0809的IN0相连,把译码器的输出端FE00与CS4相连,当输入程序后,调整变阻器W1观察LED2~LED0上是否会在0.00~5.00V之间变化,当超过0.00~5.00V,可以采用设置断点法来调试程序,即通过改变程序的初始值来达到满意的状态。
当继电器对电压进行限控时,由于产生的是模拟电压,不能达到控制的目的,此电路就是把对应的模拟量转换成相应的数字量。
进行转换的原式为:
5/255=X/数字量,X=数字量*5/255=数字量/33H
因为0.00<=X<=5.00V
所以100<=数字量*100/33H
对100X进行BCD转换,显示时通过加小数点将其缩小100倍,对100X进行BCD转换的方法为:
先对50X进行BCD转换,然后把得到的BCD码再扩大一倍。
(五)键盘输入与LED显示电路
1.电路的原理图
采用8155与8031来控制,本设计LED采用共阳字形码,电路如图3-8所示。
2.工作原理与实现功能
本电路就是对来自转换电路的数字量进行显示,以及提供输入与显示电路选择按键,如:
三个方式、待命状态等。
用于显示电脑时钟来进行时间的控制。
当有信号来的时候,从CE非进来以后,8155进行控制,再把对应的程序输入系统,然后手动按下每个键,观察LED低2位所显示的值。
令LED右边两位显示FF(8155的初始化)当按键扫描完子程序时,把A中的低四位送给79H,把A中的高四位送给7AH,再返回原有的程序中。
图3-8键盘输入与LED显示电路
四、软件设计
(一)RAM单元的地址分配
系统的时、分、秒和1/20秒存放单元、显示缓冲区单元、开关量存放单元、位控制用字节单元以及地址存放单元和被发送/接收的存放单元等规定如图4-1所示。
图4-1RAM单元的地址分配
(二)总体程序流程框图,如图4-2所示:
总体程序流程框图是本设计的主线,它对于程序的来源非常重要。
首先初始化,把2FH单元清零,询问2FH位是否为零,为零时送拆字程序,否则送暗码程序。
拆字程序方面:
当送往拆字程序后,通过功能选择键来哪一路电路即:
方式0、方式1、方式2,每一种方式电路都对应不同的显示。
在此过程中如果有电压超限,则继电器动作,之后在返回显示程序。
暗码程序方面:
不清零则通过开关作用使它清零,然后在通过A/D转换程序把相应的模拟量转化为对应的数字量,在把送到对应的显示程序。
F键为方式选择键,按下此键后系统进入方式选择状态。
图4-2总体程序流程框图
(三)系统总程序
ORG000BH
LJMPTINTSN
ORG0030H
TINTSN:
PUSHACC;保护现场
PUSHPSW
MOVTH0,#9EH;重送T0初值
MOVTL0,#63H
INC23H;1/20秒单元加“1”
MOVA,23H
CJNEA,#14H,RETN;若1s未到,则转RETN
MOV23H,#00H;否则,1/20秒单元清零
MOVA,22H;秒单元加“1”
ADDA,#01H
DAA
MOV22H,A
INC24H;1秒切换单元加“1”
CJNEA,#60H,RETN;若1min未到,则转RETN
MOV22H,#00H;否则,秒单元清零
MOVA,21H;分单元加“1”
ADDA,#01H
DAA
MOV21H,A
CJNEA,#60H,RETN;若60min未到,则转RETN
MOV21H,#00H;否则,分单元清零
MOVA,20H;时单元加“1”
ADDA,#01H
DAA
MOV20H,A
CJNEA,#24H,RETN;若24h未到,则转RETN
MOV20H,#00H;否则,时单元清零
RETN:
POPPSW;恢复现场
POPACC
RETI
ORG0100H
START:
MOV2FH,#00H;清零标志
MOVSP,#50H;令栈底地址为50H
MOVA,#03H;令8155的A、B口为输出,C口为输入
MOVDPTR,#0FF20H
MOVX@DPTR,A
MOVA,#89H;令8255的C口为输入,B口为输出
MOVDPTR,#0FF2BH
MOVX@DPTR,A
MOVTMOD,#01H;令T0定时50ms
MOVTH0,#9EH
MOVTL0,#58H
SETBEA;开T0中断
SETBET0
SETBTR0;启动T0工作
MAIN:
JB7FH,SBCODE;若(7FH)位=1,则SBC0DE
NEXT:
ACALLBCDEX;转拆字程序
NEXT1:
ACALLDISPLAY;转显示程序
MOVDPTR,#0FF21H
MOVA,#00H
MOVX@DPTR,A;令键盘所列为低电平
MOVDPTR,#0FF23H
MOVXA,@DPTR;读键盘行值
ANLA,#0FH;屏蔽高四位
CJNEA,#0FH,NEXT2;若有键按下,则转NEXT2
SJMPMAIN;若无键按下,则转MAIN
NEXT2:
ACALLKEYSCAN;转键扫描子程序
CJNEA,#0FFH,NEXT3;若有键按下,则转NEXT3
SJMPMAIN;若无键按下,则转MAIN
NEXT3:
CJNEA,#0AH,NEXT4;被按键是功能键吗?
NEXT4:
JNCFUNC;若被按键是功能键,则转FUNC
ANLA,#03H;否则,屏蔽高六位
JNZDIGIT;若非数字键0,则转DIGIT
SETB78H;若非数字键0,则(78H)位=1
CLR79H;(79H)位=0
CLR7AH;(7AH)位=0
SJMPMAIN
DIGIT:
JBACC.0,DIGIT1;若为数字键1,则转DIGIT
SETB7AH;若为数字键2,则转(7AH)位=1
CLR78H;(78H)位=0
CLR79H;(79H)位=0
SJMPMAIN
DIGIT1:
SETB79H
CLR78H;(78H)位=0
CLR7AH;(7AH)位=0
SJMPMAIN
FUNC:
CJNEA,#0FH,NOTF;若非F键,则转NOTF
MOV2FH,#00H;若是F键,则(2FH)=00H
SETB7FH
SJMPMAIN
NOTF:
MOV2FH,#00H
SJMPMAIN
SBCODE:
MOVR0,#79H;给79H~7EH送暗码10H
MOVR2,#06H
MOVA,#10H
LOOPPDS:
MOV@R0,A
INCR0
DJNER2,LOOPPDS
JB78H,MODE0;若为数字键0,则转MODE0
JB79H,MODE1;若为数字键1,则转MODE1
JB7AH,MODE2;若为数字键2,则转MODE2
MOV79H,#0FH;若为F键,则0FH=79H
SJMPNEXT1
MODE2:
MOVA,24H
ANLA,#03H
CJNEA,#02H,MNEXT1;若2S未到,则转嘛呢系统
CPL7EH;若2S以到,则7EH=7EH非
MOV24H,#00H;清2秒钟单元
MNEXT1:
JNB7EH,MODE0
SJMPMODE1
MODE0:
MOVA,#00H;显示缓冲区高位显示“0”
MOV7EH,A
SJMPMODE
MODE1:
MOVA,#01H;显示缓冲区高位显示“1”
MOV7EH,A
MODE:
ACALLREADAD
ACALLREADP1
MOVA,2EH
CJNEA,#33H,CX1
CX1:
JNCCX
CJNEA,#33H,CX2
CX2:
JCCX
SETBP1.0
SJMPSBCRET
CX:
CLRP1.0;继电器吸合
SBCRET:
AJMPNEXT1
BCDEX:
MOVR3,#03H;对时分秒单元内容拆字,并送显存
MOVR0,#79H
MOVR1,#22H
LOOP:
MOVA,@R1
ANLA,#0FH
MOV@R0,A
INCR0
MOVA,@R1
SWAPA
ANLA,#0FH
MOV@R0,A
INCR0
DECR1
DJNZR3,LOOP
RET
DISPLAY:
MOVR3,#00H;显示子程序
MOVR0,#7EH
MOV
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片 模拟 电网 数据 采集 设计 毕业设计