秦晓飞系列-单片机原理及应用-第10章 系统实用程序

合集下载

秦晓飞系列-单片机原理及应用-第7章 89C51、S51串行口及串行通信技术

秦晓飞系列-单片机原理及应用-第7章 89C51、S51串行口及串行通信技术

第7章 89C51/S51串行口及串行口通信技术
§7.1 §7.2 §7.3 §7.4 §7.5 §7.6 串行通信基本知识 串行口及应用 89C51/S51与89C51/S51点对点异步通信 89C51/S51与PC机间通信 无线单片机及其点到多点无线通信 RFID技术与物联网的应用
7.1 串行通信基本知识
7.1 串行通信基本知识
7.1.3 异步通信和同步通信 2.同步通信
同步通信中,在数据开始传送前用同步字符来指示(常约定1~2个),并由时 钟来实现发送端和接收端同步,即检测到规定的同步字符后,下面就连续按顺序 传送数据,直到通信告一段落。 同步传送时,字符与字符之间没有间隙,也不用起始位和停止位,仅在数据 块开始时用同步字符SYNC来指示,其数据格式如图7-4所示。
在帧格式中,一个字符由四个部分组成:起始位、数据位、奇偶校验位和停 止位。首先是一个起始位(0),然后是5~8位数据(规定低位在前,高位在后) ,接下来是奇偶校验位(可省略),最后是停止位(1)。
• 起始位(0)信号只占用一位,用来通知接收设备一个待接收的字符开始到达 。线路上在不传送字符时应保持为 1。接收端不断检测线路的状态,若连续为1 以后又测到一个0,就知道发来一个新字符, 应马上准备接收。字符的起始位 还被用作同步接收端的时钟,以保证以后的接收能正确进行。 • 数据位紧接在起始位后面,它可以是5(D0~D4)、6、7或8位(D0~D7)。 • 奇偶校验(D8)只占一位,但在字符中也可以规定不用奇偶校验位,则这一位 就可省去。也可用这一位( 1/0 )来确定这一帧中的字符所代表信息的性质( 地址/数据等)。 • 停止位用来表征字符的结束,它一定是高电位(逻辑1)。停止位可以是1位、 1.5位或2位。接收端收到停止位后,知道上一字符已传送完毕,同时,也为接 收下一个字符做好准备——只要再接收到 0,就是新的字符的起始位。若停止 位以后不是紧接着传送下一个字符,则使线路电平保持为高电平(逻辑1)。

十单片机应用系统设计方法PPT课件

十单片机应用系统设计方法PPT课件

