中北大学信息商务学院
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中北大学信息商务学院
单片机课程设计书
2010/2011 学年第二学期
学院信息商务学院
专业电气工程及其自动化
学生姓名学号:
设计题目基于单片机的水位控制系统设计
起迄日期: 2011 年5月3日~2011 年6月11 日指导教师:赵俊梅
系主任:王明泉
2011年6月18日
目录
引言 (1)
1设计目的 (1)
2设计内容及要求 (1)
3 MCS-51单片机系统说明 (1)
3.1 MCS-51单片机简介 (1)
3.2 89C51引脚及功能 (2)
3.2.1时钟电路引脚 (2)
3.2.2控制信号引脚 (2)
3.2.3并行口引脚 (3)
3.3 时序 (3)
3.4 MCS-51单片机的存储器组织 (4)
3.5 复位状态 (4)
4 工作原理 (5)
4.1 原理框图 (5)
4.2 工作原理 (5)
5 硬件设计 (6)
5.1 单片机 (6)
5.2 传感器 (6)
5.3 键盘电路 (6)
5.4 水位显示电路 (6)
5.5 A/D转换电路及控制输出 (7)
6 软件设计 (7)
6.1液位控制器模型的软件设计框图 (7)
6.2键盘程序 (8)
6.3A/D转换子程序 (9)
7 结语 (9)
8 心得 (9)
9 参考文献 (9)
引言
随着电子工业的迅速发展,单片机控制的智能型控制器广泛应用于电子产品中,为了使学生对单片机控制的智能型控制器有较深的了解。
经过综合分析选择了由单片机控制的智能型液位控制器作为研究项目,通过训练充分激发学生分析问题、解决问题和综合应用所学知识的潜能。
1设计目的:
(1)掌握单片机的工作原理;
(2)能够进行单片机简单系统的设计,包括电源模块、复位模块、键盘模块及相应控制模块的设计;
(3)掌握单片机的指令系统及程序的编制结构,能够对具体的设计要求编写相应的控制程序;
(4)能够根据相应的控制要求选择外围器件实现控制任务;
学习Protel99se软件绘制原理图和PCB图。
2 设计内容及要求
利用51单片机设计一水位控制系统,要求选择合适的水位传感器及电磁阀,当设定完水位后,系统根据水位情况控制电磁阀的开启和关断。
具体要求如下:(1)设计单片机工作电源模块及其复位电路;
(2)选择合适的水位传感器,单片机通过相应的调理电路采集当前水位值;设计相应的电磁阀控制电路,根据测得的水位情况控制其开启和关断;
(3)通过键盘设置其预定水位;
(4)绘制控制软件流程图;
(5)编写相应的控制程序;
利用Protel绘制系统原理图及PCB图,要求PCB图进行手工布线设计。
3 MCS-51单片机系统说明
3.1 MCS-51单片机简介
目前,MCS-51单片机在工业检测领域中得到了广泛的应用,因此人们可以在许多单片机应用领域中,配接各种类型的语音接口,构成具有合成语音输出能力的综合应用系统,以增强人机对话的功能。
每一个单片机包括:一个8位的微型处理器CPU;一个256K的片内数据存储器RAM;片内程序存储器ROM;四个8位并行的I/O接口P0-P3,每个接口既可以输入,也可以输出;两个定时器/记数器;五个中断源的中断控制系统;一个全双工UART的串行I/O口;片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。
最高允许振荡频率是12MHZ。
以上各个部分通过内部总线相连接。
下其各个部分的功能。
中央处理器CPU是单片微型计算机的指挥、执行中心,由它读人用户程序,并逐条执行指令,它是由8位算术/逻辑运算部件(简称ALu)、定时/控制部件,若干寄存器A、B、B5w、5P以及16位程序计数器(Pc)和数据指针寄存器(DM)等主要部件组成。
CPU功能,总的来说是以不同的方式,执行各种指令。
不同的指令其功自
略异。
有的指令涉及到枷各寄存器之间的关系;有的指令涉及到单片机核心
电路内部各功能部件的关系;有的则与外部器件如外部程序存储器发生联系。
事实上,cRJ是通过复杂的时序电路完成不同的指令功能。
所谓cRJ的时序是
指控制器控照指今功能发出一系列在时间上有一定次序的信号,控制和启动
一部分逻辑电路,完成某种操作。
3.2 89C51引脚及功能
图1 89C51的管脚如图
3.2.1 时钟电路引脚
XTAL1:接外部晶体的一端。
在单片机内部,它是反相放大器的输入端,该放大器构成了片内振荡器。
在采用外部时钟电路时,对于HMOS单片机,此引脚必须接地;对CHMOS单片机,此引脚作为驱动端。
XTAL2:接外部晶体的另一端。
在单片机内部,它是反相放大器的输出端。
若采用外部时钟电路时,对于HMOS单片机,该引脚输入外部时钟脉冲:对于CHMOS 单片机,此引脚应悬空。
3.2.2 控制信号引脚
RST/VPD:复位/备用电源输入端。
单片机上电后,只要在该输入24个振荡周期(两个机器周期)宽度以上的高电平就会使单片机复位。
RSDT/VPD具有复用功能,可接上+5V备用电源。
当Vcc下掉到低于规定的电平,而VPD在起其规定的电压范围内时,VPD就向片内RAM提供备用电源,以保持片内RAM中的信息不丢失。
ALE(Address Latch Enable):低8位地址锁存使能输出端。
当CPU访问外部存储器时,ALE可向低8位地址锁存器输出锁存控制信号;当不访问外部存储器时,ALE端仍以时钟振荡频率的1/6固定地输出正脉冲。
因此,它可用外部定时或其他需要。
但要注意的是:每当访问外部数据存储器时会丢失一个脉冲。
ALE 端可驱动8个LSTTL负载。
PSEN(Problem Store Enable):外部程序存储器选通信号。
CPU在访问外部程序存储器期间,每个机器周期。
PSEN信号两次有效。
当访问外部数据存储器时,则不会出现PSEN信号。
PSEN端可以驱动8个LSTTL负载。
EA(Enable Address):外部程序存储器地址允许使能端。
当EA端输入高电平时,CPU从片内程序存储器开始执行程序,当程序计数器PC的值超过内部程序存储器的最高地址(对于8051为0FFFH)时,将自动转向片外程序存储器取指令并执行。
当EA输入低电平时,CPU仅访问片外程序存储器。
对于8031来说,
由于片内无程序存储器,所以EA端必须接低电平。
3.2.3 并行口引脚
P0.0~P0.7:P0口是一个漏极开路的8位准双向复用I/O端口。
P1.0~P1.7:P1口是一个内部带上拉电阻的8位准双向I/O端口。
P2.0~P2.7:P2口是一个内部带上拉电阻的8位准双向复用I/O端口。
P3.0~P3.7:P3口是一个内部带上拉电阻的8位多功能双向I/O端口。
P0口:P0口是一组漏极开路型双向I/O口,也即地址/数据总线复用口
作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对
口“1”可作为高阻抗输入端用。
在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8位)和数据总线复用,在访问期间激活内部上拉电阻。
在FLASH编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。
P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级
驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内
的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因
内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
P2口:P2是一个带有内部上拉电阻锝位双向I/O口,P2的输出缓冲级
驱动(吸收或输出电流)4个TTL逻辑门电路。
对端口写“1”,通过内
的上拉电阻把端口拉到高电平,此时可作输入口。
作输入口使用时,因
内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流。
在访问外部程序存储器或16位地址的外部数据存储器(例如执行MOVX
@DPTR指令)时,P2口送出高8位地址数据。
在访问8位地址的外部数据存储器(如执行MOVX @RI指令)时,P2口线上的内容(也即特殊功能寄存器(SFR)区中R2寄存器的内容),在整个访问期间不改变。
P3口:P3口是一组带有上拉电阻的8位双向I/O口。
P3口输出缓冲级可驱动(吸收或输出电流)4个TTL逻辑门电路。
对P3口写入“1”时,它们被内部上拉电阻高并可作为输入端口。
作输入端时被外部拉低的P3口
将用上拉电阻输电流。
3.3 时序
MCS-5l单片机的一个执器周期由6个状态(s1—s6)组成,每个状态又持续2个接荡周期,分为P1和P2两个节拍。
这样,一个机器周期由12个振荡周期组
成。
若采用12MHz的晶体振荡器,则每个机器周期为1us,每个状态周期为1/6us;在一数情况下,算术和逻辑操作发生在N期间,而内部寄存器到寄存器的传输发生在P2期间。
多数Mcs—51指令周期为1—2个机器周期,只有乘法和除法指令需要两个以上机器周期的指令,它们需4个机器周期。
对于双字节单机器指令,通常是在一个机器周期内从程序存储器中读人两个字节,但Movx指令例外,Movx指令是访问外部数据存储器的单字节双机器周期指令,在执行Movx 指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。
:
3.4 MCS-51单片机的存储器组织
MCS-51单片机的存储器结构有二个特点:第一个特点是程序存储器 (ROM)和数据存储器(RAM) 之分,这二个地址空间独立,程序存储器存放程序指令、常数、表格等;数据存储器则存放数据。
第二个特点是片内存储器和片外存储器之分。
CPU在访问三个不同的逻辑空间时,通过采用不同形式的指令,访问程序存储器使用MOVC指令、访问片内数据存储器使用MOV指令、访问片外数据存储器使用MOVX指令,来产生相应的存储器选通信号。
片内数据存储器
数据存储器用于存放各种运算的中间结果,用作缓存和数据暂存,以及设置特征标志等。
8051的片内数据存储空间较小,仅用8位地址寻址,最大寻址范围为
256(00H~FFH)的单元,按使用情况不同可分为低128单元(00H~7FH)和高128单元(80H~FFH)。
其中低128单元为真正的RAM存储器,高128单元为特殊功能寄存器(SFR)区。
3.5 复位状态
复位操作是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需要按复位键以从新启动。
单片机在RESET引脚有效电平作用下,自动进行复位操作。
复位后各专用寄存器复位值为:
PC=0000H,所以复位后程序入口地址是0000H。
PSW=00H,用户设定标志位为0状态(F0=0)。
SP=07H,设定堆栈栈底为07H。
TH1、TL1、TH0、TL0全为00H,表明定时/计数器复位后皆清零。
TMOD=00H,表明定时/计数器都处于方式0工作状态,并设定内部定时方式,定时器不受外部引脚控制。
TCON=00H,禁止计数器计数,并表明定时/计数器无溢出;对中断系统则表明C/T无溢出中断,无外部中断请求,外部中断源为电平触发方式。
SCON=00H,使串行口工作在移位寄存器方式即方式0,并且设定允许串行移位接收或发送。
IP的有效位皆为0,使中断系统的5个中断源设置为低优先级中断状态。
P0、P1、P2、P3口锁存器全为1状态,使这些准双向口皆处于输入状态。
复位电路和复位信号的产生
复位电路是靠外部电路实现的,RST为外部复位信号的输入引脚。
在振荡器运行下,RST引脚上出现至少两个机器周期的高电平信号,单片机就会完成复位
操作。
复位操作有上电自动复位和按键手工复位两种方式。
上电复位电路图如图2所示,手工复位电路图3所示。
C
22uF
R
1K
a) 上电复位
b) 按键复位 R2
200欧
图2 上电复位电路图图3手工复位电路图4 工作原理
4.1 原理框图
原理框图如图3所示:
图3原理框图
4.2 工作原理
基于单片机实现的液位控制器是以AT89C51芯片为核心,由键盘、数码显示、A/D转换、传感器,电源和控制部分等组成。
工作过程如下:水箱(水塔)液位发生变化时,引起连接在水箱(水塔)底部的软管管内的空气气压变化,气压传感器在接收到软管内的空气气压信号后,即把变化量转化成电压信号;该信号经过运算放大电路放大后变成幅度为0~5 V标准信号,送入A/D转换器,A/D转换器把模拟信号变成数字信号量,由单片机进行实时数据采集,并进行处理,根据设定要求控制输出,同时数码管显示液位高度。
通过键盘设置液位高、低和限定值以及强制报警值。
该系统控制器特点是直观地显示水位高度,可任意控制水位高度。
5 硬件设计
液位控制器的硬件主要包括由单片机、传感器(带变送器)、键盘电路、数码
显示电路、A/D转换器和输出控制电路等。
5.1 单片机
单片机采用由Atmel公司生产的双列40脚AT89C51芯片,如图1所示。
其中,P0口用于A/D转换和显示;P1口连接一个3×5的键盘;P2口用于控制电磁阀和水泵动作;P3口用于上、下限指示灯,报警指示灯以及用于读写控制和
中断等。
图2是AT89C51芯片的引脚功能说明。
5.2 传感器
传感器使用SY一9411L—D型变送器,它内部含有1个压力传感器和相应的放大电路。
压力传感器是美国SM公司生产的555—2型OEM压阻式压力传感器,其有全温度补偿及标定(O~70℃),传感器经过特殊加工处理,用坚固的耐高温塑料外壳封装。
其引脚分布如图3所示。
1脚为信号输出(一);2脚为信号输出(一);3脚为激励电压;4脚为地;5脚为信号输出(+);6脚为信号输出(+)。
在水箱底部安装1根直径为5 mm的软管,一端安装在水箱底部;另一端与传感器连接。
水箱水位高度发生变化时,引起软管内气压变化,然后传感器把气压转换成电压信号,输送到A/D转换器。
5.3 键盘电路
P1口作为键盘接口,连接一个4×4键盘。
结构上采用行列方式,可定义键盘布局。
结构如图4所示。
5.4 水位显示电路
水位显示采用数码管动态显示,范围从0~999(单位可自定),选择的数码
管是7段共阴极连接,型号是LDSl8820。
在这里使用到了74LS373,它是一个8位的D触发器,在单片机系统中经常使用,可以作地址数据总线扩展的锁存器,也可以作为普通的LED的驱动器件,由于单独使用HEF4511B七段译码驱动显示器来完成数码管的驱动显示,因此74LS373在这里只用作扩展的缓冲,图5是显示电路的原理图。
5.5 A/D转换电路及控制输出
A/D转换电路在控制器中起主导作用,用它将传感器输出的模拟电压信号转换成单片机能处理的数字量。
该控制器采用CMOS工艺制造的逐步逼近式8位A/D转换器芯片ADC0809。
在使用时可选择中断、查询和延时等待3种方式编制A/D转换程序。
图6是A/D转换部分原理图,在接线时先经过运算放大器和分压电路把传感器输出的电流信号转换成电压信号,然后输入到A/D转换器。
控制输出主要有上下限状态显示、超限报警。
另外在设计过程中预留了串行口,供进一步开发使用。
6 软件设计
6.1 液位控制器模型的软件设计框图如图7所示。
图7 程序设计框图
6.2 键盘程序
由于键盘采用的是4×4结构,因此可使用的键有16个,根据需要分别定义各键,0~9号为数字键,10~15号分别是确定键、修改键、移位键、加/减键、取消键和复位键。
程序如下:
KEY: MOV P2,#07H ;用反转法查键
KEY1: MOV B,A ;有键按下,存键码
MOV A,P2
MOV DPTR,#TABLE
ANL A,#07H
MOV R3,#0FFH ;存顺序码单元初始化
MOV B,A
KEY2: INC R3
MOV P2,#0F8H
MOV A,R3
MOV A,P2
MOVC A,@DPTR
ANL A,0F8H
CJNE A,KEY3 ;判键码,求顺序码ORL A,B
MOV A,R3 ;若找到键码,存顺序码
CJNE A,#0FFH,KEY1
RET
RET ;有键按下
KEY3:CJNE A,#0FFH,KEY2 ;判断是否查完
RET ;已查完,键码未找到,以无按键处理
TABLE:DB 0F6H,0EEEH,0DEH,0BEH,7EH ;按键特征码表
DB 0F5H,0EDH,0DDH,0BDH,7DH
DB 0F3H,0EBH,0DBH,0BBH,7BH,0FFH
…
6.3 A/D转换子程序
A/D转换子程序如下:
ADDC:PUSH ACC ;模数转换程序
PUSH B
MOV DPTR,#0BFFH
MOVX A,@DPTR ;读模数转换值
MOV B,#0AH ;十六/十进制转换
DIV AB
MOV DSP1,B
MOV B,#0AH
DIV AB
MOV DSP2,B
MOV DSP3,A
POP B
POP ACC
SETB EA
RET1
...
7 结语
基于单片机实现液位控制器模型设计的关键在于硬件电路的正确构建,只有在电路准确的前提下再进行软件编程才能取得成功。
8 心得
该系统设计充分利用单片机强大的控制功能,MCS-51单片机,体积小,重量轻,抗干扰能力强,对环境要求不高,价格低廉,可靠性高,灵活性好。
本文的位置控制系统,只是单片机广泛应用于各行各业中的一例,相信我们以自己的聪明才智,使单片机的应用更加广泛化。
特别感谢赵老师的指导与帮助。
赵老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,平易近人的人格魅力深深地感染和激励着我。
在此,谨向赵老师表示崇高的敬意和衷心感谢!
9 参考文献
[1] 李朝青单片机原理及接口技术。
北京航空航天大学出版社,2005年
[2] 李群芳肖看单片机原理、接口及应用。
清华大学出版社,2005年
[3] 陈汝全电子技术常用器件应用手册。
机械工业出版社,2004年
[4] 沈精虎电路设计与制版——Protel99SE入门与提高,2007年
[5] 张俊谟单片机中级教程原理与应用。
北京航空航天大学出版社,2000年。