28
10-1 10-1 作作作作作作作 作作作作作作作 10-2 10-2 作作作作作作 作作作作作作 10 10 第第第第第第第第第第 第第第第第第第第第第 10-3 10-3 作作作作作作作作作作作作作作作作作作10-4 10-4 作作作作 作作作作作作作作 作作作作 作作作作作作作作

第 10 章 单片机应用及开发技术

Embed Size (px)

DESCRIPTION

第 10 章 单片机应用及开发技术. 10-1 作息时间控制钟. 10-2 水塔水位控制. 10-3 电热箱单片机温控系统. 10-4 纸机转速、纸长的单片机控制. 10-1 作息时间控制钟. 时钟产生. 硬件:时钟电路片 软件:片内定时器 在单片机计时的过程中,每一次秒加 1 ,都与规定的作 息时间 比较 ,如比较相等就进行电铃或扩音设备的开关控制。 本系统共有 4 项控制内容:接通电铃和断开电铃; - PowerPoint PPT Presentation

Citation preview

10-1 10-1 作息时间控制钟作息时间控制钟

10-2 10-2 水塔水位控制 水塔水位控制

第第 1010 章 单片机应用及开发技术章 单片机应用及开发技术

10-3 10-3 电热箱单片机温控系统电热箱单片机温控系统

10-4 10-4 纸机转速、纸长的单片机控制纸机转速、纸长的单片机控制

硬件:时钟电路片硬件:时钟电路片 软件:片内定时器软件:片内定时器 在单片机计时的过程中,每一次秒加在单片机计时的过程中,每一次秒加 11 ,都与规定的作,都与规定的作息时间息时间比较比较,如比较相等就进行电铃或扩音设备的开关控制。,如比较相等就进行电铃或扩音设备的开关控制。 本系统共有本系统共有 44 项控制内容:接通电铃和断开电铃;项控制内容:接通电铃和断开电铃; 接通和断开扩音设备。接通和断开扩音设备。 由由 PP11 口输出控制码进行控制,其控制码定义为:口输出控制码进行控制,其控制码定义为: 接通电铃:接通电铃: 0FEH0FEH

断开电铃:断开电铃: 0FDH0FDH

接通扩音设备:接通扩音设备: 7FH7FH

断开扩音设备:断开扩音设备: 0BFH0BFH

10-1 10-1 作息时间控制钟作息时间控制钟

时钟产生

构造 4 个字节的存储字,放在外部 RAM ( 6116 ) 50H 开始的存储区中:

格式: × × × × × × × ×

开关设备控制码字节 时字节 分字节 秒字节

存储单元 开控制码 时 分 秒 关控制码 时 分 秒50H ~ 57H 0FEH 08 00 00 0FDH 08 00 10

58H~ 5FH 0FEH 08 50 00 0FDH 08 50 10

60H~ 67H 0FEH 09 00 00 0FDH 09 00 10

68H~ 6FH 0FEH 09 50 00 0FDH 09 50 10

70H~ 77H 7FH 09 52 00 0BFH 10 05 00

78H~ 7FH 0FEH 10 10 00 0FDH 10 10 10

80H~ 87H 0FEH 11 00 00 0FDH 11 00 10

88H~ 8FH 0FEH 11 10 00 0FDH 11 10 10

90H~ 97H 0FEH 12 00 00 0FDH 12 00 10

98H~ 9FH 0FEH 13 30 00 0FDH 13 30 10

0A0H~ 0A7H

0FEH 14 20 00 0FDH 14 20 10

0A8H~ 0AFH

0FEH 14 30 00 0FDH 14 30 10

0B0H~ 0B7H

0FEH 15 20 00 0FDH 15 20 10

0B8H~ 0BFH

7FH 15 21 00 0BFH 15 50 00

0C0H~ 0C3H

00H(返回 )

× × ×        

程序:程序:11 、主程序:、主程序:为时钟记时程序,使用内部为时钟记时程序,使用内部 RAMRAM 单元:单元: 20H 20H 秒单元秒单元 21H 21H 分单元分单元 22H 22H 时单元时单元 每运行一次秒加每运行一次秒加 11 操作时(参见操作时(参见 P158P158 ~~ 162162 ),都调用时),都调用时

