5v
R6
10k
U3 | U4 | Q2 | MPS6534 | Q1 | |
NOT | NOT | ||||
U2 | R3 | ||||
R4 | |||||
NOT | 4.7k | Q3 | D1 | D3 | 4.7k |
DIODE | DIODE | MPS6534 | |||
+88.8 | |||||
Q4 | |||||
DIODE | R2 | ||||
R1 | D2 | ||||
D4 | 4.7k | ||||
4.7k | |||||
MMBTA13 | DIODE | MMBTA13 |
单片机原理和接口技术
课 程 设 计
成绩评定表
设计课题 基于c51本身断电保护系统设计
学院名称: 电气工程学院
指导老师意见: 成绩: 署名: 年 月 日 |
单片机原理和接口技术课程设计
学 生 姓 名 : 秦凯新
学 号 : 46820427
指导 教 师 : 王黎臧海河 周刚
课程设计地点: 31-505
课程设计时间: -12-17~-12-28
单片机原理和接口技术 课程设计任务书
学生姓名 | 秦凯新 | 专业班级 | 自动1002 | 学 |
| ||||||||||
题 目 | 基于c52压力监测系统设计 | ||||||||||||||
课题性质 | 工程设计 | 课题起源 | 自拟 | ||||||||||||
指导老师 | 王黎、 臧海河、 周刚 | ||||||||||||||
关键内容(参数) | C52压力检测保护系统能够实现以下功效: 1.实现开机后自动恢复供电;
采集电路电流来控制继电器常闭点断开和闭合从而控制回路断开和闭合; 4.采取声光报警, 使用者能够立即发觉和处理电路事故。 | ||||||||||||||
任务要求 | 元件及元件参数选择要有依据, 各单元电路设计要有具体叙述。 第3-4天: 根据确定方案设计单元电路。 要求画出单元电路图, | ||||||||||||||
关键参考资料 | [1] 张迎新.单片微型计算机原理、 应用及接口技术(第2版)[M].北京: 国防工业出版社, [2]伟福LAB6000系列单片机仿真试验系统使用说明书 [3]阎石.数字电路技术基础(第五版).北京: 高等教育出版社, [4]单片机开发板原理图及系统。 | ||||||||||||||
审查意见 | 系(教研室)主任签字: 年 月 日 |
目 录 |
|
1引言......................................................................................................................6
2总体方案设计......................................................................................................6
2.1硬件组成..........................................................................................................6
2.2方案论证........................................................................................................7
2.3总体方案........................................................................................................8
3硬件电路设计..............................................................................................10
3.1时钟电路......................................................................................................10
3.2复位电路........................................................................................................11
3.3AD介绍和原理分析......................................................................................12
3.4声光报警接口电路........................................................................................18
3.5显示及键盘接口电路..................................................................................19
3.7电源电路..........................................................................................................2
5系统调试和总结............................................................................................6
5.1系统功效测试................................................................................................6
5.2技术指标测试................................................................................................7
6心得体会..........................................................................................................7
6.1为何不采取8255了?......................................................................................7
6.2为何不采取A/D0809?.....................................................................................8
6.3在帮助同学过程中我学到了什么?...............................................................8
6.4.....................................................................................在单片机领域我计划?
8 |
|
参考文件............................................................................................................9附录A系统原理图............................................................................................9附录B源程序..................................................................................................10
1引言
压力监测普遍用于工业领域,并对国家发展产生了深厚影响,小到体重计,大到工业中反应炉气压声电报警。甚至航空航天,智能仪表。
这个系统采取自动检测反应炉中压力大小,经过传感器,
和机器人。本设计就是工业中最普遍气压监测报警系统。 所以,
并经过在单片机内部进行比较计算,来实现整个压力监测系统声光电报警。并
本系统设计基于A/D0804芯片和ATC52单片机,并采取液晶1602作为显示输出,系统虽小却包含了工业要求各个方面,作为声电报警模块,关键用到蜂鸣器和发光二极管。当监测压力低于下限值和高于上限值就会进行声光报警。
此次系统设计就是针对工业反应炉压力监测,甚至可做体重计到最小方面。
本设计纯为个人设计。程序也在开发板验证成功,如有任何疑问,全部可经过试验调试验证。
2 总体方案设计2.1硬件组成
1.控制器。 控制器是系统关键部分,
能够用工业计算机PLC、或单片机。
2. | A | /D转 | 换 | 器 | 。 |
A/D转换器能够把测得模拟量转换成数字量输出,能够直接读取。
3. 继电器。继电器在电路中起到断电保护作用,是系统安全保障。其种类很多,有电流继电器、电压及电器、 速度继电器等等。
4.键盘。经过键盘能够设置电流大小。
5.液晶显 显示 。
液晶能够显示设置电流和实时电流值大小。
2.2方案论证
1.控制器
控制器选择STC C51RC40C单片机来控制温度测量显示。 现在中国外使用较多微控制器是以51内核扩展出单片机,
40C解释来对该单片机进行具体介绍:
STC: 前缀,表示芯片为STC企业生产产品。
8:表示该芯片为8051内核芯片
9:表示内部含FlashEEPROM存放器。
C:表示该器件为CMOS产品,CMOS常指保留计算机基础开启信息芯片,可由主板电池供电,即使系统掉电,信息也不会丢失。
5:固定不变
1:表示该芯片内部程序存放空间大小,1为4KB,2为8KB,3为12KB等,程序空间大小决定了一个芯片所能装入实施代码多少。
RC: 表示STC单片机内部RAM(随机读写存放器)为512KB。
40: 表示该芯片外部晶振最高可接入40MHz。
C:产品等级,表示该芯片使用温度范围,C表示商业级,温度范围为0度--+70度。
该单片机存放器相对设计任务来说,对程序代码储存足够了,所以无需再加外围扩展存放器。
2.A/D转换器
模数转换器是该电路中关键组成部分,其工作效率直
影响到系统效率。ADC0809转换器模拟输入电压范围0~+5V,不需零点和满刻度校准,而且能耗低,工作温度范围宽,所以能够作为该系统转换器。
2.3总体方案
根据上述方案论证结果,首先经过键盘设定电流值,然后检测电流值,
保护用电器。 图2.1所表示。
转换成数字量经过数码管显示出来。当电流过大时继电器动作, 切断电路,
1602 传感器 单片机最小系统 液晶显示模数转换 c52 装置
键盘
图2.1 总体方案框图 |
|
开始
默认液晶显
示
扫描键值
功能选择
数值加 | A/D切换模 | 数值减 |
式 |
3 硬件电路设计
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所表示。
C3 C4
30pF 30pF
X1 U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
37
12MHzP0.2/AD2
P0.5/AD5
P0.6/AD6
P0.7/AD7
34
33
32
P0.3/AD3 36
P0.4/AD4 35
27
P2.6/A14
28
P2.7/A15
1 10
P1.0 P3.0/RXD
2 11
P1.1 P3.1/TXD
3 12
P1.2 P3.2/INT0
4 13
P1.3 P3.3/INT1
5P1.4 P3.4/T0 14
6P1.5 P3.5/T1 15
7P1.6 P3.6/WR 16
8P1.7 P3.7/RD 17
ATC51
图3.1单片机时钟电路
3.2复位电路
在上电或复位过程中,控制CPU复位状态:这段时间内让CPU保持复位状态,
而不是一上电或刚复位完成就工作,预防CPU发犯错误指令、实施错误操作,
也能够提升电磁兼容性能。单片机在开启时全部需要复位,
以使CPU及系统各部件处于确定初始状态,并从初态开始工作。
单片机系统复位方法有:手动按钮复位和上电复位。 复位方法有手动复位、
上电复位和积分型复位。图3.2所表示。
U1
19 XTAL1 P0.0/AD0 39
P0.1/AD138
37
P0.2/AD2
18 36
XTAL2 P0.3/AD3
P0.4/AD435
P0.5/AD534
R5 R7 P0.6/AD6 33
10k 9
RST P0.7/AD7
32
220 21
P2.0/A8
22
C2
P2.2/A10
P2.1/A9
23
29 PSEN P2.3/A11 24
30 25
ALE P2.4/A12
10uF 31
EA P2.5/A13
26
P2.6/A1427
P2.7/A1528
1P1.0 P3.0/RXD10
2P1.1 P3.1/TXD 11
12
P3.6/WR
P3.7/RD
P3.5/T1 15
16
17
P3.2/INT0
13
P3.3/INT1
P3.4/T0 14
图3.2复位电路
3.3AD介绍和原理分析
模拟/数字转换就是我们通常所说A/D转换,
它将输入模拟信号(如电压)转换成控制芯片(如单片机,
ARM)所能识别二进制形式,然后经过运算,既能够还原出输入模拟信号值。
A/D转 | 换 | 是 | 一 | 个 | 很 | 关 | 键 | 技 | 术 | 手 | 段 | , |
是单片机等控制芯片和外界信号接口部分,图3.3所表示。
外界信号 | 传 | 电压值 | 模 | 电压值 | A/D转换 | 二进制形式 | 处理器 | 控制信号 | 显示 |
拟 | |||||||||
(如声音, | 感 | ||||||||
电 | 芯片 | 芯片 | (如八段数码 | ||||||
血糖浓度, | |||||||||
(如ADC0804) | 管,LCD,上 | ||||||||
器 | (如51单片机) | ||||||||
温度) | 位机软件) | ||||||||
路 |
图3.3
外界信号:外界信号范围十分广泛,自然界一切信号,比如声音,
温度甚至是血糖浓度等全部能够规类为外界信号。
传感器:因为大多数外界信号全部不是电信号,
所以需要经过多种传感器将这些外界信号转换成电信号,比如:
模拟电路:设计模拟电路原因关键有以下两点经过热电耦能够将温度转换成一个电压值。
这些不稳定信号假如直接送到A/D芯片进行采样,
则 最 终止 果可 能 使得 最终 显 示 值 往 返 乱 跳 ,
而无法确定待测外界信号到底是多少。所以,
可能需要设计一套模拟电路对传感器输出不稳定电信号进行滤波等处理,
去除干扰,使得进入A/D转换芯片电压值为一个稳定信号。
2.每一个A/D转换芯片全部有一个参考电压,
只有输入模拟电压值在这个参考电压范围内才能进行正确转换,比如:
本试验将ADC0804芯片参考电压设置成0V~5V,所以假如输入电压值大于5V,
则转换出结果永远为0xFF,若输入电压值小于0V,则转换出结果永远为0,
这么便无法正确还原出被测信号大小。基于上述原因,
我们可能需要设计一套模拟电路,传感器输出电压值进行部分变换(放大,
缩小),使得送到A/D转换芯片电压值在转换芯片参考电压范围内。
A/D转 | 换 | 芯 | 片 | : | 即 | 模 | 拟 | /数 | 字 | 转 | 换 | 芯 | 片 | , |
它将输入模拟电压信号转换成单片机等控制处理器能够识别数字二进制形式。
处理器芯片:处理器芯片有很多中(比如51单片机,
ARM或是PC上飞跃处理器,AMD处理器)这些处理器即使架构不一样,
不过有个共同特点,就是它们能够运行程序,
所以它们能经过程序对A/D芯片送入二进制形式电压值进行处理,
经过运算将其还原成待测外界信号值,控制显示部件(如LCD,
八 | 段 | 数 | 码 | 管 | ) | 将 | 这 | 个 | 值 | 显 | 示 | 出 | 来 | 。 | 比 | 如 | : |
假如ADC0804输出二进制值0x80,则依据A/D转换公式能够推出ADC0804输入电压
大小为(0x80/0x100)*5V=2.5V。假设信号经过模拟电路缩小了8倍,
给出)即可得到输入外界信号值。
则能够推出传感器输出电压为2.5V*8=20V,再依据传感器转换公式(通常手册会
大家一定对这种基于A/D芯片嵌入式设计模式有了一个大致了解,
其实现时中很多应用全部是遵照了这种设计模式,比如常见数字万用表,
数字温度测量仪,血糖测量仪等。
只 | 不 | 本 | 试 | 验 | 也 | 遵 | 传 | 照 | 了 | 这 | 种 | 设 | 计 | 路 | 模 | 式 | , |
过 | 它 | 省 | 略 | 了 | 感 | 器 | 和 | 模 | 拟 | 电 | 部 | 分 | , |
首先经过滑动变阻器调整输入到ADC0804芯片电压值(ADC0804芯片参考电压调
整成0V~5V,而滑动变阻器产生电压范围也为0V~5V,
所以没 有 必 需 设 计 额 外 模 拟 电 路 ) ,
然后经过51单片机进行运算处理得到这个输入电压值,
最终再控制八段数码管将这个电压值显示出来,
实际上是实现了一个简易数字电压测量表。图3.4所表示。
滑动变阻器 | 电压值 | A/D转换 | 二进制形式 | 处理器 | 控制信号 | 显示 |
芯片 | 芯片 | |||||
(八段数码管) | ||||||
(ADC0804) | (51单片机) |
图3.4
本 | 试 | 验 | 采 | 取 | A/D芯 | 片 | 为 | ADC0804, | 它 | 是 | CMOS |
8位单通道逐次渐近型模/数转换器,其规格及引脚图图3.5所表示,
依据手册我们能够得到各个引脚大致功效如上:
/CS:芯片片选信号,低电平有效,即/CS=0,该芯片才能正常工作,
在外接多个ADC0804芯片时,该信号能够作为选择地址使用,
经 | 过 | 不 | 一 | 样 | 地 | 址 | 信 | 号 | 使 | 能 | 不 | 一 | 样 | ADC0804芯 | 片 | , |
从而能够实现多个ADC通道分时复用。
/WR:开启ADC0804进行ADC采样,该信号低电平有效,
即/WR信号由高电平变成低电平时, 触发一次ADC转换。 | 即/RD=0时 | , | |||||
/RD:低 | 电 | 平 | 有 | 效 | , |
能够经过数据端口DB0~DB7读出此次采样结果。
UIN(+)和UIN(-):模拟电压输入端,模拟电压输入接UIN(+)端,UIN(-)端接地。双边输入时UIN(+)、UIN(-
) | 分 | 别 | 接 | 模 | 拟 | 电 | 压 | 信 | 号 | 正 | 端 | 和 | 负 | 端 | 。 |
当输入模拟电压信号存在“零点漂移电压” 时,可在UIN(-)接一等值零点赔偿电压,变换时将自动从UIN(+)中减去这一电压。
VREF/2:参考电压接入引脚,该引脚可外接电压也可悬空,若外界电压,则ADC参考电压为该外界电压两倍,如不外接,则Vref和Vcc共用电源电压,此时ADC参考电压即为电源电压Vcc值。
CLKR和CLKIN:外接RC电路产生模数转换器所需时钟信号,时钟频率CLK= 1/1.1RC, 通常要求频率范围100KHz~1.28MHz。
AGND和DGND:分别接模拟地和数字地。
当一次A/D转换完成后, /INT:中止请求信号输出引脚,该引脚低电平有效,
当产生/INT信号有效时,还需等候/RD=0才能正确读出A/D转换结果,
若ADC0804单独使用,则能够将/INT引脚悬空。
DB0~DB7:输出A/D转换后8位二进制结果。
AD外围电路图中Vin(+)接电位器中间滑动端,Vin(-)接地,因为这两端能够输入差分电压,即它能够测量这两端之间电压,此时,Vin(-)即为ADC0804模拟输入电压。Vin(+)和电位器之间串联一个10欧电阻,目标是电流。预防电流过大而烧坏芯片。 图3.6所表示。
U1
19 39
XTAL1 P0.0/AD0
38
P0.1/AD1
P0.2/AD2 37
18 36
XTAL2 P0.3/AD3
35
P0.4/AD4
34
P0.5/AD5
P0.6/AD6 33
9 32
RST P0.7/AD7
P2.0/A8 21
P2.1/A9 22
23
P2.2/A10
29 24
PSEN P2.3/A11
30ALE P2.4/A12 25
31EA P2.5/A13 26
27
U3 P2.6/A14
28
P2.7/A15
cs1 CS VCC 20
R2
rd
wr
2
3
RD
WR
DB0(LSB)
DB1
18
17
1
2
P1.0
P1.1
P3.0/RXD
P3.1/TXD
10
11
4 16 3 12
CLKIN DB2 P1.2 P3.2/INT0
10k 5 INTR DB3 15 4 P1.3P3.3/INT1 13
8 AGND DB4 14 5P1.4 P3.4/T0 14
10 13 6 15
DGND DB5 P1.5 P3.5/T1
9 12 7 16
VREF/2DB6 P1.6 P3.6/WR
19 CLKR DB7(MSB) 11 8 P1.7 P3.7/RD 17
R3
6 ATC51
VIN+
10k 7
VIN-
RV1
C4
100pF
图3.6AD外围设计原理图
3.4声光报警接口电路
采取声光报警装置有一下几大优点,
1.在远距离是能够能够经过声音立即通知
2.在近距离能够经过视听觉做出反应
3.在嘈杂环境中能够经过视觉通知
4.两种器件配合愈加安全可靠
具体外围电路如3.7所表示。
U1
19 | XTAL1 | P0.0/AD0 | 39 | R6 | 10k | rw | R8 | D1 |
38 | ||||||||
18 | XTAL2 | P0.1/AD1 | ||||||
37 | ||||||||
P0.2/AD2 | ||||||||
36 | ||||||||
P0.3/AD3 | ||||||||
35 | ||||||||
9 | RST | P0.4/AD4 | ||||||
34 | ||||||||
P0.5/AD5 | ||||||||
33 | ||||||||
P0.6/AD6 | ||||||||
32 | ||||||||
P0.7/AD7 | ||||||||
29 | PSEN | P2.0/A8 | 21 | |||||
22 | ||||||||
P2.1/A9 | ||||||||
23 | ||||||||
P2.2/A10 | ||||||||
24 | ||||||||
P2.3/A11 | ||||||||
30 | 25 | |||||||
ALE | P2.4/A12 | |||||||
31 | 26 | |||||||
EA | P2.5/A13 | |||||||
27 | ||||||||
P2.6/A14 | ||||||||
28 | ||||||||
P2.7/A15 | ||||||||
1 | P1.0 | P3.0/RXD | 10 | cs | ||||
2 | 11 | |||||||
P1.1 | P3.1/TXD | |||||||
3 | 12 | |||||||
P1.2 | P3.2/INT0 | |||||||
4 | 13 | wr | ||||||
P1.3 | P3.3/INT1 | |||||||
5 | 14 | |||||||
P1.4 | P3.4/T0 | |||||||
6 | 15 | |||||||
P1.5 | P3.5/T1 | |||||||
7 | 16 | |||||||
P1.6 | P3.6/WR | |||||||
8 | 17 | rd | ||||||
P1.7 | P3.7/RD | LED-RED | ||||||
ATC51 | 1k |
1k
Q1 MPSA55
LS1 SPEAKER
图3.7声光报警装置
3.5显示及键盘接口电路
在日常生活中,我们对液晶显示器并不陌生。
液晶显示模块已作为很多电子产品经过器件,如在计算器、万用表、 电子表及很多家用电子产品中全部能够看到,显示关键是数字、
专用符号和图形。在单片机人机交流界面中,通常输出方法有以下多个:发光管、LED数码管、液晶显示器。 发光管和LED数码管比较常见,软硬件全部比较简单,
在单片机系统中应用晶液显示器作为输出器件有以下多个优点: |
因为液晶显示器每一个点在收到信号后就一直保持那种色彩和亮度,恒定发光,而不像阴极射线管显示器(CRT)那样需要不停刷新新亮点。所以,液晶显示器画质高且不会闪烁。
数字式接口
液晶显示器全部是数字式,和单片机系统接口愈加简单可靠,操作愈加方便。
体积小、重量轻
液晶显示器经过显示器上电极控制液晶分子状态来达成显示目标,在重量上比相同显示面积传统显示器要轻得多。
相对而言, 液晶显示器功耗关键消耗在其内部电极和驱动IC上, |
①液晶显示原理
液晶显示原理是利用液晶物理特征,经过电压对其显示区域进行控制,有电就有显示,这么即能够显示出图形。液晶显示器含有厚度薄、
适适用于大规模集成电路直接驱动、易于实现全彩色显示特点,
现在已经被广泛应用在便携式电脑、数字摄像机、
PDA移动通信工具等众多领域。
②液晶显示器分类
液晶显示分类方法有很多个,通常可按其显示方法分为段式、字符式、 点阵式等。 除了黑白显示外,
液晶显示器还有多灰度有彩色显示等。假如依据驱动方法来分,能够分为静态驱动(Static)、单纯矩阵驱动(Simple
Matrix)和主动矩阵驱动(ActiveMatrix)三种。
③液晶显示器多种图形显示原理:
线段显示
点阵图形式液晶由M×N个显示单元组成,假设LCD显示器有行,每行有128列,每8列对应1字节8位,即每行由16字节,共16×8=128个点组成,屏上×16个显示单元和显示RAM区1024字节相对应,
比如屏第一行亮暗由RAM区000H——00FH16字节内容决定, 当(000H)=FFH时, |
则在屏幕顶部显示一条由8段亮线和8条暗线组成虚线。这就是LCD显示基础原理。
字符显示
用LCD显示一个字符时比较复杂,因为一个字符由6×8或8×8点阵组成,既要找到和显示器幕上某多个位置对应显示RAM区8字节,
还要使每字节不一样位为“1”,其它为“0”,为“1”点亮,为“0”不亮。
这么一来就组成某个字符。但因为内带字符发生器控制器来说,
显示字符就比较简单了, 能够让控制器工作在文本方法, |
|
依据在LCD上开始显示行列号及每行列数找出显示RAM对应地址,设置光标,
在此送上该字符对应代码即可。
1602LCD关键技术参数:
显示容量:16×2个字符
芯片工作电压:4.5—5.5V
工作电流:2.0mA(5.0V)
模块最好工作电压:5.0V
字符尺寸:2.95×4.35(W×H)mm
1602LCD采取标准14脚(无背光)或16脚(带背光)接口, |
| 5 | R 读/写选择 | 1 3 | 6 | D 数据 |
| 6 | E 使能信号 | 1 4 | 7 | D 数据 |
| 7 | D 数据 | 1 5 | LA | B 背光源正极 |
| 8 | D 数据 | 1 6 | LK | B 背光源负极 |
表1:引脚接口说明表
第1脚:VSS为地电源。
第2脚: VDD接5V正电源。 |
第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。
第5脚:R/W为读写信号线,高电平时进行读操作,
低电平时进行写操作。当RS和R/W共同为低电平时能够写入指令或显示地址,当RS为低电平R/W为高电平时能够读忙信号,
当RS为高电平R/W为低电平时能够写入数据。
第6脚: E端为使能端, 当E端由高电平跳变成低电平时, |
第7~14脚:D0~D7为8位双向数据线。
第15脚:背光源正极。
第16脚:背光源负极。
1602LCD指令说明立即序
1602液晶模块内部控制器共有11条控制指令,如表2所表示:
| D 1 * B * |
| * |
| 数 | | | |
表二
和HD44780相兼容芯片时序表如表3所表示:
|
所以在实施每条指令之前一定要确定模块忙标志为低电平,表示不忙,不然此指令失效。要显示字符时要先输入显示字符地址,
也就是告诉模块在哪里显示字符,表四是1602内部显示地址。
表四1602LCD内部显示地址
比如第二行第一个字符地址是40H,
那么是否直接写入40H就能够将光标定位在第二行第一个字符位置呢?这么不行
,
因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入数据应该是0100
0000B(40H)+10000000B(80H)=11000000B(C0H)。
在对液晶模块初始化中要先设置其显示模式,
在液晶模块显示字符时光标是自动右移,无需人工干预。
每次输入指令前全部要判定液晶模块是否处于忙状态。
1602LCD通常初始化(复位)过程
延时15mS |
|
|
写指令38H(不检测忙信号
延时5mS
写指令38H(不检测忙信号)
以后每次写指令、读/写数据操作均需要检测忙信号
写指令38H:显示模式设置
写指令08H:显示关闭
写指令01H: 显示清屏
写指令06H:显示光标移动设置
写指令0CH:显示开及光标不闪烁
(1) 显示器接口电路图3.8所表示
LCD1
LM016L
VSS | VDD | VEE | RS | RW | E | D0 | D1 | D2 | D3 | D4 | D5 | D6 | D7 |
14Lc7
7Lc0
8Lc1
9Lc2
10Lc3
11Lc4
12Lc5
13Lc6
6en
4rs
5rw
1
2
3
U1 RP119
18
9
XTAL1
XTAL2
RST P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 39 38 37 36 35 34 33 32 Lc0 Lc1 Lc2 Lc3 Lc4 Lc5 Lc6 Lc7 Lc0 Lc1 Lc2 Lc3 Lc4 Lc5 Lc6 1
2
3
4
5
6
7
8
29 30 PSEN25 4.7k Lc7 9
4 5 6 P1.3 P1.4 P1.5 P3.3/INT1 P3.4/T0 P3.5/T1 13 14 15 en rs
7
P1.6 P3.6/WR 16 8 P1.7 P3.7/RD 17
ATC51
图3.8显示器接口电路图
(2)键盘接口电路图3.9所表示
U1
19 | XTAL1 | P0.0/AD0 | 39 | wr |
38 | ||||
18 | XTAL2 | P0.1/AD1 | ||
37 | ||||
P0.2/AD2 | ||||
36 | ||||
P0.3/AD3 | ||||
35 | ||||
9 | RST | P0.4/AD4 | ||
34 | ||||
P0.5/AD5 | ||||
33 | ||||
P0.6/AD6 | ||||
32 | ||||
P0.7/AD7 | ||||
29 | PSEN | P2.0/A8 | 21 | |
22 | ||||
P2.1/A9 | ||||
23 | ||||
P2.2/A10 | ||||
24 | ||||
P2.3/A11 | ||||
30 | 25 | |||
ALE | P2.4/A12 | |||
31 | 26 | |||
EA | P2.5/A13 | |||
27 | ||||
P2.6/A14 | ||||
28 | ||||
P2.7/A15 | ||||
1 | P1.0 | P3.0/RXD | 10 | |
2 | 11 | |||
P1.1 | P3.1/TXD | |||
3 | 12 | |||
P1.2 | P3.2/INT0 | |||
4 | 13 | |||
P1.3 | P3.3/INT1 | |||
5 | 14 | |||
P1.4 | P3.4/T0 | |||
6 | 15 | |||
P1.5 | P3.5/T1 | |||
7 | 16 | |||
P1.6 | P3.6/WR | |||
8 | 17 | rd | ||
P1.7 | P3.7/RD |
ATC51
② ±12VDC: 供放大电路、V/F转换电路等模拟电路电源,
其中传感器供桥电压+5VDC经过把+12VDC变换为+5VDC提供。
③+12VDC: 考虑到继电器通断时会产生干扰,输出控制电路使用一组电源,以和模拟电路隔离。
系统供电电源是三相三线制交流电,线电压为380VAC,系统中使用交流接触器线圈额定电压为220VAC,所以,需要使用一个电源变压器把380V交流电变为220V交流电。CJX2-1210吸合时线圈功率为70VA,保持时线圈功率为8VA,考虑到系统直流电源也需要经过220VAC供给,所以,
把380VAC变为220VAC变压器容量确定为150VA。
D | 1 | 2 | 3 |
稳压电路采取集成三端稳压器, 价格廉价, 使用方便, |
内部带有完善保护电路。电源电路图3.10所表示。
7805
T2 | 4 | 1 | 2 | 220UF/25V | 104 | Vin | GND | Vout | 104 | +5V |
RS307 |
7812
C B | U | T1 | L | N | 8VAC | AG | 3 | 4 | 1 | 2 | 2200UF/35V | 104 | Vin | GND | Vout | 104 | +12V | |
150VA | 14VAC | |||||||||||||||||
380VAC | 220VAC | 14VAC | 1 | RS307 | 2200UF/35V | 104 | 7912 | GND | Vout | AG | -12V | |||||||
V | ||||||||||||||||||
104 | ||||||||||||||||||
3 | ||||||||||||||||||
14VAC | Vin | |||||||||||||||||
7812 | ||||||||||||||||||
4 | RS307 | 2 | 2200UF/35V | 104 | Vin | GND | Vout | 104 | +12V | |||||||||
3 | ||||||||||||||||||
| SG | |||||||||||||||||
|
系统软件分为主程序、中止服务程序和子程序三部分。 A
4.1主程序设计
主程序是系统上电或复位后首先要实施程序,
1 2 主程序关键完成系统初始化、 扫描显示、 扫描键盘, AD转换等工作。 | 3 |
主程序上电自动复位,也可手动复位;
主程序实施时,分别进行键盘扫描,AD转化,和液晶显示。
分三步实施:
第一:系统上电后,即开始在默认设置最小下限参考电
和最电压显示在第一行即:
P-TDown:25Up:60(参考压力上下限值) Real-time Pre:12(实时监测压力)
(P-T)即PressTest
(Real-timePre)即Realtime press
第二:本设计设置4个功效键,
第一个键S4:表示功效切换键,按第一下表示进行调整上下限,按第二下表示不再调表,开始进行AD转换。
第二个键S1: 表示调整上限和下限值,按第一下表示调上限值液晶光标闪烁,按第二下液晶不再闪烁,表示调整结束。
第三个键S2, 在按下参考压力值递增,上限当超出90时复位为0,第四个键S3在按下参考压力值递减,当上限值减到0时置位为90,下限值当超出30时复位为0,液晶光标一直闪烁。
经过模拟量转换量, 经过单片机计算,把数字量在1602液晶上显示出来。
开始
S4
开启功能键
N
S1第一次S1第二次
N
调整下限 调整上限 开启AD
S2
>最大或<最
Y数值不再增减显示数值
小值
N
显示上下限
终止
图4.1 主程序步骤图
4.3部分关键子程序设计
系统关键子程序包含显示子程序、键处理子程序,显示子程序设计。
既包含三大模块:
1,键盘扫描子程序设计;
2, A/D0804子程序设计
3, 1602液晶显示子程序设计
4, 初始化液晶和单片机子程序设计
5系统调试和总结
系统研制完成后,首先在试验室进行了系统功效测试和技术指标测试。并努力争取完全达成工业要求水准。
5.1系统功效测试
1.上电开始默认显示测试。 系统上电后, 显示正常,进行了以下测试。
4.按钮s3数值减测试。
6.按钮S4键A/D切换和调整参考上下限功效转换测试 7.上下限最值测试。
8.AD显示测试。
9.AD转换结果测试。
10.报警装置测试。
上述测试结果最终和预期相符。
5.2 技术指标测试
1.硬件电路测试
此次课程设计首先采取PROTEUS软件仿真,以后进行硬件电路设计。 在软件仿真中初步形成了程序调试和修改。此过程采取三个步骤,
(1)了解各个功效模块作用和联络。(2)单独写出各个模块控制程序,进行单独调试。(3)各个模块进行有机组合,实现目标功效。
此 | 过 | 程 | 碰 | 到 | 问 | 题 | 比 | 较 | 少 | , |
但了解到了完成一个较大工程所需要含有素质及技巧。完成此系统问题关键出现在硬件调试
6心得体会
6.1为何不采取8255了?
我想这篇心得体会一定要加上,忙碌了两个星期,最终在周五晚上成功了。我做这个系统是很复杂,当初硬件电路设计时,我本想用8255作为扩展IO口使用,并用PC口做位寻址进行片选操作,
PB口做输入接A/D0804,不过8255操作复杂程度会使整个设计显得臃肿而且多出,
同时 用 制 1602,
最终敲定采取了单输入A/D0804作为A/D转换,
之所以不采取8路输入A/D0809为我所要选A/D转换器件,
是因为这个8路输入进行片选输入有点浪费系统,而且,
在帮同学处理难题时候我全部推荐使用了A/D0809,对于它操作我也是很熟悉。
但为了能够由硬件电路作为我课程设计结果证实。
我采取了我自买板子硬件资源。
6.3在帮助同学过程中我学到了什么?
整个课程设计下来,我积累了丰富经验,分别帮同学做了断电保护系统,步进电机正反转加速减速,还有数字音乐盒辅助调试。
在帮同学处理问题同时,也是我知识结构愈加完善。我也深入掌握了调程序方法, 比如说:我自创在程序中假如小灯,
比如说在各个功效跳转时再养从while语句中跳到另一个while语句中。6.4 在单片机领域我计划?
从接触51单片机到自己开始练习写程序,我一步一步养成了思索,严谨作风.我在51单片机基础上我又自学一款功效愈加强大单片机AVR,我知道路还很远,但我会继续坚持下去.因为在单片上,编程越多我就越自信.
参考文件
【1】 《单片机微型计算机原理、
应用及接口技术》 张迎新 国防工业出版社
【2】 《C程序设计》 谭永强 清华大学出版社
附录A系统原理图
RV1 | R3 | R2 |
10k | ||
1k |
10k
C4
R5
100pF 10k
wr2 RD DB0(LSB) 18 1 P1.0
rd1 CS VCC 20
cs
10D GND DB5 13 6 P1.5
19CLK R DB7(MSB) 11 8 P1.7
6VIN+
7VIN-
9VREF/2 DB6 12 7 P1.6
4CLK IN DB2 16 3 P1.2
8A GND DB4 14 5 P1.4
3WR DB1 17 2 P1.1
5INTR DB3 15 4 P1.3
R8
10k U3 C1 ADC0804
C3
10uF30pF
R7 X1R4 220 12MHz
10k C2
30pF
18XTAL2 P0.3/AD3 Lc2 3
19XTAL1 P0.0/AD0 1
30ALE
31EA
29PSEN
9RST Lc6 7
U1
ATC51
P0.1/AD1 Lc0
P0.2/AD2Lc1 2
R1
1k
rw
en
5
6
RW
E
Lc07
Lc18
D0
Lc29
D1
R2
1kD1
LED-RED
Lc3
Lc4
Lc5
Lc6
Lc7
10
11
12
13
14
D2
D3
D4
D5
D6
D7
R3
Lc34
Lc45
Lc56
Lc78
1k
9
LM016L
RP1
4.7k
Q1
MPSA55
LS1
SPEAKER
附录B 源程序
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbitcs=P3^2;
sbit rd=P3^7;
sbit wr=P3^6;
ucharvalue;
sbit eg=P3^4;
sbit rs=P3^5;
sbit s1=P2^0;
sbit s2=P2^1;
sbit s3=P2^2;
sbit s4=P2^3;
sbitdula=P2^6; sbit wela=P2^7;
uchar table[]="P-TDown:25Up:60";
uchar table1[]="Real-time Pre:12";
void delay(uint z)//延迟函数
{
uchar x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void sweep()
{
if(s4==0)
{
delay(5);
if(s4==0)
{
num++;
if(num==2)
num=0;
}
while(!s4);
}
}
void write_com(uchar com);//写命令函数
voidwrite_press(uchar addr,uchardat)//此函数可把十进制数写入对应位液晶中
{
uchar a,b;
a=dat/10;
b=dat%10;
write_com(0x80+addr);
write_dat(0x30+a);
write_dat(0x30+b);
}
voidwrite_press2(uchar addr,uchar dat)
{
uchar a,b;
a=dat/10;
b=dat%10;
write_com(0x80+0x40+addr);
write_dat(0x30+a);
write_dat(0x30+b);
}
uchar AD_divert()
{
uchar a; cs=0;
wr=1;
cs=1;
delay(1000);
cs=0;
rd=0;
delay(100);
a=P1;
rd=1;
cs=1; a=a%10+17;
return a;
}
void AD_display()
{
value=AD_divert();
write_press2(14,value);
write_com(0x80+14);
}
voiddisplay();
void keyscan()
if(s1==0)
{
delay(5);
if(s1==0)
{
s1num++;
while(!s1);
if(s1num==1)
{
write_com(0x80+10);
write_com(0x0f);
}
if(s1num==2)
{write_com(0x80+15);
write_com(0x0f);
}
if(s1num==3)
{
s1num=0;//注意加5不是16进制
write_com(0x0c);
}
}
}
if(s2==0) {
{
while(!s2);
if(s1num==1)
{
low--;
if(low==0)
low=30;
write_press(9,low); write_com(0x80+10);
}
if(s1num==2)
{
uper--;
if(uper==0)
uper=90;
write_press(14,uper);
write_com(0x80+15);
}
}
}
if(s3==0) {
{
while(!s3);
if(s1num==1)
{ low++;
if(low==30)
low=0;
write_press(9,low);
write_com(0x80+10);
}
if(s1num==2)
{
uper++;
if(uper==90)
uper=0;
write_press(14,uper); write_com(0x80+15);
}
}
}
}
void main()
display();
while(1)
{
while(num==1)
{
keyscan();
sweep();
delay();
} while(num==0)
{
sweep();
write_com(0x0c);
AD_display();
delay(1000);
}
}
}
void write_com(uchar com)
{
wr=0;
rs=0; eg=0;
eg=1;
delay(15);
eg=0;
}
void write_dat(uchar dat)
{
wr=0;
rs=1;
eg=0; |
|
eg=1;
delay(15);
eg=0;
}
voidchushi()
{
dula=0;
wela=0;
delay(200);
write_com(0x38);
delay(65); write_com(0x38);
write_com(0x38);
write_com(0x08);
write_com(0x01);
write_com(0x06);
write_com(0x0c);
write_com(0x80);
low=25;
uper=60;
}
void display()
{
uchar num;
for(num=0;num<16;num++)
{
write_dat(table[num]);
delay(20);
}
write_com(0x80+0x40);
for(num=0;num<16;num++) {
}
}
Copyright © 2019- sceh.cn 版权所有 湘ICP备2023017654号-4
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务