单片机应用系统设计实例共46页
单片机应用系统设计举例PPT

8 GND
475Ω×8
15
a
QA QB
1 2
b c
QC 3
d
QD 4
e
QE QF
5
QG 6
7
f g dp
QH
GND
74HC595 a)
VCC
U7
10
16 /SCLR
SPICLK11 VCC
M OSI P26 P22
14 12 13
SCK SER RCK /G
8 GND
5.1KΩ×8
QA QB
15 1
c
f
dp
f
g
d
g
dp
dp
VCC
2020/4/7
键盘电路图
P00
330Ω×4
P01
P02
P03
10KΩ×4 S1 S2 S3 S4 GND
12.4 系统软件设计
单片机的检测报警程序采用C语言编写。
系统采用每10ms循环采样的方式采集压力信 号(在此假设采用8位转换精度)。使用定时器0实 现10毫秒的定时。报警声音通过PWM控制蜂鸣器 发出,监测的压力值超过上限时,发出上限报警声 音(高音调);监测的压力值低于下限时,发出下 限报警声音(低音调)。不管发生哪种报警,报警 指示灯闪烁(亮500ms,灭500ms,通过对定时 器0的中断计数50次实现)。如果没有报警,则不 出现报警声音和闪烁信号。系统运行指示灯通过对 定时器0的中断计数50次实现定时输出高低脉冲控 制D1。
STC12C5410AD单片机片内集成了8通道10 位高速模数转换器,并且,具有较多的通用I/O和片 上外设(定时器、UART等),因此,在本系统的 设计中,可以采用STC12C5410AD作为系统的检 测与控制中心。
第十一章 单片机应用系统设计实例

第十一章 单片机应用系统设计实例
11.1.2 系统硬件电路的设计
第十一章 单片机应用系统设计实例
11.1.3 系统软件程序的设计
电子时钟的软件系统由主程序和子程序组成,主程序程序包含初始 化参数设置、按键处理、数码管显示模块等,在设计时各个模块都采 用子程序结构设计,在主程序中调用。由于定时器/计数器采用中断 方式处理,因此还要编写定时器/中断服务子程序,在定时器/计数器 中断服务程序中对时钟进行调整。 一.主程序 主程序执行流程如图,主程序先对显示单元和定时器/计数器初 始化,然后重复调用数码管显示模块和按键处理模块,当有键按下, 则转入相应的功能程序。
第十一章 单片机应用系统设计实例
开始 现场保护,重置初值 启动下一个50ms 50ms 计数器加1 否 50ms 计数器=20? 是 秒单元加1,50ms计数器清0,秒写入秒个位 和秒十位
否
秒单元=60? 是 分单元加1,秒单元清0,分写入分个位和分十 位
分单元=60? 是 时单元加1,分单元清0,时写入时个位和时十 位 时单元=24? 时单元清0 是 中断返回
开始
初始化
调用A/D转换子程序 调用显示子程序
第十一章 单片机应用系统设计实例
二.A/D转换子程序
A/D转换子程序用于对ADC0809八路输入模拟电压进行A/D转 换,并将转换的数值存入8个相应的存储单元中,如下图。A/D转 换子程序每隔一定时间调用一次,也即隔一段时间对输入电压采样 一次。 三.显示子程序
11.1.1 软时钟的基本原理
软时钟是利用单片机内部的定时器/计数器来实现,它的处理过程 如下:首先设定单片机内部的一个定时器/计数器工作于定时方式, 对机器周期计数形成基准时间(如10ms),然后用另一个定时器/ 计数器或软件计数的方法对基准时间计数形成秒(对10ms计数100 次),秒计60次形成分,分计60次形成小时,小时计24次则计满 一天。然后通过数码管把它们的内容在相应位置显示出来即可。
单片机应用系统设计方法共48页PPT