间比较子程序。间比较子程序。22 、时间比较子程序:、时间比较子程序:记时时间与存储字中的预置时间进行比较:记时时间与存储字中的预置时间进行比较: 相等:相等:作息时间已到,发出开关控制码,控制电铃或扩音设备作息时间已到,发出开关控制码,控制电铃或扩音设备 的开的开 // 断;断; 不等:不等:子程序返回。子程序返回。 50H——50H—— 存储区首地址;存储区首地址; RR0 0 ———— 存储区地址指针;存储区地址指针; 2EH——2EH—— 存储区地址指针暂存单元;存储区地址指针暂存单元; 6AH——6AH—— 存开关控制码;存开关控制码; 6BH6BH ~~ 6DH——6DH—— 依次存放存储字的小时值、分值和秒值。依次存放存储字的小时值、分值和秒值。

内部 RAM 中:

LOOP1 : MOV R0 , #4CH ;存储字存储区首地址减 4

MOV 2EH , R0 ;送存储区地址指针暂存单元LOOP2 : MOV R0 , 2EH

MOV R3 , #04H ;循环 4 次MOV R1 , #23H

LOOP3 : INC R0 ;地址指针加 4 ,得开关控制码地址DJNZ R3 , LOOP3

MOV 2EH , R0 ;暂存开关控制码地址MOV R3 , #03H ;循环 3 次MOVX A , @R0 ;读取控制码JZ A , LOOP5 ;控制码为“ 0” (结束)则返回MOV 6AH , A ;存控制码

LOOP4 : INC R0 ;地址指针增量: 50H→51H (时)→ 52H (分)→ 53H

(秒)DEC R1 ;记时单元地址减量: 23H→22H (时)→ 21H (分)→ 20H

(秒)MOVX A , @R0 ;读取作息时间(时、分、秒)MOV 6BH , A ;存作息时间MOV A , @R1 ;读取记时时间CJNE A , 6BH , LOOP2 ;记时时间( A )与预置作息时间( 6BH )比较:

不等则转,继续读下面的控制码(时、分、秒)DJNZ R3 , LOOP4 ;共读取 3 次MOV A , 6AH ;开关控制码送 A

CPL A ;取反(增大驱动能力)MOV P1 , A ;开关控制码输出

LOOP5 : RET ;返回

10-2 10-2 水塔水位控制水塔水位控制

+5Vbc

A

B

C

水塔水位控制原理图

传感器

底部

下限

上限

P1.0

P1.1

0:电机工作1:电机停止

一、控制原理:虚线表示允许水位变化的上下限。水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制的目的。① 当水位上升,达到上限时,因水

导电, B 、 C 棒连通 +5V 。 b 、c 均为“ 1” ,应停止电机和水泵的工作,不再供水;

② 当水位降到下限时, B 、 C 棒都不能与 A 棒导电。 b 、 c 均为“ 0” ,应启动电机,带动水泵工作,给水塔供水;

③ 当水位处于上下限之间时, B 与A 棒导通。 b 为“ 1” , c 为“ 0” ,无论怎样都应维持原有的工作状态。

二、控制电路:二、控制电路:上下限水位信号由 P1.0 和 P1.1 输入,这 2 个信号共有 4 种组合状态:

输 入 输 出操 作C ( P1.1 ) B ( P1.0 ) P1.2(电机 ) P1.3 ( 报警 )

0 0 0 1 电机运转0 1 × 1 维持原状1 0 × 0 故障报警1 1 1 1 电机停转

控制信号由 P1.2 端输出,去控制电机。为了提高控制的可靠性,使用了光电耦合;由 P1.3 输出报警信号,驱动一支发光二极管进行光报警。

0 :电机工作1 :电机停止

程序:程序:ORGORG 8000H8000HAJMPAJMP LOOPLOOP

LOOPLOOP : : ORLORL PP11 ,, #03H #03H ;; PP1.01.0=P=P1.11.1=1=1 ,为检查水位状态做准备,为检查水位状态做准备MOVMOV AA ,, PP11

