文档介绍:引言
单片机是指一个集成在一块芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器,实时时钟等外围设备。而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上。
   设计的目的
(1)掌握A/D和D/A转换与单片机的接口连线。
(2)了解A/D和D/A芯片转换性能及编程方法。
(3)通过实验了解单片机如何进行数据采集。
(4)进一步掌握八段数码管的使用和编程方法。
(5)了解八段数码管显示的原理。
设计方案
水位控制系统包括水位检测和阀门开度的控制。水位信号可以通过压力传感器检测得到,阀们开度由输出的电压进行控制。采用单片机单片机来控制水箱水位可以更好的达到自动化,可以取得较好的控制效果具体说明如下图1
图1
CPU系统
图2为主机系统电路图。控制功能一般,程序并不复杂。因此选择8031作为CPU,选择2732(4K)作为EPROM,74LS373作为低8位地址锁存器。
图2
系统采用单片机作为数字控制器的处理器,其中,由压力变送器传送来的电流信号经过A/D转换进入微处理器,经微处理器计算处理,将输出数字量进行D/A 转换送给电动执行机构,具体结构如图3
图3
图4为键盘输入电路。水位可以在一定的范围内随意设定,利用键盘设定水位,存储在51H(键盘输入的数值)与存储在50H(检测的数据)先比较是否相同,如相同,则向DAC0832发送0,否则,将两数据相减,然后向DAC0832发送相减值。DAC0832根据数值输出控制信号(1-5V)对应阀门开度(0%-100%)
图4
图5为水位显示电路。水位值采用LED数码显示,每1s刷新一次显示值。为了不扩展并行I/O口,本设计利用串行口的移位功能,扩展为3位静态显示电路。,=1时,允许串行口输出数据给移位寄存器;=0时,串行口不能输出数据,显示内容不变。LED3显示十位水位值,LED2显示个位水位值,LED1显示十分位值,小数点固定在LED2上
图5
根据以上已经具体化的硬件设计,就可以进行软件的总体设计和模块设计。
设计思路
       由水位传感器检测输入,启动A/D转换并将转换值暂存50H单元,将转换得来的十六进制数转换为十进制数,十分、个、十位分别存于35H、36H、37H单元,送由3位八段数码管显示。同时将此检测值与设定值(51H)比较,差值大于2℃时报警并进行调节处理,差值小于2℃时,不处理。处理完毕后返回水位采集模块,设定值用外部中断1方式进行设定。
图6为系统总体流程图。将定时器T0,设置为计数器方式,计数初值为最大值为FFFFH,当键盘键入时,则计数器产生溢出中断。执行中断子程序。
主程序
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP JPSR
ORG 0050H
MAIN: MOV TMOD,#06H ;T0计数器,方式2