2019/6/18
15
◆系统中相关的器件要尽可能做到性能匹配。例如选用
CMOS芯片单片机构成低功耗的系统时,系统中全部芯片
都应选择低功耗器件。
◆单片机外接电路较多时,必须考虑其驱动能力。若驱
动能力不足,则系统工作不可靠。这时应增设线驱动器
或者减少芯片功耗,降低总线负载。
◆可靠性与抗干扰设计:去耦滤波、合理布线、信号隔
2019/6/18
8
2.CPU的合理选型 目前世界上生产单片机的厂商有几十家,单片机芯
片的型号有上千种,其中应用较多的产品有Intel公司
的MCS-51及其兼容芯片(如ATMEL公司的89S5X系列、
Philips公司的51系列等)、MCS-51派生型芯片(如SST公
司的89E5XRD2系列、华邦Winbond的W78与W77系列、
9
(1)货源稳定、充足 所选单片机芯片在国内元器件市场上货源要稳定、
充足,并且有成熟的开发设备(主要指仿真器和编程器)。 对于MCS-51及其兼容芯片来说,在研制阶段可选择带 Flash ROM存储器的CPU芯片,如89S5X系列,借助ISP编 程器即可反复修改监控程序,便于调试。 (2)性价比高
2019/6/18
13
在应用中,系统的软/硬件功能划分要根据系统的
要求而定,一些硬件电路的功能可以由软件来实现,反
之亦然。
用硬件来实现某些功能可以提高系统反应速度、减
少存储容量、缩短软件开发周期,但会增加系统硬件成
本,使系统的灵活性与适应性变差;相反,若用软件来
实现某些硬件功能,可以节省硬件开支,增强灵活性和
2019/6/18
12
10.2.3系统硬件设计 单片机应用系统由硬件和软件两部分组成。硬件部

《单片机原理及应用教程》第4章:单片机的程序设计

《单片机原理及应用教程》第4章:单片机的程序设计

A
X
A
A-Y, B
Z
B、A
A× B
(34H) (35H)
B A
结束
程序清单如下:
ORG START: MOV SUBB MOV MUL MOV MOV SJMP
0030H A, 30H A, 31H B, 32H AB 34H, B 35H, A $
;(A)←X ;(A)←(A)-X ;(B)←Z ;(34H)←A*B的高字节 ;(35H)←A*B的低字节
结 束
程序如下: MOV A, 30H CJNE A, 31H, K1 MOV 42H, A AJMP WAIT K1: JNC K2 MOV 41H, A MOV 40H, 31H AJMP WAIT K2: MOV 40H, A MOV 41H, 31H WAIT: AJMP $
4.3.3 循环程序
4.2.2 源程序的汇编
4.3 汇编语言程序设计
开始和结束符号 任务处理符号 判断选择符号 程序连接符号
程序流向符号
4.3.1 顺序程序
开始
例1 已知X、Y、Z分别为片内RAM 30H、 31H、32H单元的内容,设X>Y,试编 程完成下式的算术运算:S=(X-Y)*Z, 并将计算结果S存入片内RAM 34H(高字 节)、35H(低字节)单元中。 由于X>Y,所以X-Y>0,不需要借位; (X-Y)*Z的结果最多占用两个字节。实现 该要求的程序流程图如图4.2所示。
mcs51单片机原理及应用教程清华大学出版社刘迎春主编第4章单片机的程序设计uuu伪指令汇编语言源程序的编辑与汇编汇编语言程序设计有一些指令如指定目标程序或数据存放的地址给一些指定的标号赋值表示源程序结束等指令并不产生目标程序机器码也不影响程序的执行仅仅产生供汇编用的某些命令用来对汇编过程进行某种控制或操作这类指令称为伪指令

单片机10-1

单片机10-1
子程序: 在一段程序中.往往有许多地方需要执行同 样的一种操作,这时可以把该操作单独编制 成一个子程序, LCALL RET 可以反复调用, 这样处理可以简化程序的逻辑结构,缩短程 序长度.便于模块比,便于调试,
一、主程序和子程序概念
主程序调用子程序时要注意两个问题:
主程序和子程序间参数传递 主程序现场保护
(2)未使用的大片ROM空间
(2)未使用的大片ROM空间
ERR PGT1
ERR PGT1
ERR
(2)未使用的大片ROM空间
一个微机控制系统或应用系统都很少能将ROM全 部用完。对于剩余的大片未编程ROM空间,一般 都维持原状(0FFH) 0FFH:一条单字节指令 MOV R7,A 程序弹飞到这一区域后将顺流而下,不再跳跃
这样,只要每隔一段设臵一个陷阱,就能捕捉到 弹飞的程序。 NOP NOP LJMP ERR
(2)未使用的大片ROM空间
、惧什d 程序区是由一系列执行指令构成的,一般 不能在这些指令串中间任意安排陷阱,否则 ,正 常执行的程序也可能被捕获。在这些指令串 中间常有一些断裂点,正常执行的程序到此 便不会 继续往下执行了,这类指令有LJMP,sJMP ,A』MP,RET,RETl。这时.Pc的值应 发生正常跳 转,如果还要顺次往下执行,就必然要出错 了。如果弹飞来的程序刚奸落到断裂点的操 作数上 或落到前面指令的操作数上(又没有在这条 指令之前使用冗余指令J,则程序就会越过 断裂点. 继续往前冲,在这种地方安排陷阱后,就能 有效地捕获到它.而又不会影响正常执行的 程序流 程。例如,在一个根据累加器A中内容的正 .负.零情况进行三分支的程序中,软件陷 阱的安置 方式如下;
(3)表格
表格有两类:一类是数据表格.供“MOvcA,@A千PC”指令或”MOVcA ,叵A千DPTK” 指令使用.其内容完全不是指令;另一类是散转表格,供“JMP④AfDPTR” 指令使用,其内容

ch10 系统实用程序.

ch10 系统实用程序.

0000H MAIN 0003H WBINT 000BH T0INT 0100H SP,#30H P1.7;灯的初态为灭 IT0 ;电平触发 PX0 ;低级别 EX0 EA HERE
INT0中断服务程序: WBINT:MOV TMOD,#01H MOV TL0,#0B0H MOV TH0,#3CH SETB PT0 ;高级别 SETB TR0 SETB ET0 MOV R7,#40H HɅRE1: JNB P³ .2,$;为低(黑夜), 等徇T0中断 CLR ET0;为高禁止T0中断 CLR TR0; 关T0 CLR P1.7;熄灯 RETI T0中断服务程序: T0INT: MOV TL0,#0B0H MOV TH0.#3CH DJ䁎Z R7,EXIT MOV R‷,#40H;2s到フ重赋值 CPL P1.7;控制灯闪烁 EXIT: ђETI END
解:
1、8051定时器的启、停信号由/INT0来控制。 2、采用定时加软件计数的方法实现定时2s。 3、利用光敏三极管来区分白天和黑夜。 设T0定时50ms,模式1,初值X=3CB0H;
R7软件计数=40。
主程序: ORG AJMP ORG AJMP ORG AJMP ORG MIAN: MOV CLR CLR CLR SETB SETB HERE: AJMP
10.2 简单控制程序
例 10-3:航标灯控制程序 用MCS-51单片机的定时器和中断功能试制一个“航 标灯”。设fosc=12MHz,具有如下功能: ①航标灯在黑夜应能定时闪闪发光,设定时间间隔为 2s,即亮2s,熄灭2s,并以此为周期循环。 ②当白天到来时,航标灯应熄灭,停止定时器工作。 该实例采用了: 定时器与软件计数相结合产生较长定时时间的方法 中断与查询相结合的方法 两级中断嵌套的方法

秦晓飞系列-单片机原理及应用-习题课

秦晓飞系列-单片机原理及应用-习题课
期中习题课
主讲教பைடு நூலகம்:秦晓飞
上海理工大学光电学院
习题课
1.将下列十六进制数转换成二进制数和十 进制数。 ①5AH ②0AE7.D2H ③12BEH ④0A85.6EH 2.当微机把下列数看成无符号数时,它们 相应的十进制数为多少?若把它们看成是 补码,最高位为符号位,那么相应的十进 制数是多少? ① 10001110 ② 10110000 ③ 00010001 ④ 01110101 3.读端口锁存器和“读引脚”有何不同? 各使用哪种指令? 4. 在 89C51/S51 片 内 RAM 中 , 已 知 (30H)=38H , (38H)=40H , (40H)=48H , (48H)=90H 。请分析下面各是什么指令, 说明源操作数的寻址方式以及按顺序执行 每条指令后的结果。 MOV A,40H MOV R0,A MOV P1,#0F0H MOV @R0,30H MOV DPTR,#3848H
(5) 串口中断,定时器 0,外中断 0,外 中断1,定时器1。 (6) 外中断 0 ,外中断 1 ,定时器 0 ,串 口中断,定时器1。 (7) 外中断 0 ,定时器 1 ,定时器 0 ,外 中断1,串口中断。 10. 已知 89C51/S51 单片机的 fosc =6 MHz ,请利用T0和P1.0输出矩形波。矩形波高 电平宽为50μs,低电平宽为300μs。
谢谢!
MOV 40H,38H MOV R0,30H MOV P0,R0 MOV 18H,#30H MOV A,@R0 MOV P2,P1 5. 试编写程序,将内部 RAM 的 20H 、 21H 和 22H 3 个连续单元的内容依次存入 2FH 、 2EH和2DH中。 6.试编写程序,查找在内部RAM的20H~50H 单元中出现 00H 的次数,并将查找的结果 存入51H单元。 7. 设 (R0)=7EH,(DPTR)=10FEH, 片内 RAM 中 7E 单元的内容为 0FFH , 7F 单元的内容为 38H 。试问下列程序的每条指令注释其执 行结果。 INC @R0 INC R0 INC @R0 INC DPTR INC DPTR INC DPTR

单片机原理及应用C语言程序设计与实现 马斌 韩忠华 王长涛 夏兴华 第10章51单片机外部存储器扩展 新

P1.0 74HC138 14 A 13 B C 12 11 10 CE 8253 CS XFER 0832 6264 CE 8255 CS 8155 IO/M CE
P2.5 P2.6 P2.7 EA
51单片机
2019/2/18
6
第10章 51单片机外部存储器扩展 10.2 存储器概述 10.2.1 存储器的类型 存储器的种类繁多,按物理特性可以分为磁介质存储器(如硬 盘)、光介质存储器(如光盘)、半导体存储器。其中半导体存 储器在单片机系统种类也最多,最为常见: 1.只读存储器(ROM) 2.可编程ROM(PROM) 3.电可编程ROM(EPROM) 4.电可擦除可编程ROM(EEPROM) 5.随机存储器(RAM) 6.flash Memory 7.铁电存储器(FRAM)
器件型号 8255A 8155/8156 器件名称 可编程外围并行接口 可编程RAM/IO扩展接口
8243
8279 8251 8253
2019/2/18
I/O扩展接口
可编程键盘/显示接口 可编程通信接口 可编程定时/计时器
3
第10章 51单片机外部存储器扩展 10.1.2 I/O地址译码技术
一、片选法 若系统只扩展少量的RAM和I/O接口芯片,可采用片选法。所 谓片选法即是把单独的地址线,接到外围芯片的片选端上,只要该 地址线为低电平,就选中该芯片。片选法实例如图10-1所示。
2019/2/18 7
第10章 51单片机外部存储器扩展
10.2.2 常用存储器元件
一、常用的EPROM存储器简介
EPROM是以往单片机最常选用的程序存储器芯片, 是一种紫外线可擦除电可编程的存储器,最经常使用的
有27C系列的EPROM,如:27C16(2K)、(4K)、

单片机原理及应用 课后答案(第二版)张毅刚,彭喜元高等教育出版社之欧阳术创编

第1章单片机概述参考答案1.答:微控制器,嵌入式控制器2.答:CPU、存储器、I/O口、总线3.答:C4.答:B5.答:微处理器、微处理机和CPU它们都是中央处理器的不同称谓,微处理器芯片本身不是计算机。

而微计算机、单片机它们都是一个完整的计算机系统,单片机是集成在一个芯片上的用于测控目的的单片微计算机。

嵌入式处理器一般意义上讲,是指嵌入系统的单片机、DSP、嵌入式微处理器。

目前多把嵌入式处理器多指嵌入式微处理器,例如ARM7、ARM9等。

嵌入式微处理器相当于通用计算机中的CPU。

与单片机相比,单片机本身(或稍加扩展)就是一个小的计算机系统,可独立运行,具有完整的功能。

而嵌入式微处理器仅仅相当于单片机中的中央处理器。

为了满足嵌入式应用的特殊要求,嵌入式微处理器虽然在功能上和标准微处理器基本是一样的,但在工作温度、抗电磁干扰、可靠性等方面一般都做了各种增强。

6.答:MCS-51系列单片机的基本型芯片分别:8031、8051和8071。

它们的差别是在片内程序存储器上。

8031无片内程序存储器、8051片内有4K字节的程序存储器ROM,而8751片内有集成有4K字节的程序存储器EPROM。

7.答:因为MCS-51系列单片机中的“MCS”是Intel公司生产的单片机的系列符号,而51系列单片机是指世界各个厂家生产的所有与8051的内核结构、指令系统兼容的单片机。

8.答:相当于MCS-51系列中的87C51,只不过是AT89S51芯片内的4K字节Flash存储器取代了87C51片内的4K字节的EPROM。

9.单片机体积小、价格低且易于掌握和普及,很容易嵌入到各种通用目的的系统中,实现各种方式的检测和控制。

单片机在嵌入式处理器市场占有率最高,最大特点是价格低,体积小。

DSP是一种非常擅长于高速实现各种数字信号处理运算(如数字滤波、FFT、频谱分析等)的嵌入式处理器。

由于对其硬件结构和指令进行了特殊设计,使其能够高速完成各种复杂的数字信号处理算法。

秦晓飞系列-单片机原理及应用-第4章 汇编语言程序设计知识

• 设计的硬件结构是否方便编程?
2. 确定算法
• 算法是如何将实际问题转化成程序模块来处理。
• 在编程以前,先要对几种不同的算法进行分析、比较,找出最适宜的算法。
4.1 编程的步骤、方法和技巧
4.1.1 编程步骤
3. 画程序流程图
• 程序流程图是使用各种图形、符号、有向线段等来说明程序设计过程的一种直 观的表示。 • 画流程图是一种程序结构设计的重要手段,流程图步骤分得越细致,编写程序 是也越方便。 • 一个系统软件有总的流程图(主程序框图)和局部的流程图。 • 流程图常采用的图形和符号: 椭圆形 矩形框 菱形框 或桶形框 表示程序的开始或结束;
这里将A原内容进栈保护,如果原R0和R1内容有用,则亦须进栈保护。
4.1 编程的步骤、方法和技巧
4.1.3 汇编语言程序的基本结构
1. 顺序程序
例4-2 拆字。将片内RAM 20H单元的内容拆成两段,每段四位。并将它们分别存入 21H与22H单元中。程序如下:
解: START:
ORG MOV MOV ANL MOV INC MOV SWAP ANL MOV SJMP
4.1 编程的步骤、方法和技巧
4.1.3 汇编语言程序的基本结构 2. 分支程序
例4-7 设变量x存放在VAR单元中,函数值y存放在FUNC中,按下式给y赋值。
解: VAR DATA FUNC DATA START: MOV JZ JNB MOV SJMP POSI: MOV COMP: MOV
1 y 0 1
A,addr1 A,addr2,LOOP1 LOOP3 LOOP2 addr3,A LOOP3 addr3,addr2
;将addr1中内容送A ;两数比较,不相等则转LOOP1

精品课件-基于任务驱动的单片机应用-第10章


任务10 远距离控制记分牌的设计 1. 并行通信和串行通信 (1) 并行通信:是将数据字节的每一位用多条数据线同 时进行传送,如图10-4(a)所示。 并行通信的特点是:各数据位同时传输,传输速度快、效 率高,多用在实时、快速的场合。并行传输的数据宽度可以是 1~128位,甚至更宽,通常多少数据位就需要多少根数据线, 因此传输的成本较高。
P0.6
P0.7 32 dp
VCC S4
C7 RST2 +
R4
R3
U2
89S51
1 P1.0 2 P1.1 3 P1.2 4 P1.3 5 P1.4 6 P1.5 7
P1.6 8 P1.7
C2 30 pF
13 INT1
12 INT0
15 14 VCC 31
T1 T0
EA/VP
19
X1 18
X1
X2
21 S1 P2.0 22 P2.1 23 S2 P2.2 24 P2.3 25
任务10 远距离控制记分牌的设计
(2) 异步通信:其方式规定了传送格式,每个数据均以 相同的帧格式传送。一帧数据的格式如图10-5所示。
1个字符帧

校停

验止

位位
LSB
MSB
图10-5 帧格式
任务10 远距离控制记分牌的设计 每帧数据由4部分组成:起始位(占1位)、字符代码数据 位(占5~8位)、奇偶校验位(占1位,也可以没有校验位)、停 止位(占1或两位),一帧长度常为8位、10位、11位等。 异步通信是一帧一帧地进行传送的,帧与帧之间的间隙不 固定;间隙处用空闲位(高电平)填补;每帧传送总是以逻辑 0(低电平)状态的起始位开始,停止位结束。
JNB S2, $
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

10.1 主程序和子程序的概念
10.1.2 子程序及参数传递 2.用指针寄存器来传递参数
① 如果参数在片内RAM中,则可用 R0 或 R1 作指针; ② 如参数在片外RAM或程序存储器中,则可用 DPTR 作指针。
例10-2 将R0和R1指出的内部RAM中两个3字节无符号整数相加,结果送到由R0指出 的内部RAM中。入口时,R0和R1分别指向加数和被加数的低位字节;出口时,R0指 向结果的高位字节。低字节在高地址,高字节在低地址。(此处书上错)
图10-6 水塔水位控制原理图
10.2 数据采集及简单控制程序
10.2.3 水位控制程序 2.水位控制电路 如图10-7所示 3.信号输入与输出
• 水位信号由P1.0和P1.1输入 • 由P1.2端输出,去控制电机。 • 由P1.3输出报警信号,驱动 一只发光二极管进行光报警。
C (P1.1) 0
主程序调用子程序与主程序被中断去执行中断服务子程序的过程是不同的:
① 调用子程序是当主程序运行到 “LCALL”等指令时,先自动压入断点,再 进入子程序;当执行子程序到最后一条指令RET时,自动弹出断点送PC,返回 主程序; ② 程序中断是随机的。当主程序运行时,遇到中断申请,则CPU执行完当前 指令后,首先自动压入断点,然后转去执行中断服务子程序。当中断服务程 序执行到最后一条指令RETI时,同样弹出断点送PC,返回主程序。
10.2 数据采集及简单控制程序
10.2.3 水位控制程序 1.水位控制原理
• 图 10-6 中虚线表示允许水位变化的上、下限。水塔安装固定的 3 根金属棒。其 中,A棒处于下限水位, A棒接 +5V电源, C棒处于上限水位,B棒在上、下限水 位之间。B棒、C棒各通过一个电阻与地相连。 • 单片机控制电机转动,电机带动水泵供水供水时,水位上升,当达到上限时,由于 水导电,B 、C 棒连通+5V。 b 和c两端均为” 1”.这时,应停止电机工作,不再 供水。 • 当水位降到下限时,B 、C棒都不能与A棒导通,b 和c两端均为”0”。启动电 机供水. • 当水位处于上下限之间,B棒与A棒导通.C棒不能与A棒导通,b端为”1”, c端为“0”状态。应继续维持原有的工作状态。
图10-5 航标灯控制电路
10.2 数据采集及简单控制程序
10.2.2 航标灯控制程序
设:T0定时和R7软件计数可以延时 2s。R7软件计数为40次,T0定时50ms,T0采用模 式1,计数初值为:216-12×50×1000/12=3CB0H
主程序: ORG 0000H AJMP MAIN ORG 0003H AJMP WBINT;外部中断0入口地址 ORG 000BH AJMP T0INT;T0中断入口地址 ORG 0100H MAIN: MOV SP,#30H;设置堆栈指针 CLR P1.7;设灯的初态为“灭” CLR IT0 ;外部中断0为电平触发方式 CLR PX0;外部中断0为低优先级 SETB EX0;允许外部中断0中断 SETB EA;CPU允许中断 HERE: AJMP HERE;等待外部中断请求 外部中断0中断服务程序(由0003H转来): WBINT: MOV TMOD,#01H;T0定时,模式1 MOV TL0,#0B0H;T0计数初值 MOV TH0,#3CH SETB PT0;设T0为高优先级中断 SETB TR0;启动T0 SETB ET0;T0开中断 MOV R7,#40;软件计数值 HERE1: JNB P3.2,HERE1 ;查询INT0,为低(黑夜),等待T0中断 CLR ET0 ;为高(白天),禁止T0中断 CLR TR0;关T0 CLR P1.7;熄灯 RETI;返回主程序 定时器0中断服务程序(由000BH转来): T0INT: MOV TL0,#0B0H;重赋T0初值 MOV TH0,#3CH DJNZ R7,EXIT;软件计数为0吗? MOV R7,#40H ;计数已到,重赋初值 CPL P1.7 ;输出取反控制灯“亮”或“灭” EXIT: RETI;中断返回 END
① 用工作寄存器或累加器传递参数; ② 用指针寄存器来传递参数。
图10-2 调子程序
10.1 主程序和子程序的概念
10.1.2 子程序及参数传递 1.用工作寄存器或累加器来传递参数
例10-1 用程序实现c=a2+b2。 设:a、b和c分别存于内部RAM的DA、DB和DC 3个单元中。通过两次调用子程序查 平方表,结果在主程序中相加得到。 其入口条件是:(A)=待查表的数;出口条件是(A)=平方值。
NADD: MOV CLR MOV ADDC MOV DEC DEC DJNZ INC RET R7,#3;3字节加法 C A,@R0;取加数低字节 A,@R1;取被加数低字节并加到A @R0,A R0 R1 R7,NADD1 R0
NADD1:
10.1 主程序和子程序的概念
10.1.3 中断服务子程序
0 1 1
B (P1.0) 0
1 0 1
操 作 电机运转
维持原状 故障报警 电机停转
图10-7 水塔水位控制电路
10.2 数据采集及简单控制程序
10.2.3 水位控制程序 4.控制程序
图10-8 水塔水位控制程序流程
10.2 数据采集及简单控制程序
10.2.3 水位控制程序 4.控制程序
主程序: LOOP: ORG 0030H ORL P1,#03H;此处书上错 ;为检查水位状态作准备 MOV A,P1 JNB ACC.0,ONE;P1.0=0则转 JB ACC.1,TWO;P1.1=1则转 ACALL D10S;延时10s AJMP LOOP JNB ACC.1,THREE;P1.1=0则转 CLR 93H ;0→P1.3,启动报警装置 SETB 92H ;1→P1.2,停止电机工作 SJMP FOUR CLR 92H;启动电机 AJMP BACK SETB 92H;停止电机工作 AJMP BACK 延时子程序D10S(延时10s): ORG 0100H D10S: MOV R3,#19H LOOP3: MOV R1,#85H LOOP1: MOV R2,#0FAH LOOP2: DJNZ R2,LOOP2 DJNZ R1,LOOP1 DJNZ R3,LOOP3 RET
10.2 数据采集及简单控制程序
10.2 数据采集及简单控制程序
10.2.1 数据采集程序 • 典型数据采集程序框图举例:
图10-2 数据采集总流程图
10.2 数据采集及简单控制程序
10.2.2 航标灯控制程序
例10-3 用89C51单片机试制一个“航标灯”。fosc=12MHZ 要求: ① 黑夜定时周期循环发光,定时间隔为2s,即亮2s,灭2s。 ② 当白天到来时,航标灯应熄灭,停止定时器工作。 编程思路: ① 采用定时加计数的方法定时2 s。 ② 如图10.5所示的光敏三极管来区分白天与黑夜。
10.3 数据处理程序
10.3 数据处理程序
10.3.1 排序程序
例10-4 将片内RAM 50H~59H中的数据按从小到大的顺序排序 解:这是一个排序问题,按从小到大排列称升序排列,反之称降序排列。 根据题意,排序程序在执行时,取前数与后数比较:如果前数小于后数,则继续 顺序比较下去;如果前数大于后数,则前数和后数交换后再继续比较下去。第一 次循环将在最后单元中得到最大的数 (冒泡法)。得到所有数据的升序排列需要经 过多重循环。
BACK: ONE:
FOUR: THREE: TWO:
10.2 数据采集及简单控制程序
10.2.4 蜂鸣器报警子程序
• 压电式蜂鸣器约需10mA的驱动电流 • 当P1.0输出高电平1时,压电蜂鸣器两端获得约+5V电压而鸣叫; • 当 P1.0 输出低电平 0时,压电蜂鸣器两引线间的直流电压降至接近于 0V,蜂鸣 器停止发声。
现以3次采样为例。 3次采样值分别存放在R2、R3和R4中,程序运行之后,将3个数据从小到大顺序排 列,仍然存放在R2、R3和R4中,中值在R3中。
10.3 数据处理程序
10.3.2 数字滤波程序
程序清单: FILT2: MOV A,R2;R2<R3吗? CLR C SUBB A,R3 JC FILT21 MOV A,R2 ;R2>R3时,交换R2和R3 XCH A,R3 MOV R2,A FILT21: MOV A,R3;R3<R4吗? CLR C SUBB A,R4 JC FILT22 ;R3<R4时,排序结束 MOV A,R4 ;R3>R4时,交换R3和R4 XCH A,R3 XCH A,R4;R3>R2吗? CLR C SUBB A,R2 JNC FILT22 ;R3>R2时,排序结束
第10章 系统实用程序
主讲教师:秦晓飞
上海理工大学光电学院
第10章 系统实用程序
§10.1 §10.2 §10.3 §10.4 §10.5 §10.6 主程序和子程序的概念 数据采集及简单控制程序 数据处理程序 代码转换程序 抗干扰技术 最短程序
10.1 主程序和子程序的概念
10.1 主程序和子程序的概念
• 黑夜时 , 无光照, T1 和 T2 均截止,
使INT0=0,发出中断请求。CPU进 入外部中断处理程序 , 启动定时器 工作,利用定时器中断控制灯定时 闪闪发光。用软件查询INT0引脚, 只要INT0=0,定时器便继续工作。
• 白天时,日光使T1导通,T2输出低电
平 ,INT0 = 1, 立即关闭定时器,结 束外部中断处理并返回到主程序。
图10-9 使用7406作驱动的单音频报警电路
图10-10 使用三极管作驱动的单音频报警电路
10.2 数据采集及简单控制程序
10.2.4 蜂鸣器报警子程序
连续鸣音30ms的控制子程序清单:
SND: DL: DL1: SETB MOV MOV DJNZ DJNZ CLR RET P1.0;P1.0输出高电平,启动蜂鸣器鸣叫 R7,#1EH;延时30 ms R6,#0F9H R6,DL1;小循环延时1 ms R7,DL P1.0;P1.0输出低电平,停止蜂鸣器鸣叫
相关文档
最新文档