JNBJNB ACC.ACC.00 ,, ONEONE ;; PP1.01.0=0=0 则跳转则跳转JBJB ACC.ACC.11 ,, TWOTWO ;; PP1.11.1=1=1 则跳转则跳转

BACKBACK : : ACALLACALL D10SD10S ;; PP1.01.0=1=1 、、 PP1.11.1=0=0 维持原状时就延时维持原状时就延时 10S10SAJMPAJMP LOOPLOOP

ONEONE :: JNBJNB ACC.ACC.11 ,, THREETHREE ;; PP1.11.1=0=0 则跳转则跳转CLRCLR 93H93H (( PP1.31.3 )) ;; PP1.01.0=0=0 、、 PP1.11.1=1=1 时,时, PP1.31.3=0=0 启动报警装启动报警装

置置SETBSETB 92H92H (( PP1.21.2 )) ;; PP1.21.2=1=1 停止电机工作停止电机工作

FOURFOUR : : SJMPSJMP FOURFOURTHREETHREE :: CLRCLR 92H92H ;; PP1.01.0==PP1.11.1=0=0 时启动电机时启动电机

AJMPAJMP BACKBACKTWOTWO : : SETBSETB 92H92H ;停止电机工作;停止电机工作

AJMPAJMP BACKBACK

延时子程序延时子程序 D10SD10S (延时(延时 10S10S ):):ORGORG 8030H8030HMOVMOV RR33 ,, #19H#19H ;; RR33=25D=25D

LOOP3LOOP3 :: MOVMOV RR11 ,, #85H#85H ;; RR11=133D=133DLOOP1LOOP1 :: MOVMOV RR22 ,, #0FAH#0FAH ;; RR22=250D=250DLOOP2LOOP2 :: DJNZDJNZ RR22 ,, LOOP2LOOP2

DJNZDJNZ RR11 ,, LOOP1LOOP1DJNZDJNZ RR33 ,, LOOP3LOOP3RETRET

1T

1T

1T

2T

2T

2T

2T

计算延时时间:(若 fosc=6MHz ,则 T=2μS )t={ [(2×2μS×250)+3×2μS]×133+3×2μS}×25+3×2μS = 3345106 μS≈ 3.3 S ( 10S ??? )

10-3 10-3 电热箱单片机温控系统电热箱单片机温控系统

放大

A/ D单

机打印输出

光隔驱动

电热箱 温度传感器 模 数设定值

控制信号

电热丝

电源

双向可控硅

调节电压 控温

~

电热箱采用电热丝加热,由双向可控硅控制加热量的大小;电热箱采用电热丝加热,由双向可控硅控制加热量的大小;温度传感器检测电热箱内的温度,经放大与温度传感器检测电热箱内的温度,经放大与 A/DA/D 转换后进入单片机;转换后进入单片机;单片机将设定的温度值与检测到的电热箱中的实际温度进行比较,单片机将设定的温度值与检测到的电热箱中的实际温度进行比较,并调节运算后,发出控制信号经光电隔离器去驱动双向可控硅以调并调节运算后,发出控制信号经光电隔离器去驱动双向可控硅以调节加在电热丝的电压,从而控制电热箱的温度。节加在电热丝的电压,从而控制电热箱的温度。

电热箱单片机温控系统结构框图

单片机具有温度设定、显示、给出采样温度反馈值、单片机具有温度设定、显示、给出采样温度反馈值、 输出温度控制量以及作调节器运算等功能。输出温度控制量以及作调节器运算等功能。

PA7 0~ 8

PB7 0~

PC5

ALE

AD

ALE

RDWR

RESET

8155

IO/M

CE

8

P2.1

RESET

P0 D

80C51

273274LS373

EAALE

G

Q A0 7~

D0 7~

A8 11~P2.0 2.3~

P3.0

P3.1

4

8

+5V

PSEN OE

温度信号输入通道

温度显示

P1

D0 7~

P2.4

8

执行信号输出通道

打印机

温度设定

CE

+5V

P3.6

P3.7

(静态)

串口

拨盘BCD码

BCD码

8

DS1

MC14433

VX

INT0

VR

Q3

EOC

Q2

Q1

1

DS2

DS3DS4