离、看门狗电路等;
◆工艺设计,包括机架机箱、面板、配线、接插件等,
必须兼顾电磁兼容的要求以及安装、调试、维护等操作
是否方便的要求。
2021/7/20
17
2.硬件可靠性设计
单片机应用系统工作环境恶劣,个别系统甚至要求
在无人值守情况下工作,因此任何差错都可能造成非常
严重的后果。可见,单片机在应用时对系统的可靠性要
10
(1)货源稳定、充足 所选单片机芯片在国内元器件市场上货源要稳定、
充足,并且有成熟的开发设备(主要指仿真器和编程器)。 对于MCS-51及其兼容芯片来说,在研制阶段可选择带 Flash ROM存储器的CPU芯片,如89S5X系列,借助 ISP编程器即可反复修改监控程序,便于调试。 (2)性价比高
2021/7/20
9
2.CPU的合理选型
目前世界上生产单片机的厂商有几十家,单片机芯
片的型号有上千种,其中应用较多的产品有Intel公司
的MCS-51及其兼容芯片(如ATMEL公司的89S5X系列、
Philips公司的51系列等)、MCS-51派生型芯片(如SST
公司的89E5XRD2系列、华邦Winbond的W78与
W77系列、 Philips公司的LPC76X与LPC900系列等)、
ATMEL公司的AVR系列、Microchip公司的PIC系列、
Motorola公司的M68HC系列、TI公司的TMS430系
列等MCU芯片以及以ARM为内核的32位MCU芯片。
一般来说,在选择单片机类型时应综合考虑以下几
个因素: 2021/7/20
适应性,但系统反应速度会下降,软件设计费用和所需
存储器容量也相应增加。
对于产品量大、价格敏感的小产品,原则上能用软
单片机应用系统课程设计实例

数字钟设计实例利用AT89C51的定时器和6位7段数码管,设计一个电子时钟,显示格式“XX XX XX”,从左向右分别是:时、分、秒1、硬件设计2、软件设计说明:定时器每1000us中断一次,在中断服务程序中,对中断次数计数,100us计数10000次就是1s,然后再对秒计数得到分和小时,并送入显示缓存。
LEDBUF EQU 30H ;显示码缓存区HOUR EQU 40HMINUTE EQU 41HSECOND EQU 42HC100us EQU 43HTICK EQU 10000 ;置中断次数T100us EQU 256-100 ;置定时器初始值LJMP START ;跳转至主程序ORG 000BH ;定时器0中断入口T0INT: PUSH PSW ;状态保护PUSH ACCMOV A,C100us+1JNZ GOON ;计数值是否为0DEC C100usGOON: DEC C100us+1MOV A,C100usORL A,C100us+1JNZ EXITMOV C100us,#HIGH(TICK) ;重置计数值MOV C100us+1,#LOW(TICK)INC SECOND ;秒值加一MOV A,SECONDCJNE A,#60,EXIT ;判断秒值是否为60MOV SECOND,#0 ;秒值为60,则清0INC MINUTE ;分值加一MOV A,MINUTECJNE A,#60,EXIT ;判断分值是否为60MOV MINUTE,#0 ;分值为60,则清0INC HOUR ;小时值加一MOV A,HOURCJNE A,#24,EXIT ;判断小时值是否为24MOV HOUR,#0 ;小时值为24,则清0 EXIT: POP ACCPOP PSWRETIDELAY: ;延时子程序MOV R7,#0FFHDELAYLOOP:DJNZ R7,DELAYLOOPDJNZ R6,DELAYLOOPRETLEDMAP: DB 3FH,06H,5BH,4FH ;八段数码管显示码DB 66H,6DH,7DH,07HDB 7FH,6FH,77H,7CHDB 39H,5EH,79H,71HDISPLAYLED:MOV R0,#LEDBUFMOV R1,#6 ;共6个八段管MOV R2,#B ;位扫描码初值LOOP: MOV A,#0MOV P0,A ;关所有八段管MOV A,@R0MOV P0,AMOV A,R2MOV P3,A ;显示一位八段管MOV R6,#01HCALL DELAYMOV A,R2 ;显示下一位RR AMOV R2,AINC R0DJNZ R1,LOOPRETT0LED: MOV DPTR,#LEDMAP ;将字段码转换显示码MOVC A,@A+DPTRRETSTART: MOV TMOD,#02H ;定时器工作方式2 MOV TH0,#T100us ;置定时器初始值MOV TL0,#T100usMOV IE,#B ;EA=1,IT0=1MOV HOUR,#0 ;显示初始值MOV MINUTE,#0MOV SECOND,#0MOV C100us,#HIGH(TICK)MOV C100us+1,#LOW(TICK)SETB TR0 ;启动定时器0MLOOP: MOV A,HOUR ;显示小时值十位MOV B,#10DIV ABCALL T0LEDMOV LEDBUF,A ;将十位值送显示码缓存区MOV A,B ;显示小时值个位CALL T0LEDORL A,#80H ;显示小数点MOV LEDBUF+1,A ;送显示码缓存区MOV A,MINUTE ;显示分钟值十位MOV B,#10DIV ABCALL T0LEDMOV LEDBUF+2,A ;将十位值送显示码缓存区MOV A,B ;显示分钟个位值CALL T0LEDORL A,#80H ;显示小数点MOV LEDBUF+3,A ;送显示码缓存区MOV A,SECONDMOV B,#10 ;显示秒十位值DIV ABCALL T0LEDMOV LEDBUF+4,A ;送显示码缓存区MOV A,BCALL T0LEDMOV LEDBUF+5,ACALL DISPLAYLED ;调用显示子程序LJMP MLOOPEND。
第12章 单片机应用系统设计举例