MC1403+5V

温度传感器 运放

模拟量

P1.0

P1.7

(数字量)

BCD码

个十百

WR

Q0

(动态)

选通脉冲输出线

温度信号输入通道温度信号输入通道

MC14433MC14433 是双积分是双积分 3 ½ 3 ½ 位的位的 A/DA/D 转换器:转换器:采用扫描的方法,输出 3 ½ 位的 BCD 码,从 0000 ~ 1999 共 2000 个数码。内部有时钟源(振荡

器)。VR :基准电压输入线,其值为 200mV或 2V ;VX :被测电压输入线,最大为 199.9mV或 1.999V 。DS4 ~ DS1 :分别是个、十、百、千位的选通脉冲输出线;Q3 ~ Q0 : BCD 码数据输出线,动态地输出千位、百位、十位、个位值。即 DS4 有效时, Q3 ~ Q0 表示的是个位值( 0 ~ 9 );依次类推。EOC 与 INT0相接使得 MC14433每次 A/D 结束后,同时启动下一次转换,使其处

于连续的 A/D 转换中,并使得单片机在中断服务程序中读入该次转换结果。

1

+5V

PC5

+6V 电热丝

指示灯

220V~

+ -

1413(功放)

输出控制电路输出控制电路

输出高电平:输出高电平:双向可控硅导通,电热丝通电;输出低电平:输出低电平:双向可控硅截止,电热丝断电。8155 I/O端口的负载能力不足以驱动光电耦合器的发光二极管,用 1413 作为功放。控制算法:控制算法:对于温度控制系统,系统具有大热惯性,系统采

用脉冲宽度调制的控制方法。 也可用 PID 算法、 Smith算法、 Dalin算法等。

10-4 10-4 纸机转速、纸长的单片机控制纸机转速、纸长的单片机控制

A/ D PI D D/ A =/ M

G

转速给定

P0 P1

纸长拨盘给定

转速反馈

纸长反馈

脉冲发生器测量转速

电机可控硅触发器

单片机系统+ -

单片机控制系统原理框图

转速控制转速控制采用带转速单闭环的直流电动机调速系统;驱动电路驱动电路由晶闸管—直流电动机构成;控制电路控制电路主要包括转速给定、转速反馈、 PID调节器、 晶闸管脉冲触发电路;走纸的长度控制走纸的长度控制由纸长设定、纸长脉冲反馈构成。

系统控制功能:系统控制功能:

设置 8155 的 PA口和 PB口为基本输入方式, PC口为基本输出方式, 则 8155 的控制字为 11001100=0CCH ; 计数器取分频系数为 1000D=03E8H , 并输出方波信号, 则计数器初值应设置成 0100 0011 1110 1000B =43E8H

11 、纸长的设定:、纸长的设定: (拨盘→ 8155→80C51 )

程序:程序:MOV R0 , #00H ;写控制字( 8155 设定)MOV A , #0CCHMOVX @R0 , AMOV R1 , #04H ;写计数器( T0 )初值与工作

方式MOV A , #0E8H ;置 TL0MOVX @R1 , AINC R1

MOV A , #43H ;置 TH0MOVX @R1 , AMOV R0 , #01H ;把PA口内容读入单片机 RAM7FH

MOVX A ,@R0 ;读纸长给定MOV 7FH , AINC R0 ;把PB口内容读入单片机 RAM7EH

MOVX A ,@R0

MOV 7EH , AINC R0 ;把 #01H 由 PC口输出( PC.0

=1 )MOV A , #01H ;接信号灯:走纸到否?MOVX @R0 , A

走纸长度的设置由 4 位拨盘设定,走纸的检测信号来自线速度不变的码盘脉冲。两脉冲间的距离表示一定的纸长(脉冲当量),当反馈脉冲的引入量达到一定数量后,可使设定值不断做减 1 记数,直至为 0后停车。

采用脉冲当量为 1cm/脉冲,当走纸长度单位为 10m时,1000 个反馈脉冲可使纸长设定值减 1 。由 T1来实现。由于1000D=03E8H , T1 的记数初值应为( 03E8H )补 =FC18H ,

工作于方式 1 。

注: 10m/1cm=1000D 每 10米减 1

22 、纸长检测与控制:、纸长检测与控制:

TT11 的中断服务程序:的中断服务程序:T1INT : PUSH A ;保护

PUSH PSWMOV TH1 , #0FCH ;重置初值MOV TL1 , #18H DEC 7FH ;纸长减 1MOV A , 7FHANL A , #0FH ;取低位CJNE A , #0FH , ED ;判断是否在 B

CD 码范围DEC 7FH ; BCD 码调整( 7F

H ) =#0FH DEC 7FH =15

DEC 7FH ; ( 15-6=9 )DEC 7FH DEC 7FH DEC 7FH

ED : POP PSW ;恢复POP ARETI ;中断返回

PIP: JNB P3.3 , NEXT5 ;无断纸信号则返回MOV R5 , #0AH ;延时( 0AH=10

D )LOOP2 : MOV R7 , #32H ; 32H=50DLOOP1 : MOV R6 , #00H

DJNZ R6 , $DJNZ R7 , LOOP1DJNZ R5 , LOOP2JNB P3.3 , NEXT5 ;再判断有无断纸信

号AJMP ED ;有断纸信号则停机

NEXT5 : RET

纸机运行过程中,是否出现断纸现象的检测来自光电信号,经纸机运行过程中,是否出现断纸现象的检测来自光电信号,经INTINT11 引入单片机内。为了区别是过纸出现空洞还是确实出现断引入单片机内。为了区别是过纸出现空洞还是确实出现断纸现象,单片机根据无纸信号出现的时间长短加以判断。纸现象,单片机根据无纸信号出现的时间长短加以判断。如:如:当无纸信号持续当无纸信号持续 1S1S后消失,说明无断纸现象,则微机系统后消失,说明无断纸现象,则微机系统 仍然正常运行;如超过此时间后,无纸信号依然存在,则仍然正常运行;如超过此时间后,无纸信号依然存在,则 判断为出现了断纸现象,单片机立即停机。判断为出现了断纸现象,单片机立即停机。

程序如下:程序如下:

33 、保护:、保护:

小 结小 结 单片机应用系统是以单片机为核心,扩展外围芯片和电路,能完成一定任务的微机系统。 单片机具有体积小、成本低、抗干扰强、使用方便灵活等优点,已广泛应用于生产和科技等各个领域。

1 、确定系统控制方案,彻底了解控制对象和控制要求。 高速对象(电机调速、图像语音识别等)还是 慢速对象(温度、流量等过程控制); 开环控制还是闭环控制;等等。

设计步骤:设计步骤:

2 、确定控制算法,根据系统数学模型和控制要求,选择单片机的控制规律。

直流电机传动系统多用 PID 控制, 交流传动则除PID 外,还用矢量变换控制; 温度调节等滞后系统多采用达林算法与施密斯预估算法等。

3 、微机选型:综合考虑控制要求、经济条件等多种因素进行。 MCS-51 系列单片机是 8位高档机; 在要求更高的场合,应考虑采用 MCS-96 系列单片机; 对运算速度要求更高的场合,可考虑采用数字信号处理器 ( DSP)。

4 、硬件设计:在系统控制方案的基础上,根据单片机本身的 硬件资源,确定出整个系统的控制电路。 单片机片内的资源应充分予以利用,只有在不能满足要求 时,才需要扩展。

5 、软件设计:依据控制算法和控制电路。 通常硬件少则软件多,反之亦然。程序编制法则:画框图→确定软件功能模块→确定流程图

→调试子程序→程序总调。

6 、系统总调:根据制成的硬件电路和调试过的程序做系统总调。 常用单片机仿真完成,然后固化软件,脱开仿真器,插回单 片机与固化了的程序存储器。

总复习总复习11 、数据总线的扩展问题:、数据总线的扩展问题: MCS-51MCS-51 系列单片机系列单片机

的编址问题:程序存储器和数据存储器。的编址问题:程序存储器和数据存储器。已知已知 ABAB 与与 DBDB 的数目,求地址范围或芯片容量的数目,求地址范围或芯片容量(字节、位)。(字节、位)。