a)路路路路路路
b)路测路路
增强型8051单片机实用开发技术
9/24
4.电机驱动电路 .
U11 PWMP PWMN VCC R29 1K R30 1K 3 19 13 18 20 1 9 10 11 12 IN1 IN2 D2 D1 DNC AGND PGND PGND PGND PGND MC33886 OUT1 OUT1 OUT2 OUT2 DNC V+ V+ V+ Ccp FS 6 7 14 15 8 4 5 16 17 2 VBAT J1 2 1 Header 2
U13 IN GND OUT OUT 2 4 C14 47uF
VCC
REG1117-5
C15 0.1uF
增强型8051单片机实用开发技术
11/24
12.1.4 12.1.4 系统软件设计
单片机的检测报警程序采用C语言编写。 单片机的检测报警程序采用 语言编写。 语言编写 单片机的7个 单片机的 个ADC转换通道对小车路径检测的模拟量进 转换通道对小车路径检测的模拟量进 行采样, 行采样,进行二值化和坐标变换后得到小车中心与路径的 偏差, 偏差,然后根据偏差大小对舵机转角和小车速度进行相应 的调整。由于舵机和电机驱动对PWM频率要求差别较大, 的调整。由于舵机和电机驱动对 频率要求差别较大, 频率要求差别较大 驱动电机的PWM由单片机内部 由单片机内部PWM模块产生,而驱动舵 模块产生, 驱动电机的 由单片机内部 模块产生 机的PWM则由定时器 产生。 则由定时器T0产生 机的 则由定时器 产生。
增强型8051单片机实用开发技术
具体程序请参见教材!!! 具体程序请参见教材!!!
增强型8051单片机实用开发技术
12.2 基于实时操作系统 基于实时操作系统uC/OS-II的压力测控系统 的压力测控系统
单片机应用系统设计实例

时单元=பைடு நூலகம்4?
时单元清0 是 中断返回
定时器/计数器T0中断服务程序
四.按键处理模块
按键处理设置为:如没有按键,则时钟 正常走时。当按下K0按键时,进入调分状态, 时钟停止走动;按K1可K2按键可进行加1或 减1操作;继续按K0键可分别进行分和小时 的调整;最后按K0键将退出调整状态,时钟 开始计时运行。
;秒 ;A-商,B-余数 ;秒十位 ;秒个位 ;分
;时
;循环扫描8位显示 ;位选码初值 ;8位显示
SCAN1:
MOV A,R5 MOV P2,A MOV A,@R1 MOV DPTR,#TAB MOVC A,@A+DPTR ;远程查表 MOV P0,A ;段选码 MOV A,R5 LCALL DL1MS INC R1 MOV A,R5 RR A MOV R5,A DJNZ R6,SCAN MOV P2,#0FFH MOV P0,#0FFH RET TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H, 0F8H,80H,90H,0BFH ;“0~9”,“-”的七段共阳极字段 码
while (key1==0); timedata[con]++; if (con==2) con1=24;else con1=60; if (timedata[con]>=con1) {timedata[con]=0;} } } if (con!=0) { if (key2==0) { delay1ms(10); //K2去抖 while (key2==0); timedata[con]--; if (con==2) con2=23;else con2=59; if (timedata[con]<=0) {timedata[con]=con2;} } } EA=1; }
单片机应用系统的设计方法及实例(1)

P3 .3 P3.2 P3.1 P3 .0
+5V
图 8-6 动态扫描显示接口电路
;-----------------主程序------------------
STAR: ∶
∶
LOOP: ∶
ACALL S00EF
;将显示缓冲区内容送去显示
∶
∶
SJMP LOOP
;--------------送显示子程序--------------
P1.3 P1.2 P1.1 P1.0
D C B A LE
D C B A LE MC14495 …
D C B A LE
G
Y0
A
Y1
B
Y2
C
74LS138
Y7
图 8-3 采用译码器的静态显示接口电路
2.串行显示接口
8031
RXD TXD P1.0
AB CLK C LR
AB CLK C LR
… 74LS164
;置键有效标志
:
JNB
SETB
10H
R4,A RETUR
CLR
11H
CLR
10H
R4,#00H
11H,RETUR ;键有效标志等于0,未按过键,返回
SJMP
KEYDO
;键放开,转键处理
;置第一次发现键按下标志
;保存键值
;返回
;清键有效标志
;清第一次发现键按下标志
;清键值暂存单元
RRC JUS2 DOS1 JC DOS2 JC DOS3 JC ALMP ……
74 LS2 44
图 8-10 键盘与单片机的接口电路
开始
向所有的行输出 0
单片机应用系统设计实例

一、控制原理: 虚线表示允许水位变化的上下限。 水塔由电机带动水泵供水,单片 机控制电机转动以达到对水位控 制的目的。 ①当水位上升,达到上限时,因水导电,B、C棒连通+5V。b、c均为“1”,应停止电机和水泵的工作,不再供水; ②当水位降到下限时,B、C棒都不能与A棒导电。 b、c均为“0”,应启动电机,带动水泵工作,给水塔供水; ③当水位处于上下限之间时,B与A棒导通。 b为“1”, c为“0”,无论怎样都应维持原有的工作状态。
输出控制电路
输出高电平:双向可控硅导通,电热丝通电; 输出低电平:双向可控硅截止,电热丝断电。 8155 I/O端口的负载能力不足以驱动光电耦合器的发光 二极管,用1413作为功放。 控制算法:对于温度控制系统,系统具有大热惯性,系统采用脉冲宽度调制的控制方法。 也可用PID算法、Smith算法、Dalin算法等。
温度信号输入通道
MC14433是双积分3 ½ 位的A/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,都与规定的作 息时间比较,如比较相等就进行电铃或扩音设备的开关控制。 本系统共有4项控制内容:接通电铃和断开电铃; 接通和断开扩音设备。 由P1口输出控制码进行控制,其控制码定义为: 接通电铃:0FEH 断开电铃:0FDH 接通扩音设备:7FH 断开扩音设备:0BFH