已知已知 P2P2 口的接线,确定地址的方法。口的接线,确定地址的方法。22 、响应中断的时间:、响应中断的时间: 33 ~~ 88µsµs 。。33 、、 A/DA/D 与与 D/AD/A 转换器的性能指标:转换器的性能指标: A/DA/D 的指标:分辨率、转换时间、转换精度。的指标:分辨率、转换时间、转换精度。

44 、、 CPUCPU 定时器定时器 // 计数器的计数范围(请见计数器的计数范围(请见P146P146 ))

计数脉冲的频率不能高于振荡脉冲频率的计数脉冲的频率不能高于振荡脉冲频率的1/241/24 。。

55 、编址的问题及标志:、编址的问题及标志:存储器与存储器与 I/OI/O :统一编址;:统一编址;ROMROM 与与 RAMRAM :分开编址;:分开编址;ROMROM 内部与外部:统一编址;内部与外部:统一编址;RAMRAM 内部与外部:分开编址。内部与外部:分开编址。

66 、指令、指令 RETRET 与与 RETIRETI 的含义:的含义:调用指令下一条指令的首地址。调用指令下一条指令的首地址。77 、寄存器等的表示方法:、寄存器等的表示方法:

如:如: PSWPSW 的表示方法。的表示方法。88 、堆栈的问题: 、堆栈的问题: 66 、第、第 33 章、第章、第

44 章课后的作业要独立完成。章课后的作业要独立完成。

99 、定时器、定时器 // 计数器的计算问题:计数器的计算问题: 定时初值与波特率的计算:确定定时初值与波特率的计算:确定 THTH 、、 TLTL 的值。的值。 定时初值的计算与装入(定时初值的计算与装入( TH0TH0 、、 TL0TL0 );); 对外部事件进行计数(对外部事件进行计数( P148P148 ):计数脉冲的频):计数脉冲的频

率不能高于振荡脉冲频率的率不能高于振荡脉冲频率的 1/241/24 。。例:例:生产快餐面的流水生产线上,要求每生产生产快餐面的流水生产线上,要求每生产 5050包,包, 向向 P1.0P1.0 发出包装命令,包装成发出包装命令,包装成 11 箱,编写程序。箱,编写程序。答:①选择定时器计数器及其工作方式:答:①选择定时器计数器及其工作方式: 选定时器选定时器 T0/T1T0/T1 工作于方式工作于方式 22 计数。计数。 ② ②计数初值:计数初值计数初值:计数初值 X=2X=288-50=206=0CEH-50=206=0CEH 。。 ③ ③确定控制字:确定控制字: TMOD=00000110B=06HTMOD=00000110B=06H 。。 ④ ④采用中断方式,编写程序:采用中断方式,编写程序:

程序:程序:ORGORG 0000H0000HAJMPAJMP MAINMAINORGORG 000BH000BH ;; T0T0 中断入口中断入口AJMPAJMP COUNTCOUNT ;转向中断处理程序;转向中断处理程序ORGORG 0100H0100H ;主程序;主程序

MAINMAIN :: MOVMOV TMODTMOD ,, #06H#06H ;设置;设置 T0T0 工作于方工作于方式式 22

MOVMOV TH0TH0 ,, #0CEH#0CEH ;设置计数初值;设置计数初值MOVMOV TL0TL0 ,, #0CEH#0CEHCLRCLR P1.0P1.0 ;清除包装信号;清除包装信号SETBSETB ET0ET0SETBSETB EAEASETBSETB TR0TR0 ;启动;启动 T1T1 计数器计数器

HEREHERE :: SJMPSJMP HEREHERE ;等待计数;等待计数ORGORG 0200H0200H

COUNT:SETBCOUNT:SETB P1.0P1.0 ;发出包装命令脉冲;发出包装命令脉冲NOPNOPCLRCLR P1.0P1.0RETIRETI

1010 、有关地址范围与硬件电路图的对应问、有关地址范围与硬件电路图的对应问题:题:

给定地址→电路图;给定地址→电路图;电路图→给定地址。电路图→给定地址。

1111 、、 82798279 的分频系数(定时值)的计算:的分频系数(定时值)的计算: