http://www.wenyuan.com.cn/webnew/
第 10章 应用系统设计及接口技术
(课时,12学时)
http://www.wenyuan.com.cn/webnew/
教学目的
了解单片机应用系统设计方法及开发工具。
掌握独立式键盘和矩阵式键盘的原理与应用。
掌握 LED显示器的原理与静态显示和动态显示的特点。
掌握 LCD显示器的原理与笔段型 LCD的应用。
掌握 D/A转换常用芯片特性及应用。
掌握 A/D转换常用芯片特性及应用。
通过设计二个实例,了解项目设计中的一些方法和技巧。
学习重点和难点
四个模块技术 (键盘、显示,D/A转换,A/D转换 )的掌握和综合应用。
应用系统的程序设计和调试。
http://www.wenyuan.com.cn/webnew/
第 10章 应用系统设计及接口技术
10.1 单片机应用系统概述
10.2 键盘接口
10.3 显示器接口
10.4 数 /模转换接口
10.5 模 /数转换接口
10.6 单片机应用系统实例
本章小结
习题
http://www.wenyuan.com.cn/webnew/
10.1 单片机应用系统概述
10.1.1 单片机应用系统的结构
10.1.2 单片机应用系统的设计方法
10.1.3 单片机应用系统的开发工具
http://www.wenyuan.com.cn/webnew/
10.1.1 单片机应用系统的结构
单片机应用系统 是为完成某项任务而研制开发的用户系统,
是以单片机为核心,配以外围电路和软件,能实现设定任务、功能的实际应用系统。
根据不同的用途和要求,单片机应用系统的系统配置及软件也就有所不同,但它们的开发过程和方法大致相同。
一般的 通用计算机系统 大概包括以下一些主要设备:主机
(有主板,CPU、内存条 )、人机交流设备 (键盘、鼠标、显示器 )、存储器 (光驱、软驱,U盘等 )、网卡、打印机等。
http://www.wenyuan.com.cn/webnew/
10.1.1 单片机应用系统的结构
单片机应用系统所需要的一般配置:
单片机 。
人机交流设备 。输入设备有键盘和按键,输出设备有数码管、液晶显示模块和指示灯等。
信号采集的输入通道 。如出租车的测距、测速装置,温控系统,温度计的温度传感器、洗衣机的水位测量设备。
向操作对象发出各种 控制信号的输出通道 。如空调启动压缩机的开关电路,控制彩电的频道切换、颜色、音量等的接口电路。
如果需与其他计算机系统或智能设备实现信息交换,还需配置 通信接口电路 。
有时还需扩展外部 RAM,EEPROM用于存放数据。如彩电遥控系统中存放系统数据的存储器。
http://www.wenyuan.com.cn/webnew/
10.1.1 单片机应用系统的结构测控对象其他计算机系统或智能设备单片机
MC U
EEP R O M
人机通道
R A M
输出通道输入通道通信接口输入 / 输出设备传感器等执行机构单片机典型应用系统的结构
http://www.wenyuan.com.cn/webnew/
10.1.2 单片机应用系统的设计方法
单片机应用系统的技术要求各不相同,针对具体的任务,设计方法和步骤也不完全相同。这里我们只能讨论 单片机应用系统的一般设计方法 。
为完成某一任务的单片机应用系统需要包含硬件和软件系统。
硬件和软件必须紧密结合,协调一致才能正常工作。在系统研制过程中,硬件设计和软件设计不能截然分开。硬件设计时应考虑软件设计方法,而软件也一定是基于硬件基础上进行设计的。这就是所谓的,软硬结合,。
单片机应用系统的研制过程包括 确定任务,总体设计,硬件设计,软件设计,系统调试,产品化 等几个阶段。它们不是绝对分开的,有时是交叉进行的。
http://www.wenyuan.com.cn/webnew/
10.1.3 单片机应用系统的开发工具
单片机应用系统开发必须经过调试阶段,只有经过调试才能发现问题,改正错误,最终完成开发任务。实际上,对于较复杂的程序,大多数情况下都不可能一次性就调试成功,即使是资深程序员也是如此。
单片机只是一块芯片而已,本身并无开发能力,要借助开发工具才能实现系统设计。开发工具主要包括 电脑,编程器 (又称写入器 ),仿真机 。如果使用 EPROM作为存储器还要配备 紫外线擦除器 。其中必不可少的工具是电脑和编程器
(当然对于在线可编程的单片机,如 89S51,也可以不用编程器,而通过下载电缆下载 )。
http://www.wenyuan.com.cn/webnew/
10.1.3 单片机应用系统的开发工具
1,仿真机及其使用
(1) 开发环境
单片机程序的编写、编译、调试等都是在一定的集成开发环境下进行的。
集成开发环境仿真软件 (ICE)将文件的编辑,汇编语言的汇编、连接,高级语言的编译、连接高度集成于一体,能对汇编程序和高级程序进行仿真调试。
单片机程序如果是汇编编写的,文件名后必须加后缀名
,.ASM”。如果是 C51编写的,必须加后缀名,,C”。
http://www.wenyuan.com.cn/webnew/
10.1.3 单片机应用系统的开发工具
(2) 仿真机的使用
为了实现目标系统的一次性完全开发,必须用到仿真机 (也称在线仿真机 )。 在线仿真机 的主要作用是能完全,逼真,
地扮演用户单片机的角色,且能在集成开发环境中对运行程序进行各种调试操作,即时发现问题,即时修改程序,
从而提高工作效率,缩短开发周期。
仿真机的种类很多,如 南京伟福 系列仿真机,南京万利
MPE5103仿真机等,价格通常在千元以上。每个仿真机都配有使用说明书详细介绍其使用方法,故在这里将不对仿真机进行详细介绍。
http://www.wenyuan.com.cn/webnew/
10.1.3 单片机应用系统的开发工具
(2) 仿真机的使用
使用时,在线仿真机通过 RS-232插件与电脑的 COM1或 COM2
端口相连。在断电情况下,拨下用户系统的单片机和 EPROM,
代之以 仿真头,如下图所示。
运行仿真调试程序,通过 跟踪执行,能即时发现软硬件方面的问题并进行修正。当设计达到满足系统要求后,将调试好的程序编译时形成的二进制文件用编程器烧写到芯片中,一个应用系统就调试成功了。
用户系统仿真头
PC
仿真器单片机的在线仿真
http://www.wenyuan.com.cn/webnew/
10.1.3 单片机应用系统的开发工具
2,编程器
当我们编写好的程序在集成开发环境编译通过后,会形成一个二进制文件 (文件名与源程序文件名相同,后缀名为
,.BIN”)或十六进制文件 (后缀名为,,HEX”),即形成所谓的目标程序。这个目标程序必须利用编程器才能将目标文件烧写到单片机的程序存储器中,从而让单片机系统的硬件和软件真正结合起来,组成一个完整的单片机系统。
编程器 的主要功能是将目标程序烧写到芯片中,其与电脑的连接如下图所示。编程器的使用比较简单,读者只要有机会使用,在非常短的时间内就能学会。
PC
编程器芯片座编程器与计算机的连接
http://www.wenyuan.com.cn/webnew/
10.1.3 单片机应用系统的开发工具
2,编程器
编程器的种类也很多,不同档次的编程器价格相差很大,
从 150元到 7000多元不等;档次的差别在于烧写可编程芯片的类型的多少。目前巿面上常见的有 台湾河洛 生产的 ALLXX
系列,南京西尔特公司的 SP系列、北京润飞的 RF系列,广州升洪的 TOP系列等。如果仅仅是用于学习或是仅针对常用单片机的开发,一般买较低档的编程器就可以,价格大概在 200元左右。
仿真器和编程器是单片机开发的重要工具,熟练使用这些工具是每个单片机开发人员必备的基本技能,而这些工具的使用只有通过实践才能掌握。
http://www.wenyuan.com.cn/webnew/
10.2 键盘接口
10.2.1 键盘的结构与原理
10.2.2 独立式键盘应用实例
10.2.3 矩阵式键盘应用实例
http://www.wenyuan.com.cn/webnew/
10.2.1 键盘的结构与原理
键盘是单片机应用系统中人机交流不可缺少的输入设备。
键盘由一组规则排列的按键组成,一个按键实际上是一个开关元件。键盘通常使用 机械触点式按键开关,其主要功能是把机械上的通断转换为电气上的逻辑关系 (1和 0)。
常见的种类有,独立式按键 和 矩阵式键盘 。
http://www.wenyuan.com.cn/webnew/
10.2.1 键盘的结构与原理
1,独立式按键结构如下图所示,其特点是每个按键单独占用一根 I/O口线,
每个按键工作不会影响其他 I/O口线的状态。多用于所需按键不多的场合。可采用 JNB(或 JB)来查询哪一个按键按下,
并转向相应的功能处理程序。
JNB P1.0,A0 ;如 P1.0键按下,就跳到 A0
JNB P1.1,A1 ;如 P1.1键按下,就跳到 A1
JNB P1.2,A2 ;如 P1.2键按下,就跳到 A2
JNB P1.3,A3 ;如 P1.3键按下,就跳到 A3
JNB P1.4,A4 ;如 P1.4键按下,就跳到 A4
JNB P1.5,A5 ;如 P1.5键按下,就跳到 A5
JNB P1.6,A6 ;如 P1.6键按下,就跳到 A6
JNB P1.7,A7 ;如 P1.7键按下,就跳到 A7
http://www.wenyuan.com.cn/webnew/
10.2.1 键盘的结构与原理
2,矩阵式键盘单片机系统中,若使用按键较多时,通常采用矩阵式键盘,
其结构如下图所示。由图可知,一个 4× 4的行、列结构,可以构成一个含有 16个按键的键盘,节省了很多 I/O口。
控制方式,先判断是否有键按下。
如有,再判断哪一键按下,并得到键码值,然后根据键码值转向不同的功能程序。
矩阵式结构键盘比独立式按键要复杂,识别也要复杂一些。最常用的识别方法是键盘扫描法,将在
10.2.3小节进行具体说明。
http://www.wenyuan.com.cn/webnew/
10.2.1 键盘的结构与原理
3,键盘设计应注意的问题
机械式按键在按下或释放时,
由于机械弹性作用的影响,
通常伴随有一定时间的触点机械抖动,然后其触点才稳定下来。其抖动过程如右图所示,抖动时间的长短与开关的机械特性有关,一般为
5?10ms。
闭合稳定键按下前沿抖动 后沿抖动按键触点的机械抖动
http://www.wenyuan.com.cn/webnew/
10.2.1 键盘的结构与原理
3,键盘设计应注意的问题
在触点抖动期间检测按键的通与断状态,可能导致判断出错,
即按键一次按下或释放被错误地认为是多次操作。系统设计中如果开关脉冲是作为外部中断触发信号或要对开关脉冲进行计数时,这种情况是不允许出现的。
为了克服按键触点机械抖动所致的检测误判,必须采取去抖动措施,可从硬件、软件两方面予以考虑。在键数较少时,
可采用 硬件去抖 ;而当键数较多时,采用 软件去抖 。
http://www.wenyuan.com.cn/webnew/
10.2.1 键盘的结构与原理
3,键盘设计应注意的问题
在硬件上可采用在键输出端加 R-S触发器 (双稳态触发器 )或单稳态触发器构成 去抖动电路,如下图所示是一种由 R-S触发器构成的去抖动电路,当触发器翻转时,触点抖动不会对其产生任何影响。键盘输出经双稳态电路之后变为规范的矩形方波。
1
2
3 UA
4
5
6 UB
S
GN
D
+ 5 V Q
a
b
1k?
1k?
双稳态去抖动电路
http://www.wenyuan.com.cn/webnew/
10.2.1 键盘的结构与原理
3,键盘设计应注意的问题
软件上采取的措施 是在检测到有按键按下时,执行一个 10ms
左右 (具体时间应视所使用的按键进行调整 )的延时程序,再确认该键电平是否仍保持闭合状态电平,若仍保持闭合状态电平,则确认该键处于闭合状态;同理,在检测到该键释放后,也应采用相同的步骤进行确认,从而消除抖动的影响。
http://www.wenyuan.com.cn/webnew/
10.2.2 独立式键盘应用实例
【 例 1】 监视某开关 S,用发光二极管 LED显示开关状态,如果开关闭合,LED亮;如果开关断开,LED灭。
解:设计电路图如下图所示。开关接 P1.1,当开关断开时,
P1.1为 +5V,对应数字量为,1”;开关闭合时,P1.1为 0V,
对应数字量为,0”,这样就可以用 JB指令对开关状态进行检测。 P1.0输出,1”,LED亮。当 P1.0输出,0”,LED两端电压相等,熄灭。
参考程序如下,ORG 0000HCLR P1.0 ; 使发光二极管灭
NEXT,SETB P1.1 ; 先对 P1.1写 "1"
JB P1.1,L1 ; 开关断开,跳至 L1
SETB P1.0 ; 开关合上,发光二极管亮
SJMP NEXT
L1,CLR P1.0 ; 开关断开,发光二极管灭
SJMP NEXT
END
http://www.wenyuan.com.cn/webnew/
10.2.2 独立式键盘应用实例开关监视控制电路图
http://www.wenyuan.com.cn/webnew/
10.2.2 独立式键盘应用实例
【 例 2】 信号灯控制电路如下图所示,其功能是当按下不同的键时发光二极管有不同的亮灭规律。按 1号键 LED从左到右依次亮,按 2号键从右到左依次亮,按 3号键闪烁,按 4号键呈流水追逐效果。
解:电路图中 P1口分别接了 4个开关,每个开关都有相对应的功能,当某一开关闭合时,相应的口线变为低电平,而其他口线依然为高电平,因此,可以用 4条 JNB指令对开关状态进行检测。如果某一按键按下,则跳转执行其所对应的控制功能。
八个发光二极管经 74LS04接 P2口,主要因单片机的驱动能力较差,故用 74LS04来加大驱动能力。 P2口输出控制信号控制发光规律。
程序设计流程图如下图所示。
http://www.wenyuan.com.cn/webnew/
信号灯控制电路
http://www.wenyuan.com.cn/webnew/
10.2.2 独立式键盘应用实例信号灯控制程序设计流程图
http://www.wenyuan.com.cn/webnew/
ORG 0000H
MOV SP,#60H
MOV P2,#00H
MOV P1,#0FH
START,JNB P1.0,A0 ; 如 P1.0键按下,就跳至 A0
JNB P1.1,A1 ; 如 P1.1键按下,就跳至 A1
JNB P1.2,A2 ; 如 P1.2键按下,就跳至 A2
JNB P1.3,A3 ; 如 P1.3键按下,就跳至 A3
SJMP START
********** 左移 *******************************
A0,MOV DPTR,#TAB ; 左移常数表首地址送 DPTR
ACALL DISP
SJMP START
********* 右移 ********************************
A1,MOV DPTR,#TAB1 ; 右移常数表首地址送 DPTR
ACALL DISP
SJMP START
********* 闪烁 ********************************
A2,MOV DPTR,#TAB2 ; 闪烁常数表首地址送 DPTR
ACALL DISP
SJMP START
信号灯控制参考程序
http://www.wenyuan.com.cn/webnew/
******** 流水追逐 *****************************
A3,MOV DPTR,#TAB3 ; 流水追逐常数表首地址送 DPTR
ACALL DISP
SJMP START
********* LED显示控制子程序 *****************
功能,根据常数表控制 P2口的 LED发光入口,常数表的地址送到 DPTR
出口,无
********************************************
DISP,CLR A
MOVC A,@A+DPTR
CJNE A,#0AH,LOOP1
RET
LOOP1,MOV P2,A
MOV R3,#20
ACALL DELAY
INC DPTR
JMP DISP
信号灯控制参考程序
http://www.wenyuan.com.cn/webnew/
DELAY,MOV R4,#20
D1,MOV R5,#248
DJNZ R5,$
DJNZ R4,D1
DJNZ R3,DELAY
RET
TAB,DB 01H,03H,07H,0FH,1FH,3FH,7FH,0FFH,0AH ; 左移
TAB1,DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH,0AH ; 右移
TAB2,DB 0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0AH ; 闪烁
TAB3,DB 01H,02H,06H,08H,10H,20H,60H,80H,0AH ; 流水追逐
END
信号灯控制参考程序
说明:本例中,根据所按下的键输入不同的常数表地址到 DPTR,然后再调用显示子程序 (DPTR为 DISP程序的入口条件 ),从而根据不同的参数控制发光二极管的变化规律。显然通过改变常数表可任意设定发光规律,
读者可以试一下。调用子程序,可使程序设计实现模块化,但必须明确子程序的功能、入口和出口参数。
通过以上两个实例可以看出独立式键盘应用的特点:识别键盘比较容易,
编程也比较简单,很适合于功能键较少的单片机应用系统。但每一个按键上用一根口线,当按键较多时 (超过 8个 )应采用矩阵式键盘。
http://www.wenyuan.com.cn/webnew/
10.2.3 矩阵式键盘应用实例
【 例 3】 4× 4键盘硬件电路如下图所示。设计采用键盘扫描法得到键码值的程序。
解:键盘输入程序设计有以下几个方面。
(1) 判别键盘上有无键闭合其方法为,P1.0~ P1.3输出 0,然后读 P1口,若高 4位
P1.4~ P1.7全为 1,则键盘上没有闭合键,若 P1.4~ P1.7不全为 1,则有键处于闭合状态。
(2) 去除键的机械抖动其方法为:当判别到键盘上有键闭合后,延时一段时间再判别键盘的状态,若仍有键闭合,则认为键盘上有一个键处于稳定的闭合状态,否则认为键抖动。
http://www.wenyuan.com.cn/webnew/
10.2.3 矩阵式键盘应用实例

4
键盘硬件电路图
http://www.wenyuan.com.cn/webnew/
10.2.3 矩阵式键盘应用实例
(3) 判别闭合键的键号其方法为:对键盘的行线进行扫描,P1.3~ P1.0依次循环输出 1110,1101,1011和 0111,相应地读 P1口,若高 4位
P1.7~ P1.4全为,1”,则说明该行上没有键闭合;否则,这一行上有键闭合,而且就是行线为 0,列线为 0的交叉键。高
4位和低四位合并即得到键码值。
例如,P1.3~ P1.0输出,1110”时,读入 P1.7~ P1.4为
,1101”时,即不全为,1”,说明有键按下,那一个键呢?
显然是 P1.0与 P1.5交叉的键。将高四位和低四位合并后的值为,11011110”;也就是该键的键码值。依此类推可得各键的健码值。各键和对应的键码值如下图所示。
(4) 使 CPU对键的一次闭合仅作一次处理采用的方法是等待闭合键释放以后再作处理。
http://www.wenyuan.com.cn/webnew/
各键和对应的键码值
4× 4键盘参考程序如下。该程序可作为子程序来调用,入口参数无,出口参数为键码值,存于 A。
本例的另一种实现方法:以上程序所得到的键码值,离散性较大,不利于用指令对按键进行处理。可采用按键编码为依次排列键号的程序设计方法。详见教材,这里不再赘述。
http://www.wenyuan.com.cn/webnew/
4× 4键盘参考程序
KEY,MOV P1,#0F0H ; P1.0~ P1.3输出 0,P1.4~ P1.7输出 1
MOV A,P1 ; 读键盘,检测有无键按下
ANL A,#0F0H ; 屏蔽 P1.0~ P1.3,检测 P1.4~ P1.7是否全为 1
CJNE A,#0F0H,HAVE ; P1.4~ P1.7不全为 1,有键按下
SJMP KEY ; P1.4~ P1.7全为 1,无键按下,重新检测键盘
HAVE,MOV A,#0FEH ; 有键按下,逐行扫描键盘,置扫描初值
NEXT,MOV B,A ; 扫描码暂存于 B
MOV P1,A ; 输出扫描码
READ,MOV A,P1 ; 读键盘
ANL A,#0F0H ; 屏蔽 P1.0~ P1.3,检测 P1.4~ P1.7是否全为 1
CJNE A,#0F0H,YES ; P1.4~ P1.7不全为 1,该行有键按下
MOV A,B ; 被扫描行无键按下,准备查下一行
RL A ; 置下一行扫描码
CJNE A,#0EFH,NEXT ; 未扫描到最后一行,则循环
YES,ACALL DELAY ; 延时,去抖动
http://www.wenyuan.com.cn/webnew/
ARED,MOV A,P1 ; 再读键盘
ANL A,#0F0H ; 屏蔽 P1.0~ P1.3,保留 P1.4~ P1.7(列码 )
MOV R2,A ; 暂存列码
MOV A,B
ANL A,#0FH ; 取行扫描码
ORL A,R2 ; 行码、列码合并为键码
PUSH A ; 键码入堆栈
KS,ACALL DELAY ; 延时
MOV P1,#0F0H ; P1.0~ P1.4为 0,检测键是否放开
MOV A,P1 ; 读 P1
CPL A ; 键如果已松开,取反后 P1高四位全为 0
ANL A,#0F0H ; 保留高四位
JNZ KS ; 判断,键松开则返回,否则继续等待
POP A ; 弹出键码
RET ; 返回
DELAY,MOV R7,#60 ; 延时子程序
D2,MOV R6,#248
DJNZ R6,$
DJNZ R7,D2
RET
END
4× 4键盘参考程序
http://www.wenyuan.com.cn/webnew/
10.2.3 矩阵式键盘应用实例编程说明:
在单片机应用系统中,键盘扫描 只是系统的部分程序。进行软件系统编程时,一般作为 子程序 调用或 中断服务程序 使用。
该子程序入口参数为无,出口参数为键码值,存于 A。因此,
其调用十分简单,但一定要注意返回的键码值所对应的键在键盘的哪个位置,即要掌握键码分配表。
矩阵式键盘尽管比独立式键盘复杂。但有了上述子程序后,
只要学会调用,你甚至不需要知道键盘扫描程序是如何编写的,COPY即可,编程也就变得十分简单了。从这可以看出平时注意查阅资料,收集实用子程序,掌握子程序的调用,对提高编程效率是多么重要。
http://www.wenyuan.com.cn/webnew/
10.3 显示器接口
10.3.1 LED显示器的结构与原理
10.3.2 LED显示器静态显示及应用实例
10.3.3 LED显示器动态显示及应用实例
10.3.4 LCD显示器的结构与原理及应用
http://www.wenyuan.com.cn/webnew/
10.3.1 LED显示器的结构与原理
1,结构种类
七段 LED显示器 (数码管 )系发光器件的一种。常用的 LED发光器件有两类,数码管 和 点阵 。
数码管内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。常见数码管有 10根管脚。
管脚排列如下图所示。其中 COM为公共端,根据内部发光二极管的接线形式可分为 共阴极 和 共阳极 两种。
使用时,共阴极数码管公共端接地,共阳极数码管公共端接电源。每段发光二极管需 5~ 10mA的驱动电流才能正常发光,
一般需加限流电阻控制电流的大小。
http://www.wenyuan.com.cn/webnew/
10.3.1 LED显示器的结构与原理管脚排列 共阴极数码管 共阳极数码管
a
b
c
d
e
f
g
dp
GND
a
b
c
d
e
f
g
dp
+ 5 V
a
b f
c
g
d
e
3
CO M
e
1
d
2
c
4
dp
5
b
6
a
7 8
f
9
g
10
CO M
(a) ( b ) (c)
http://www.wenyuan.com.cn/webnew/
10.3.1 LED显示器的结构与原理
2,显示原理
LED数码管的 a~ g七个发光二极管。加正电压的发光,加零电压的不能发光,不同亮暗的组合就能形成不同的字型,这种组合称为 字型码 。共阳极和共阴极的字型码是不同的,如下表所示。
可采用 硬件译码输出字型码 控制显示内容,如采用 74LS48、
CD4511(共阴极 )或 74LS46(74LS47),CD4513(共阳极 )。也可用单片机 I/O口直接输出字型码 控制数码管的显示内容。
用单片机驱动 LED数码管显示有很多方法,按显示方式分有静态显示 和 动态显示 。
http://www.wenyuan.com.cn/webnew/
LED字型显示代码表
2,显示原理显示 段 符 号 十六进制代码dp g f e d c b a 共阴极 共阳极
0
1
2
3
4
5
6
7
8
9
A
b
C
d
E
F
H
P
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
1
1
1
1
1
0
1
1
1
1
0
1
1
1
1
1
1
0
0
0
1
1
1
0
1
1
1
1
1
0
1
1
1
1
1
0
1
0
0
0
1
0
1
0
1
1
1
1
1
1
1
1
1
0
1
1
0
1
1
0
1
1
0
1
1
1
1
0
0
0
1
1
0
1
1
1
1
1
1
1
1
1
0
1
0
0
1
0
1
1
1
1
1
0
0
1
1
1
1
0
0
1
0
0
1
1
1
0
1
1
0
1
1
1
1
1
1
0
1
0
1
1
0
1
3FH
06H
5BH
4FH
66H
6DH
7DH
07H
7FH
6FH
77H
7CH
39H
5EH
79H
71H
76H
F3H
C0H
F9H
A4H
B0H
99H
92H
82H
F8H
80H
90H
88H
83H
C6H
A1H
86H
8EH
89H
8CH
http://www.wenyuan.com.cn/webnew/
10.3.2 LED显示器静态显示及应用实例
1,静态显示的特点
静态显示 就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出去后,数码管始终显示该数据 (不变 ),CPU不再控制 LED。到下一次显示时,再传送一次新的显示数据。
静态显示的接口电路采用 一个并行口接一个数码管,数码管的公共端按共阴极或共阳极分别接地或接 VCC。这种接法,每个数码管都要单独占用一个并行 I/O口,以便单片机传送字形码到数码管控制数码管的显示。
显然其缺点就是当显示位数多时,占用 I/O口过多。
为了解决静态显示 I/O口占用过多的问题,可采用 串行接口扩展 LED数码管 的技术。
静态显示方式的 优点 是显示的数据稳定,无闪烁,占用 CPU时间少。其缺点 是由于数码管始终发光,功耗比较大。
http://www.wenyuan.com.cn/webnew/
10.3.2 LED显示器静态显示及应用实例
2,应用实例
【 例 5】 用一位数码管显示开关来回拨动的次数。
解:电路如下图所示,89S51的 P1口经 74LS373接一个共阴极数码管,数码管的公共端接地。 P1口输出字型码送至数码管,
就能控制数码管的显示内容。 74LS373为 8D锁存器,在电路中起驱动作用。两个与非门组成的 RS触发器主要起消抖作用,
用来消除开关按下及弹起过程中的抖动所引起的判断错误。
开关信号经消抖动电路后接单片机的 INT1引脚。每来回拨动一次将产生一个下降沿信号,通过 INT1向 CPU申请中断。
软件设计时,可用 R0作为记录中断次数的指针 (每中断一次
R0加 1),然后根据 R0用查表程序查出对应的字形码,再由 P1
口送出,控制数码管显示中断次数值。
http://www.wenyuan.com.cn/webnew/
一位数码管显示电路图
30pF
30pF
12M H z
GND
E A /V P
31
X1
19
X2
18
RE SE T
9
RD
17
WR
16
INT0
12
INT1
13
T0
14
T1
15
P10
1
P1 1
2
P12
3
P13
4
P14
5
P15
6
P16
7
P17
8
P00
39
P01
38
P02
37
P03
36
P04
35
P05
34
P06
33
P07
32
P20
21
P21
22
P22
23
P23
24
P24
25
P25
26
P26
27
P27
28
PSEN
29
A L E /P
30
TXD
11
RXD
10
U1
89S51
10μ F
V
CC
V
CC
X1 X2
X1
X2
1
2
3
U 1A
4
5
6
U 1B
74A L S00
S
1k Ω
1kΩ
V
CC
D0
3
Q0
2
D1
4
Q1
5
D2
7
Q2
6
D3
8
Q3
9
D4
13
Q4
12
D5
14
Q5
15
D6
17
Q6
16
D7
18
Q7
19
OE
1
LE
11
U2 74L S373
GND
GND
V
CC
300Ω × 7
a
b f
c
g
d
e
DPY
dp
a
7
b
6
c
4
d
2
e
1
f
9
g
10
3
LED
GND
http://www.wenyuan.com.cn/webnew/
ORG 000H
AJMP MAIN
ORG 0013H
AJMP INT1 ; 外部中断 1入口地址
************ 主程序 ***************************
MAIN,SETB EA ; 开通中断开关
SETB EX1 ; 开外部中断
SETB IT1 ; 下降沿触发
MOV R0,#0 ; 计数指针清 0
MOV P1,#3FH ; 开始显示 0
MOV DPTR,#TAB ; 字形码地址送 DPTR
SJMP $ ; 等待中断 (开关来回拨动一次产生一次中断 )
*********** 外部中断处理程序 **************************
INT1,INC R0 ; 开关每来回拨动一次计数指针加 1
MOV A,R0
MOVC A,@A+DPTR ; 查字形码
MOV P1,A ; 字形码送 P1显示
CJNE R0,#0FH,RE ; 是否等于 15次
MOV R0,#00H ; 计数指计清 0
RE,RETI
TAB,DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ; 字形码
DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H
END
一位数码管显示参考程序
http://www.wenyuan.com.cn/webnew/
10.3.3 LED显示器动态显示及应用实例
1,动态显示的特点
动态扫描方法是用其接口电路把 所有数码管的 8个笔划段 a~
g和 dp同名端连在一起,而 每一个数码管的公共极 COM各自独立地受 I/O线控制 。 CPU向字段输出口送出字形码时,所有数码管接收到相同的字形码。但究竟是哪个数码管亮,则取决于 COM端,COM端与单片机的 I/O口相连接,由单片机输出位码到 I/O控制何时哪一位数码管亮。
动态扫描 用分时的方法轮流控制各个数码管的 COM端,使各个数码管轮流点亮。在轮流点亮数码管的扫描过程中,每位数码管的点亮时间极为短暂。但由于人的视觉暂留现象及发光二极管的余辉,给人的印象就是一组稳定的显示数据。
http://www.wenyuan.com.cn/webnew/
10.3.3 LED显示器动态显示及应用实例
1,动态显示的特点
优点,当显示位数较多时,采用动态显示方式比较节省 I/O
口,硬件电路也较静态显示简单。
缺点,其稳定度不如静态显示方式。而且在显示位数较多时
CPU要轮番扫描,占用 CPU较多的时间。
http://www.wenyuan.com.cn/webnew/
10.3.3 LED显示器动态显示及应用实例
2,应用实例
【 例 8】 采用两位数码管动态扫描显示按键来回拨动次数。
解:硬件电路设计如下图所示。 7407的两个输出引脚分别接至两位数码管 (共阴 )的公共端,控制每位数码管的分时显示,
实现动态扫描显示。
软件设计以单片机内部 RAM的 30H,31H作为显示数据缓存,
两位段码的获取及每位数码管的显示控制由显示子程序完成。
参考程序如下。
http://www.wenyuan.com.cn/webnew/
两位数码管动态扫描显示电路
http://www.wenyuan.com.cn/webnew/
AD0 EQU 30H ; 个位显存
AD1 EQU 31H ; 十位显存
ORG 0000H
AJMP MAIN
ORG 0013H ; 外部中断入口地址
AJMP INT1
**************主程序 *********************
MAIN,MOV SP,#60H
MOV AD0,#0 ; 显存清 0
MOV AD1,#0
SETB EA ; 开通中断开关
SETB EX1 ; 开外部中断
SETB IT1 ; 下降沿触发
LOOP,MOV R2,#0FDH ; 显示位码 (十位 )初值送 R2
ACALL DISP ; 调两位显示子程序
SJMP LOOP
两位数码管动态扫描显示参考程序
http://www.wenyuan.com.cn/webnew/
**************外部中断处理程序 ******************
完成计算开关来回拨动的次数,并进行 BCD码调整
***********************************************
INT1,INC AD0 ; 每中断一次 (开关来回拨动一次 )
计数加 1
MOV A,AD0
CJNE A,#10,LOOP1 ; 个位小于 10?
MOV AD0,#0 ; 等于 10,个位调整为 0十位加 1
INC AD1
MOV A,AD1
CJNE A,#10,LOOP1 ; 计数是否等于 100?
MOV AD1,#0 ; 等于 100,个位十位调整为 0
LOOP1,RETI ; 返回两位数码管动态扫描显示参考程序
http://www.wenyuan.com.cn/webnew/
***************两位动态显示子程序 ***************
功能,两位数码动态显示 (P1口送字形码,P2口送位码 )
入口,显存地址 AD1,AD0,位显码初值 R2(0FDH)
************************************************
DISP,MOV DPTR,#TAB ; 字形码首地址
MOV R0,#AD1 ; 十位显存地址送 R0
NEXT,MOV A,@R0
MOVC A,@A+DPTR ; 查字形码
MOV P1,A ; 字形码送 P1
MOV P2,R2 ; 位显码送 P2
ACALL DELAY ; 延时
DEC R0 ; 指向下一地址
MOV A,R2
RR A ; 指向下一位显
MOV R2,A
CJNE R2,#07FH,NEXT ; 2位数码显示完?
RET ; 显示完返回
DELAY,…… ; 延时子程序 (略 )
TAB,DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ; 字形码两位数码管动态扫描显示参考程序
http://www.wenyuan.com.cn/webnew/
10.3.4 LCD显示器的结构与原理及应用
1,LCD显示器简介
(1) LCD显示器的结构和原理
液晶显示器的结构图如下图所示。不同类型的液晶显示器件其组成可能会有所不同,但是所有液晶显示器件都可以认为是由两片光刻有透明导电电极的基板,夹持一个液晶层,封接成一个扁平盒,有时在外表面还可能贴装上偏光片等构成。
玻璃基板 是一种表面极其平整的浮法生产薄玻璃片。表面蒸镀有一层 In2O3或 SnO2透明导电层,即 ITO膜层 。经光刻加工制成 透明导电图形 。这些图形由像素图形和外引线图形组成。
因此,外引线不能进行传统的锡焊,只能通过 导电橡胶条 或导电胶带 等进行连接。如果划伤、割断或腐蚀,则会造成器件报废。
http://www.wenyuan.com.cn/webnew/
10.3.4 LCD显示器的结构与原理及应用
1,LCD显示器简介
(1) LCD显示器的结构和原理液晶显示器的结构图
http://www.wenyuan.com.cn/webnew/
10.3.4 LCD显示器的结构与原理及应用
1,LCD显示器简介
(1) LCD显示器的结构和原理
液晶材料 是液晶显示器件的主体。不同器件所用液晶材料不同,液晶材料大都是由几种乃至十几种单体液晶材料混合而成。每种液晶材料都有自己固定的清亮点 TL和结晶点 TS。因此也要求每种液晶显示器件必须使用和保存在 TS~ TL之间的一定温度范围内,如果使用或保存温度过低,结晶会破坏液晶显示器件的定向层;而温度过高,液晶会失去液晶态,也就失去了液晶显示器件的功能。
液晶显示的原理 是液晶在电场的作用下,液晶分子的排列方式发生了改变,从而使其光学性质发生了变化。
http://www.wenyuan.com.cn/webnew/
10.3.4 LCD显示器的结构与原理及应用
1,LCD显示器简介
(2) LCD显示器分类从显示的形式上通常可分笔段型、字符型和点阵图形型。
笔段型 。笔段型 LCD是以长条状显示像素组成一位显示。 在形状上总是围绕数字,8”的结构变化,广泛用于电子表、数字仪表中。
字符型 。字符型液晶显示模块是专门用来显示字母、数字、符号等的点阵型液晶显示模块。在电极图形设计上它是由若干个 5 × 8或 5× 11
点阵组成,每一个点阵显示一个字符。这类模块广泛应用于寻呼机、手机、电子记事本等类电子设备中。
点阵图形型 。点阵图形型是在一平板上排列多行和多列,形成矩阵形式的晶格点,点的大小可根据显示的清晰度来设计。这类液晶显示器可广泛用于图形显示如游戏机、笔记本电脑和彩色电视等设备中。
http://www.wenyuan.com.cn/webnew/
10.3.4 LCD显示器的结构与原理及应用
1,LCD显示器简介
(2) LCD显示器分类
液晶显示器件在使用时必须选配相应的 控制器 和 驱动器 才能工作。
将液晶显示器件、控制器,PCB线路板、背光源、结构件装配在一起的组件称之为 液晶显示模块 。只需通过控制器接口外接数字信号或模拟信号即可驱动 LCD显示。因液晶显示模块使用方便、简洁,在字符型 LCD和点阵图形型 LCD中得到广泛应用。
http://www.wenyuan.com.cn/webnew/
10.3.4 LCD显示器的结构与原理及应用
2,8051与笔段型 LCD的接口及应用
(1) 液晶显示控制器 ICM7211简介
ICM7211是 MAXIM公司推出的 四位七段码 LCD液晶显示驱动器 。
该器件内部含有输入数据锁存器,BCD码到七段码的译码器、
基准时钟信号发生器和位选电路。采用 40脚双列直插式封装。
ICM7211中的 RC振荡器的工作方式:将 36脚悬空可产生
19kHz方波信号;如果希望用较低的频率来驱动大显示器,
可在 36脚与 1脚或 35脚之间接一个电容,外接电容越大,频率越小;也可以在 36脚接一个外部时钟源来激励振荡器。如果将 36脚接地,那么 BP脚将作输入用,此时可用另一片
ICM7211的背极输出来驱动,这种情况一般适用于两片
ICM7211级联的情况。
http://www.wenyuan.com.cn/webnew/
10.3.4 LCD显示器的结构与原理及应用
ICM7211各引脚的功能具体说明如下:
V+(1脚 ):接 +5V电源。
GND(35脚 ):接地端。
OSC(36脚 ):内部振荡控制。悬空时振荡器工作,接地时振荡器不工作。
BP(5脚 ),LCD公共驱动极 (背光极 )。当 OSC引脚悬空时输出 125Hz脉冲,
当 OSC引脚接地时是系统的工作脉冲输入极。
B3~ B0(30~ 27脚 ),BCD码输入。
DS1,DS2和 CS1,CS2(不带,M,后缀的器件为 D1~ D4,为位选信号,
31~ 34脚 ):这四个端口中的前、后两脚分别为位选和片选信号端。
A1~ G1(37~ 40,2~ 4脚 ):第一位 (个位 ) LCD七段码输出。
A2~ G2(6~ 12脚 ):第二位 (十位 ) LCD七段码输出。
A3~ G3(13~ 19脚 ):第三位 (百位 ) LCD七段码输出。
A4~ G4(20~ 26脚 ):第四位 (千位 ) LCD七段码输出。
http://www.wenyuan.com.cn/webnew/
10.3.4 LCD显示器的结构与原理及应用
2,8051与笔段型 LCD的接口及应用
(1) 液晶显示控制器 ICM7211简介
ICM7211(A)M接口使用的位选信号是两条地址线和两条片选信号线,其真值表如下表所示。
DS2 DS1 CS2 CS1 功 能
0 0 0 0 数据存储在 D4
0 1 0 0 数据存储在 D3
1 0 0 0 数据存储在 D2
1 1 0 0 数据存储在 D2
X X 其他 未选中
ICM7211(A)M真值表
http://www.wenyuan.com.cn/webnew/
10.3.4 LCD显示器的结构与原理及应用
2,8051与笔段型 LCD的接口及应用
(2) 应用实例
【 例 10】 用 LCD显示器显示开关来回拨动的次数 (4位 )。
解:硬件电路设计如下图所示,采用 ICM7211(A)M驱动 4位半液晶显示器 YXY4501。
ICM7211(A)M的 OSC悬空,产生方波。 P0.0~ P0.3接
ICM7211(A)M的 BCD码输入端送显示数据。 P2.0,P2.1接位选引脚 DS1,DS2作为 4位 LCD的位选择。 P2.7接片选端 CS1,
P2.7为 0选中 ICM7211(A)M。 WR接片选端 CS2,当执行指令
,MOVX @DPTR,A”时,WR送出一负脉冲使 CS2有效,从而选中 ICM7211(A)M。
http://www.wenyuan.com.cn/webnew/
软件设计时,先把相应的位选择码作为高八位地址送到 DPH,
再把显存存放的 BCD码数据作为低八位地址送入到 DPL。然后执行,MOVX @DPTR,A”控制 LCD的显示。
这种程序设计方法巧妙地将 BCD码值作为低位地址,而将
ICM7211作为,只写,外部 RAM使用,这一设计大大地简化了显示子程序设计。
LCD显示器接口电路
http://www.wenyuan.com.cn/webnew/
D0 EQU 30H ; 个位计数及显存地址
D1 EQU 31H ; 十位计数及显存地址
D2 EQU 32H ; 百位计数及显存地址
D3 EQU 33H ; 千位计数及显存地址
AD0 EQU 40H ; 存放个位显示选通码地址
AD1 EQU 41H ; 存放十位显示选通码地址
AD2 EQU 42H ; 存放百位显示选通码地址
AD3 EQU 43H ; 存放千位显示选通码地址
ORG 0000H
AJMP MAIN
ORG 0013H
LJMP INT1
ORG 0030H
MAIN,MOV SP,#60H
MOV AD0,#03H ; 个位显示选通码
MOV AD1,#02H ; 十位显示选通码
MOV AD2,#01H ; 百位显示选通码
MOV AD3,#00H ; 千位显示选通码
SETB EA ; 开通中断
SETB IT1 ; 下跳沿触发
SETB EX1 ; 开通外部中断 1
参考程序
http://www.wenyuan.com.cn/webnew/
*******************************************
显示程序
*******************************************
DISPLAY,MOV R2,#4 ; 显示 4位
MOV R0,#D0 ; 显存首地址送 R0
MOV R1,#AD0 ; 选通码首地址送 R0
LOOP,MOV A,@R1
MOV DPH,A ; 显示位码送高八位
MOV A,@R0
MOV DPL,A ; 要显示的数据送低八位
MOVX @DPTR,A ; 靠地址码控制显示
INC R0
INC R1
DJNZ R2,LOOP
SJMP DISPLAY
*******************************************
外部中断处理程序,完成计数指针加 1
并进行各位计数指针的调整 (最大只能到 9)
******************************************
……(略,可参考例 9)
END
参考程序
http://www.wenyuan.com.cn/webnew/
10.4 数 /模转换接口
10.4.1 数 /模转换器概述
10.4.2 数 /模转换芯片应用实例
http://www.wenyuan.com.cn/webnew/
10.4.1 数 /模转换器概述
测控系统是单片机应用的重要领域。在测控系统中,除数字量之外还会遇到另一种物理量,即 模拟量 。例如:温度、
速度、电压、电流、压力等,它们都是 连续变化的物理量 。
单片机系统中凡是遇到有模拟量的地方,就要进行模拟量向数字量、数字量向模拟量的转换,也就要涉及到单片机的数 /模 (D/A)和模 /数 (A/D)转换的接口技术。
数 /模转换 主要用于将单片机的数字量输出转化为实际的模拟量控制外接设备。
http://www.wenyuan.com.cn/webnew/
10.4.1 数 /模转换器概述
D/A转换器输入的是数字量,经转换后输出的是模拟量。数
/模转换器集成电路芯片种类很多。
按输入的二进制数的位数分类,有 八位,十位,十二位 和十六位 等。
按输出是电流还是电压分类,分为 电压输出器件 和 电流输出器件 。
http://www.wenyuan.com.cn/webnew/
10.4.1 数 /模转换器概述
1,D/A转换器的技术指标有关 D/A转换器的技术性能指标很多,例如 绝对精度,相对精度,线性度,输出电压范围,温度系数,输入数字代码种类 (二进制或 BCD码 )等。
D/A转换器与接口有关的技术性能指标:
分辩率 。数 /模转换的分辩率是指最小输出电压 (对应的输入二进制数为 1)与最大输出电压 (对应的输入二进制数的所有位全为 1)之比。例如 8位数的分辨率为 1/256≈0.004,10
位数分辨率为 1/1024,约等于 0.001。由此可见数字量位数越多,分辨率也就越高。分辨率通常用数字输入信号的位数表示,有 8位,10位,12位等。
http://www.wenyuan.com.cn/webnew/
10.4.1 数 /模转换器概述
1,D/A转换器的技术指标
建立时间 。也称稳定时间,它是指从数字量输入到建立稳定的输出电流的时间,是描述 D/A转换速率的一个重要参数。
转换精度 。由于转换器内部的误差等原因,当送一个确定的数字量给 DAC后,它的实际输出值与该数值应产生的理想输出值之间会有一定的误差,它就是 D/A转换器的精度。
http://www.wenyuan.com.cn/webnew/
10.4.1 数 /模转换器概述
2,D/A转换芯片 DAC0832
DAC0832是一个 8位 D/A转换器 。单电源供电,从 +5V~
+15V均可正常工作。基准电压的范围为 -10V~ +10V;电流建立时间为 1μs ;采用
CMOS工艺,低功耗 20mW。
DAC0832转换器芯片为 20引脚,双列直插式封装。
其引脚排列如右图所示。
1
2
3
4
5
6
7
8
9
10
20
19
18
17
16
15
14
13
12
11
D A C0 8 3 2
V
CC
IL E
2WR
X F E R
D I4
D I5
D I6
D I7
I
O U T 2
I
O U T 1
CS
1WR
A G N D
D I3
D I2
D I1
D I0
V
R E F
R
FB
D G N D
DAC0832引脚图
http://www.wenyuan.com.cn/webnew/
10.4.1 数 /模转换器概述
DAC0832引脚的功能定义如下:
DI7~ DI0,8位的数据输入端,DI7为最高位。
IOUT1,模拟电流输出端 1,当 DAC寄存器中数据全为 1时,输出电流最大,
当 DAC寄存器中数据全为 0时,输出电流为 0。
IOUT2,模拟电流输出端 2,IOUT2与 IOUT1的和为一个常数,
即 IOUT1+IOUT2=常数。
RFB:反馈电阻引出端,DAC0832是电流输出,为了取得电压输出,需在电压输出端接运算放大器。 DAC0832内部已经有反馈电阻,所以 RFB端可以直接接到外部运算放大器的输出端,这样相当于将一个反馈电阻接在运算放大器的输出端和输入端之间。
VREF,参考电压输入端,此端可接一个正电压,也可接一个负电压,它决定 0至 255的数字量转化出来的模拟量电压值的幅度,VREF范围为
(+10~ -10)V。 VREF端与 D/A内部 T形电阻网络相连。
VCC:芯片供电电压,范围为 (+5~ 15)V。
AGND:模拟量地,即模拟电路接地端。
DGND:数字量地。
http://www.wenyuan.com.cn/webnew/
10.4.1 数 /模转换器概述
8 位输入寄存器
8 位
DAC
寄存器
8 位
D/A
转换器
10
20
3
9
11
12
8
19
1
18
2
17
4 ~ 7
13 ~ 16
图 10 - 23 DAC0832 内部结构图
ILE
CS
W R 1
W R 2
X F E R
V R E F
I OUT2
I OUT1
R FB
AGND
V CC
DGND
DI3 ~ DI0
DI7 ~ DI4
DAC0832内部结构框图如下图所示。从图中可见,在
DAC0832中有两个数据缓冲器,输入寄存器和 DAC寄存器。
其控制端分别受 ILE,CS,WR1和 WR2,XFER的控制。
DAC0832内部结构框图
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
DAC0832有三种不同的工作方式,直通方式,单缓冲方式,
双缓冲方式 。
1,直通方式的接口与应用
当 ILE接高电平,CS,WR1,WR2和 XFER都接数字地时,DAC
处于直通方式,8位数字量一旦到达 DI7~ DI0输入端,就立即加到 8位 D/A转换器,被转换成模拟量。
DAC0832直通方式输出连接图如下图所示。
运放 U3输出电压为 UOUT=-(D/256)*VREF,图中如果向
DAC0832传送的 8位数据量为 40H(01000000B),则输出电压
UOUT=-(64/256)*5V=-1.25V(反相 ),其输出过程可用,MOV
P0,#40H”一条指令完成。
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
【 例 11】 直通方式产生锯齿波电压信号 (波形如下图所示 )。
解:电路如下图所示。
集成运放在电路中的作用是把 DAC0832输出电流转换为电压。
即实现电流电压转换。
锯齿波电压信号随时间变化而上升,达到最大值后,又从 0
开始上升,再到最大值如此循环下去。因此,只要让
DAC0832输入的数字量也如此变化就可使输出端输出锯齿波。
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
EA/ VP
31
X1
19
X2
18
R ESE
T
9
RD
17
WR
16
INT0
12
INT1
13
T0
14
T1
15
P10
1
P1 1
2
P12
3
P13
4
P14
5
P15
6
P16
7
P17
8
P00
39
P01
38
P02
37
P03
36
P04
35
P05
34
P06
33
P07
32
P20
21
P21
22
P22
23
P23
24
P24
25
P25
26
P26
27
P27
28
PSEN
29
ALE/ P
30
TXD
11
R XD
10
U1
8051
V CC
3
2
6
1 5
7
4
U3
741
- 12V
+ 12 V
AGND
3
2
6
1 5
7
4
U4
741
+ 12 V
- 12V
R3
10k Ω
R4
10kΩ
AGND
+ 5V
V CC R1 10kΩ
AGND
GND GND
V CC
Uo
5V
V CC
20
Iou t 1
11
DI0
7
Iou t 2
12
DI1
6
DI2
5
R fb
9
DI3
4
DI4
16
V re f
8
DI5
15
DI6
14
DI7
13
ILE
19
WR2
18
CS
1
WR1
2
Xfe r
17
AGND
3
U2
DAC 08 32
单片机和 DAC0832直通方式输出连接图
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例对锯齿波的产生作如下说明:
① 程序每循环一次,(R0)加 1,因此实际上锯齿波的上升沿是由 256个小阶梯构成的。但由于阶梯很小,所以看上去就如上图所表示的线性增长锯齿波。
② 延迟时间不同,波形周期不同,锯齿波的斜率就不同。
参考程序如下:
ORG 0000H
MOV R0,#0 ;置转换初值
DAC,MOV P0,R0 ;送数据到 P0口,DAC0832同时进行转换
INC R0 ;转换数字量加 1,当加到最大值 0FFH时,再加 1,R0变为 0
ACALL DELAY ;延时量决定锯齿波周期
AJMP DAC
DELAY,……(略 )
END
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
2,单缓冲方式的接口与应用
单缓冲方式就是使 DAC0832的两个输入寄存器中有一个处于直通方式,而另一个处于受控的锁存方式,或者说两个输入寄存器同时受控的方式。
在实际应用中,如果只有一路模拟量输出,或虽有几路模拟量但并不要求同步输出的情况,就可采用单缓冲方式。
接口电路如下图所示。
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
E A / V
P
31
X1
19
X2
18
R E S E
T
9
RD
17
WR
16
IN T
0
12
I N T 1
13
T0
14
T1
15
P 10
1
P 1 1
2
P 12
3
P 13
4
P 14
5
P 15
6
P 16
7
P 17
8
P 00
39
P 01
38
P 02
37
P 03
36
P 04
35
P 05
34
P 06
33
P 07
32
P 20
21
P 21
22
P 22
23
P 23
24
P 24
25
P 25
26
P 26
27
P 27
28
P S E N
29
A L E / P
30
T X D
11
RXD
10
U1
8051
V CC
3
2
6
1 5
7
4
U3
741
- 12V
+1 2
V
A G N
D
R2
10k Ω
3
2
6
1 5
7
4
U4
741
R1 50 k Ω
+ 12
V
- 12V
R3
10kΩ
R4
10kΩ
A G N D
A G N
D
+ 5V
V CC
Uo
Uo
V c c
V CC
20
I o ut
1
11
D I 0
7
I o ut
2
12
D I 1
6
D I 2
5
R f b
9
D I 3
4
D I 4
16
V r ef
8
D I 5
15
D I 6
14
D I 7
13
I L E
19
W R 2
18
CS
1
WR 1
2
X f er
17
A G N D
3
U2
D A C 08 32
单缓冲方式接口电路
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
2,单缓冲方式的接口与应用
【 例 12】 单缓冲方式产生锯齿波。
解,电路连接如上图所示。
WR2=0和 XFER=0,因此 DAC寄存器处于直通方式。而输入寄存器处于受控锁存方式,WR1接 8051的 WR,ILE接高电平,
CS接 P2.7故输入寄存器地址为 07FFFH。
软件设计思路与例 11相同,只是改为用,MOVX @DPTR,A”
来发送数据和启动转换。
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例单缓冲方式产生锯齿波的源程序如下:
MOV DPTR,#7FFFH ; 指向 0832地址
MOV R0,#00H ; 置转换数字初值
DA1,MOV A,R0
MOVX @DPTR,A ; 启动转换
INC R0 ; 转换数字量加 1
ACALL DELAY ; 延时
AJMP DA1
DELAY,MOV R7,#7DH ; 延时子程序
DL1,NOP
NOP
DJNZ R7,DL1
RET
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
2,单缓冲方式的接口与应用
【 例 13】 利用 0832输出一个从 -5V开始逐渐上升到 0V再升至 5V,
再从 5V逐渐降至 0V,再降至 -5V的锯齿波电压。
解,硬件电路如下图所示。
同图中集成运放 U4接成一加法电路。
输出电压 UO=-(5+2Ui)。当 0832输出 -5V时 (最大值 ),UO=-
(5-10)=+5V;输出 -2.5V时,UO=0V;输出 0V时,UO=-5V。
软件设计时,与例 10.14有点不同的是,当数字量达到最大
(0FFH)时要进行减 1运算。而不是变为 0。当数字量减至 0时,
又开始加 1运算。
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例锯齿波形成电路
EA /V
P
31
X1
19
X2
18
R ES E
T
9
RD
17
WR
16
IN T0
12
IN T1
13
T0
14
T1
15
P10
1
P 1 1
2
P12
3
P13
4
P14
5
P15
6
P16
7
P17
8
P00
3 9
P01
38
P02
37
P03
36
P04
35
P05
34
P06
33
P07
32
P20
21
P21
22
P22
23
P23
24
P24
25
P25
26
P26
27
P27
28
P S EN
29
A LE /P
30
TX D
11
R X D
10
U1
8051
V CC
3
2
6
1 5
7
4
U3
741
- 12V
+12V
AGND
3
2
6
1 5
7
4
U4
741
+12V
- 12V
R3
5,1 k Ω
R4
10kΩ
AGND
+5V
V CC
+5V
R1
10kΩ
V CC
Uo
Uo
+5V
- 5V
V CC
20
Io u t1
11
D I0
7
Io ut
2
12
D I1
6
D I2
5
R fb
9
D I3
4
D I4
16
V ref
8
D I5
15
D I6
14
DI
7
13
ILE
19
W R 2
18
CS
1
W R 1
2
X fer
17
AGND
3
U2
D A C 0 8 3 2
http://www.wenyuan.com.cn/webnew/
ORG 0000H
HA6S,MOV SP,#53H ;设置堆栈
HA6S1,MOV R6,#00H ;数字量初值
HA6S2,MOV DPTR,#7FFFH ;地址
MOV A,R6 ;数字量送 A
MOVX @DPTR,A ;进行 D/A转换
MOV R2,#0BH
LCALL DELAY ;延时
INC R6 ;数字量加 1
CJNE R6,#0FFH,HA6S2 ;数字量增加到 0FFH?不是,则继续,
是则开始减 1
HA6S3,MOV DPTR,#7FFFH ;0832地址
DEC R6 ;数字量减 1
MOV A,R6
MOVX @DPTR,A ;数字量送 0832启动 D/A转换
MOV R2,#0BH
LCALL DELAY ;延时
CJNE R6,#00H,HA6S3 ;数字量是否减到 0,不是则继续减 1,
是则开始加 1
SJMP HA6S1
锯齿波形成参考程序
http://www.wenyuan.com.cn/webnew/
*********** 延时子程序 *************
DELAY,PUSH 02H ;入栈
DELAY1,PUSH 02H
DELAY2,PUSH 02H
DELAY3,DJNZ R2,DELAY3
POP 02H
DJNZ R2,DELAY2
POP 02H
DJNZ R2,DELAY1
POP 02H
DJNZ R2,DELAY
RET
END
锯齿波形成参考程序
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
3,双缓冲方式的接口与应用
双缓冲方式就是把 DAC0832的两个锁存器都接成受控锁存方式。
双缓冲方式用于多路数 /模转换系统,以实现多路模拟信号同步输出的目的。
DAC0832与单片机的接口电路如下图所示,
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例双缓冲方式的接口电路
E A / V P
31
X1
19
X2
18
R E S E
T
9
RD
17
WR
16
I N T 0
12
I N T 1
13
T0
14
T1
15
P 10
1
P 1 1
2
P 12
3
P 13
4
P 14
5
P 15
6
P 16
7
P 17
8
P 00
39
P 01
38
P 02
37
P 03
36
P 04
35
P 05
34
P 06
33
P 07
32
P 20
21
P 21
22
P 22
23
P 23
24
P 24
25
P 25
26
P 26
27
P 27
28
PSEN
29
A L E / P
30
T X D
11
RXD
10
U1
8051
V CC
3
2
6
1 5
7
4
U3
741
- 12V
+ 12V
A G N D
3
2
6
1 5
7
4
U5
741
+ 12V
- 12V
R1
5,1kΩ
R3
10kΩ
A G N D
+ 5V
V CC
+ 5V
R5
10kΩ
V CC
3
2
6
1 5
7
4
U4
741
- 12V
+ 12V
A G N D
3
2
6
1 5
7
4
U6
741
+ 12V
- 12V
R2
5,1kΩ
R4
10kΩ
A G N D
+ 5V
+ 5V
R6
10kΩ
X F E R
X F E R
XFE
R
P 2,5
P 2,5
V CC
V CC
WR
WR
WR
P 2,6
P2,6
V CC
20
I o ut 1
11
D I 0
7
Io u t 2
12
D I 1
6
D I 2
5
R f b
9
D I 3
4
D I 4
16
V r ef
8
D I 5
15
D I 6
14
D I 7
13
I L E
19
W R 2
18
CS
W R 1
2
X f e
r
17
A G N D
3
U2
D A C 0832( 1)
20
I o ut 1
11
D I 0
7
I o ut 2
12
D I 1
6
D I 2
5
R f b
9
D I 3
4
D I 4
16
V r ef
8
D I 5
15
D I 6
14
D I 7
13
ILE
19
W R 2
18
CS
1
W R 1
2
X f e
r
17
A G N D
3
U7
D A C 0832( 2)
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
3,双缓冲方式的接口与应用
【 例 14】 DAC0832同步波形输出正弦波、锯齿波。
解,DAC0832与单片机的接口电路如上图所示。电路图中
DAC0832(1)输入寄存器地址为 0BFFFH,
DAC0832(2)输入寄存器地址为 0DFFFH,
0832(1)和 0832(2)的 DAC寄存器地址均为 7FFFH。
正弦波的产生由各采样点数据依次进行 D/A转换得到。
http://www.wenyuan.com.cn/webnew/
ORG 00H
START,MOV R1,#255 ; 256个取样点
MOV R2,#0 ; 锯齿波初值
LOOP,MOV DPTR,#0DFFFH ; DAC0832(2)输入寄存器地址
MOV A,R2
MOVX @DPTR,A ; 锯齿波送 DAC0832(2)
MOV DPTR,#DTAB ; 取信号数据表首地址
MOVC A,@A+DPTR ; 查表取正弦波信号数据
MOV DPTR,#0BFFFH ; DAC0832(2)输入寄存器地址
MOVX @DPTR,A ; 输出正弦波信号到 DAC0832(1)
MOV DPTR,#7FFFH ; DAC0832(1) DAC0832(2)DAC寄存器地址
MOVX @DPTR,A ; 同时启动两个 0832转换
INC R2
DJNZ R1,LOOP
SJMP START
双缓冲方式同步波形输出正弦波参考程序
http://www.wenyuan.com.cn/webnew/
10.4.2 数 /模转换芯片应用实例
DTAB,DB 80H,83H,86H,8DH,90H,96H,99H,9CH ;正弦数据表
DB 9FH,0A2H,0A5H,0A8H,0ABH,0AEH
DB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5H
DB 0C7H,0CAH,0CFH,0D1H,0D4H,0D6H,0D8H
DB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9H
DB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5H
DB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDH
DB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFH
DB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDH
DB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6H
DB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EBH
DB 0EAH,0E9H,0E7H,0E5H,0E3H,0E1H,0DFH,0DDH
DB 0DAH,0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH
DB 0C7H,0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H
DB 0B1H,0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH
DB 99H,96H,93H,90H,8DH,89H,86H,83H
DB 80H,80H,7CH,79H,76H,72H,6FH,6CH
DB 69H,66H,63H,60H,5DH,5AH,57H,55H
DB 51H,4EH,4CH,48H,45H,43H,40H,3DH
DB 3AH,38H,35H,33H,30H,2EH,2BH,29H
DB 27H,25H,22H,20H,1EH,1CH,1AH,18H
DB 16H,15H,13H,11H,10H,0EH,0DH,0BH
DB 0AH,09H,08H,07H,06H,04H,03H,02H
DB 02H,01H,00,00,00,00,00,00
DB 00,00,00,00,00,00,01H,02H
DB 02H,03H,04H,05H,06H,07H,08H,09H
DB 0AH,0BH,0DH,0EH,10H,11H,13H,15H
DB 16H,18H,1AH,1CH,1EH,20H,22H,25H
DB 27H,29H,2BH,2EH,30H,33H,35H,38H
DB 3AH,3DH,40H,43H,45H,48H,4CH,4EH
DB 51H,55H,57H,5AH,5DH,60H,63H,66H
DB 69H,6CH,6FH,72H,76H,79H,7CH,80H
END
双缓冲方式同步波形输出正弦波参考程序
http://www.wenyuan.com.cn/webnew/
10.5 模 /数转换接口
10.5.1 模 /数转换器概述
10.5.2 逐次逼近型模 /数转换芯片应用实例
http://www.wenyuan.com.cn/webnew/
10.5.1 模 /数转换器概述
A/D转换器用于实现模拟量到数字量的转换,按转换原理可分为四种,计数式 A/D转换器,双积分式 A/D转换器,逐次逼近式 A/D转换器和 并行式 A/D转换器。
目前最常用的是双积分式 A/D转换器和逐次逼近式 A/D转换器。
双积分式 A/D转换器 的主要优点是转换精度高,抗干扰性能好,价格便宜,但转换速度较慢。因此这种转换器主要用于转换速度要求不高的场合。
逐次逼近式 A/D转换器 是一种转换速度较快、精度较高的转换器。其转换时间大约在几微秒到几百微秒之间。
http://www.wenyuan.com.cn/webnew/
10.5.1 模 /数转换器概述
通常使用的逐次逼近式典型 A/D转换器芯片有:
ADC0801~ ADC0805型 8位 MOS型 A/D转换器,美国国家半导体公司产品。它是目前最流行的中速廉价型产品。片内有三态数据输出锁存器,单通道输入,转换时间约 100μs左右。
ADC0808/0809型 8位 MOS型 A/D转换器。可实现 8路模拟信号的分时采集,片内有 8路模拟选通开关,以及相应的通道地址锁存用译码电路,其转换时间为 100μs左右。
ADC0816/0817。这类产品除输入通道数增加至 16个以外,
其他性能与 ADC0808 /0809型基本相同。
http://www.wenyuan.com.cn/webnew/
10.5.1 模 /数转换器概述
A/D转换器的主要技术指标有:
分辨率 。以输出二进制的位数表示分辨率,位数越多,误差越小,转换精度越高。
相对精度 。相对精度是指实际的各个转换点偏理想特性的误差。在理想的情况下,所有的转换点应当在一条直线上。
转换速度 。它是指完成一次转换所需的时间。转换时间是指由启动转换命令到转换结束信号开始有效的时间间隔。
电源抑制 。在输入电压不变的前提下,当转换电路的供电电源电压发生变化时,对输出也会产生影响。这种影响可用输出数字量的绝对变化量来表示。
此外,尚有 功率损耗,温度系数,输入模拟电压范围 以及输出数字信号的逻辑电平 等指标。
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
1,ADC0809
ADC0809是典型的 8位 8通道逐次逼近式 A/D转换器,CMOS工艺;片内有 8路模拟开关,可对 8路模拟电压量实现分时转换。 ADC0809的引脚如下图所示,逻辑结构图如下图所示。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
28
27
26
25
24
23
22
21
20
19
18
17
16
15
A DC 0 8 0 9
IN2
IN1
IN0
A
B
C
A L E
D7
D6
D5
D4
D0
V
R E F
( - )
D2
IN3
IN4
IN5
IN6
IN7
S T A R T
E OC
D3
OE
CL K
V
CC
V
R E F
( + )
G ND
D1
ADC0809的引脚如下图
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
ADC0809逻辑结构图
http://www.wenyuan.com.cn/webnew/
ADC0809其引脚定义如下:
IN7-IN0,8条模拟量输入通道。
D7-D0,输出数据端。其中 D7是最高位 M SB,D0为最高位 LSB。
START:启动转换命令输入端。高电平有效。
EOC:转换结束指示脚。平时它为高电平,在转换开始后及转换过程中为低电平,转换结束,它又变回高电平。
OE:输出使能端。此脚为高电平,即打开输出缓冲器三态门,读出数据。
C,B和 A:通道号选择输入端。其中 A是 LSB位,这三个引脚上所加电平的编码为 000~ 111时,分别对应于选通通道 IN7~ IN0。
ALE:通道号锁存控制端。当它为高电平时,将 C,B和 A三个输入引脚上的通道号选择码锁存,也就是使相应通道的模拟开关处于闭合状态。实际使用时,常把 ALE和 START连在一起,在 START端加上高电平启动信号的同时,将通道号锁存起来。
CLK:外部时钟输入。 ADC809典型的时钟频率为 640KHz,转换时间为
100μs。时钟信号一般由单片机 ALE经分频得到;
VREF(+),VREF(-):两个参考电压输入端。
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
2,ADC0809接口及应用
ADC0809与单片机有 3种接口方式:
查询方式
中断方式
等待延时方式
ADC0809与 8051单片机的一种接口如下图所示。
电路连接及编程主要涉及两个问题,一是 8路模拟信号通道选择及启动 A/D转换,二是确认 A/D转换完成及转换数据的传送。
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
ADC0809与 8051单片机的连接
EA /V P
31
X1
19
X2
18
R ES ET
9
RD
17
WR
16
IN T0
12
IN T1
13
T0
14
T1
15
P10
1
P 1 1
2
P12
3
P13
4
P14
5
P15
6
P16
7
P17
8
P00
39
P01
38
P02
37
P03
36
P04
35
P05
34
P06
33
P07
32
P20
21
P21
22
P22
23
P23
24
P24
25
P25
26
P26
27
P27
28
P S EN
29
A LE /P
30
TX D
11
RXD
10
U3
805 1
D0
3
Q0
2
D1
4
Q1
5
D2
7
Q2
6
D3
8
Q3
9
D4
13
Q4
12
D5
14
Q5
15
D6
17
Q6
16
D7
18
Q7
19
OE
1
LE
11
U4
7 4 LS 3 7 3
CLK
3
D
2
SD
4
CD
1
Q
5
Q
6
U2A
7 4 LS 7 4 8
9
10
U1C
7 4 LS 0 2
4
5
6
U1B
7 4 LS 0 2
1
2
3
U1A
7 4 LS 0 2
+5 V
V CC
P 2,7
WR
RD
RD
WR
IN T
IN T1
A LE
A LE
A LE
V cc
V cc
GND
P 2,7
IN 0
26
D7
21
D6
20
IN 1
27
D5
19
D4
18
IN 2
28
D3
8
D2
15
IN 3
1
D1
14
D0
17
IN 4
2
EO C
7
IN 5
3
A
25
IN 6
4
B
24
C
23
IN 7
5
A LE
22
V ref( - )
16
OE
9
S T A R T
6
V ref( + )
12
CLK
10
U5
ADC0809
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
2,ADC0809接口及应用
(1) 八路模拟通道选择及启动 A/D转换
A,B,C分别接地址锁存器提供的低三位地址,只要把三位地址写入 ADC0809中的地址锁存器,就实现了模拟通道选择。
图中使用的是线选法,口地址由 P2.7确定,同时和相或取反后作为开始转换的选通信号。因此该 ADC0809的通道地址确定如下:
若无关位都取 1,则 8路通道 IN0~ IN7的地址为 7FF8H~
7FFFH。
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
2,ADC0809接口及应用
(1) 八路模拟通道选择及启动 A/D转换从上图中可以看到,把 ADC0809的 ALE信号与 START信号连接在一起了。这样使得在 ALE信号的前沿写入地址信号,紧接着在其后沿就启动转换。
启动图中的 ADC0809进行转换只需要下面的指令 (以通道 0为例 ):
MOV DPTR,#7FF8H ; 选中通道 0
MOVX @DPTR,A ; WR信号有效,启动转换
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
2,ADC0809接口及应用
(2) 转换完成的确认和数据的传送
A/D转换后得到的是数字量的数据,这些数据应传送给单片机进行处理。数据传送的关键问题是如何确认 A/D转换完成,
因为只有确认数据转换完成后,才能进行传送。为此可采用下述三种方式。
① 定时传送方式对于一种 A/D转换器来说,转换时间作为一项技术指标是已知的和固定的。例如,若 ADC0809转换时间为 128μs,相当于 6MHz的 MCS-51单片机的 64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用这个延时子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
2,ADC0809接口及应用
(2) 转换完成的确认和数据的传送
② 查询方式
A/D转换芯片有表明转换完成的状态信号,ADC0809的 EOC端就是转换结束指示脚。因此可以用查询方式,软件测试 EOC
的状态,即可确知转换是否完成,然后进行数据传送。
③ 中断方式把表明转换完成的状态信号 (EOC)作为中断请求信号,以中断方式进行数据传送。
在图中,EOC信号经过反相器后送到单片机的 INT1,因此可以采用查询该引脚或中断的方式进行转换后数据的传送。
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
2,ADC0809接口及应用
(2) 转换完成的确认和数据的传送不管使用上述哪种方式,只要一旦确认转换完成,即可通过指令进行数据传送。首先送出口地址并以 RD作选通信号,
当 RD信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接收,即:
MOV DPTR,#7FF8H ; 选中通道 0
MOVX A,@DPTR,; RD信号有效,输出转换后的数据到 A累加器
http://www.wenyuan.com.cn/webnew/
10.5.2 逐次逼近型模 /数转换芯片应用实例
【 例 15】 对上图所示的接口电路巡回检测从 IN0~ IN7输入的 8
路模拟电压信号,检测数据依次存放在 60H开始的内存单元中。
解:电路中 ADC0809的时钟由单片机 ALE引脚的信号经分频提供。
ADC 0809 IN0~ IN7的地址为 7FF8H~ 7FFFH,启动 A/D转换的关键指令为,MOV DPTR,#地址,和,MOVX @DPTR,A”。
读入数据的关键指令为,MOV DPTR,#地址,和,MOVX A,
@DPTR”。
用中断方式来完成转换后数据的传送的源程序如下,也可以用查询的方式实现,源程序如下。
http://www.wenyuan.com.cn/webnew/
ORG 0000H ; 主程序入口地址
AJMP MAIN ; 跳转主程序
ORG 0013H ; INT1中断入口地址
AJMP INT1 ; 跳转中断服务程序
ORG 0030H
MAIN,MOV R0,#60H ; 数据暂存区首址
MOV R2,#08H ; 8路计数初值
SETB IT1 ; INT1边沿触发
SETB EA ; 开中断
SETB EX1 ; 允许 INT1中断
MOV DPTR,#7FF8H ; 指向 0809 IN0通道地址
MOV A,#00H ; 此指令可省,A可为任意值
LOOP,MOVX @DPTR,A ; 启动 A/D转换
HERE,SJMP HERE ; 等待中断
DJNZ R2,LOOP ; 巡回未完继续
ORG 0060H
INT1,MOVX A,@DPTR ; 读 A/D转换结果
MOV @R0,A ; 存数
INC DPTR ; 更新通道
INC R0 ; 更新暂存单元
RETI ;返回中断方式来完成转换后数据的传送的源程序
http://www.wenyuan.com.cn/webnew/
ORG 0000H ; 主程序入口地址
AJMP MAIN ; 跳转主程序
ORG 1000H
MAIN,MOV R0,#60H
MOV R2,#08H
MOV DPTR,#7FF8H
MOV A,#00H
L0,MOVX @DPTR,A
L1,JB P3.3,L1 ; 查询 INT1是否为 0
MOVX A,@DPTR ; INT1为 0,则转换结束,读出数据
MOV @R0,A
INC R0
INC DPTR
DJNZ R2,L0
SJMP $
查询方式来完成转换后数据的传送的源程序
http://www.wenyuan.com.cn/webnew/
10.6 单片机应用系统实例
10.6.1 空调机温度控制系统
10.6.2 步进电机控制器
http://www.wenyuan.com.cn/webnew/
10.6.1 空调机温度控制系统
1,设计要求用 MCS-51单片机设计一个空调机的温控系统。具体要求如下:
实时测量环境温度,并显示当前温度值。
当室温度高于设定温度,压缩机运转,使室温降低。
当室温低于设定温度,压缩机停止运转。
温度设定功能,通过按键输入压缩机启停的温度设定值。
设定温度过程中显示设定温度值,以便于操作。设定完毕后,改为显示当前测定温度值。
http://www.wenyuan.com.cn/webnew/
10.6.1 空调机温度控制系统
2,总体方案
(1) 系统设计
根据设计要求,设计出温度控制系统的基本结构框图如下图所示。
系统由四个主要功能模块组成:温度测量、按键输入,数码显示以及控制压缩机启停模块。
温度测量模块 的主要功能是将环境温度转化为电参数 (电压 ),并通过
A/D转换得到数字量送入单片机。
按键输入模块 主要功能是实现设定温度值的输入。
LED显示模块 主要功能是显示当前环境温度值。因空调对温度精度要求不高,本例只要求显示两位整数的温度值。
压缩机控制模块 主要功能是单片机根据环境温度与设定温度的比较结果送出开关信号、控制压缩机的启停。
http://www.wenyuan.com.cn/webnew/
10.6.1 空调机温度控制系统
2,总体方案
(1) 系统设计压缩机控制执行
L E D 显示 单片机 按键输入温度测量温度控制系统的基本结构框图
http://www.wenyuan.com.cn/webnew/
10.6.1 空调机温度控制系统
2,总体方案
(2) 关键技术
本系统中的关键技术是如何 实时测量室内温度 。在对外界物理量如温度、湿度、压力等进行测量时,首先要解决的问题是如何将这些非电量转换为电参数 (电阻、电压、电流 ),其次,是如何将模拟量 (电压 )转换为数字量。
显然对温度的测量,温度传感器是必不可少的。温度传感器的种类、型号很多。在本例中选用的是 AD590温度传感器。
http://www.wenyuan.com.cn/webnew/
10.6.1 空调机温度控制系统
3,硬件设计系统的硬件电路包括主机、温度控制、压缩机的控制、按键及显示 5个部分,系统硬件电路原理图如下图所示。
a
b f
c
g
d
e
D P Y
7
6
4
2
1
9
10
a
b
c
d
e
f
g
3
D S 1 D P Y _ 7 - SEG
a
b f
c
g
d
e
D P Y
7
6
4
2
1
9
10
a
b
c
d
e
f
g
3
D S 2 D P Y _ 7 - SEG
S1 SW - PB
R5
1k Ω
C3
1 0 μ F
C1
30pF
C2
30pF
12MHz
Q1
P N P
D1
4004
A
- +
K1
GND
GND
V
CC
GND
+
1
_
2
NC
3
U7 AD59 0
V
CC
3
2
6
1 5
7
4
U9
741
3
2
6
1 5
7
4
U8
741
3
2
6
1 5
7
4
U10
741
A
7
B
1
C
2
D
6
LT
3
B I /RB O
4
RB I
5
a
13
b
12
c
11
d
10
e
9
f
15
g
14
U1
7 4 L S 4 7
A
7
B
1
C
2
D
6
LT
3 B I /RB O
4
RB I
5
a
13
b
12
c
11
d
10
e
9
f
15
g
14
U4
7 4 L S 4 7
S2 SW - PB
R2 0
20kΩ
R2 5
1kΩ
R1 7
10kΩ
R1 6
10kΩ
R1 8 10kΩ
R2 1
5kΩ
R2 6
1kΩ
R1 9
10kΩ
R1
R2
R3
R4
R6
R7
R9
R1 0
R1 1
R1 2
R1 3
R1 4
R1 5
V
CC
Vcc
V
CC
V
CC
EA /V P
31
X1
19
X2
18
RES ET
9
RD
17
WR
16
I N T0
12
I N T1
13
T0
14
T1
15
P10
1
P 1 1
2
P12
3
P13
4
P14
5
P15
6
P16
7
P1 7
8
P00
39
P01
38
P02
37
P03
36
P04
35
P05
34
P06
33
P07
32
P20
21
P21
22
P22
23
P23
24
P24
25
P25
26
P26
27
P27
28
PSEN
29
A L E/P
30
TX D
11
RX D
10
U3
8051
CL K
3
D
2
SD
4
CD
1
Q
5
Q
6
U2A
7 4 L S 7 4
+ 5 V
V CC
WR
RD
RD
WR
I N T1 I N T1
A L E
A L E
V
CC
V
CC
1 2
U6A
7 4 L S 0 4
5 6
U6C
7 4 L S 0 4
3
4
U6B
7 4 L S 0 4
GND
V
CC
R2 3
2k Ω
GND
+ 1 2 V
R2 4
50kΩ
R2 2 100kΩ
+ 1 2 V
+ 1 2 V
- 12V
- 12V
GND
GND
- 12V
RES ET
RES ET
X1
X2
X1
X2
GND
V
CC
P 3,0
P 3,0
220V
零位调整放大 10 倍
O P A 1
O P A 2
O P A 3
压缩机
200Ω
- 12V
R8
I N 0
26
D7
21
D6
20
I N 1
27
D5
19
D4
18
I N 2
28
D3
8
D2
15
I N 3
1
D1
14
D0
17
I N 4
2
EO C
7
I N 5
3
A
25
I N 6
4
B
24
C
23
I N 7
5
A L E
22
V r e f ( - )
16
OE
9
S T A R T
6
V r e f ( + )
12
CL K
10
U5
A D C0 8 0 9
温度控制系统电路原理图
http://www.wenyuan.com.cn/webnew/
10.6.1 空调机温度控制系统
4,软件设计
(1) 系统资源分配内部 RAM分配情况。
(2) 软件设计流程主要包括 5个模块:
主程序
按键设定温度模块
十进制调整和数据转换模块
控制模块
显示模块
N
Y
Y
初始化显示读 A D0 8 0 9
设定温度值有键按下?
数据转换
N
开始室温 > 设定值?
启动压缩机恢复现场关压缩机返回启动 A /D 转换开始主程序流程图
http://www.wenyuan.com.cn/webnew/
10.6.1 空调机温度控制系统
5,系统调试与脱机运行
完成了硬件设计、制作和软件编程之后,要使系统能够按设计意图正常运行,必须进行系统调试。
系统调试包括 硬件调试 和 软件调试 两个部分,软硬件的调试是不可能绝对分开的,硬件的调试常常需要利用调试软件,软件的调试也可能需要通过对硬件的测试和控制来进行。
http://www.wenyuan.com.cn/webnew/
10.6.1 空调机温度控制系统
5,系统调试与脱机运行
(1) 硬件调试硬件的调试主要是把电路各种参数调整到符合设计要求,
排除硬件故障,其中包括设计错误和工艺性故障。
(2) 软件调试软件调试的任务是利用开发工具进行在线仿真调试,发现和纠正程序错误,同时也能发现硬件故障。
(3) 脱机运行软件调试成功之后,可以用编程器将程序固化到 89S51的
FLASH ROM中,插入 89S51芯片,接上电源脱机运行。既然硬件都已调试成功,脱机运行一般也能成功。为了保证软件运行的稳定可靠,在软件中可采取加软件陷井和看门狗的办法,避免程序跑飞。
http://www.wenyuan.com.cn/webnew/
10.6.2 步进电机控制器
1,设计要求设计一个步进电机控制器。要求能从键盘上输入步进电机转数,控制步进电机的正、反转及启停,并显示转数。具体要求如下:
(1) 键盘设计 如下图所示。
0~ 9:数字键。
*:正逆转转数设定完成后,按,*” 启动步进电机。
#:清除设定为正转及转数为 00。
A:设定正逆转。按,A”键则 LED指示灯亮,表示逆转,再按则 LED指示灯灭,表示正转。
http://www.wenyuan.com.cn/webnew/
10.6.2 步进电机控制器
(2) 控制过程
① 送电时,设定为正转,显示器显示,00”。
② 输入转数,显示器将显示输入的转数,按,A”设定正逆转,
LED指示灯亮表示逆转,LED指示灯灭表示正转,然后按
,*”,步进电机开始运转。
③ 步进电机每转一转,显示器减 1,直至 00,步进电机停止运转。
键 盘 键 盘 内 码
1 2 3 A 01 02 03 0C
4 5 6 B 04 05 06 0D
7 8 9 C 07 08 09 0E
* 0 # D 0A 00 0B 0F
控制步进电机键盘的设计
http://www.wenyuan.com.cn/webnew/
10.6.2 步进电机控制器
2,总体方案
(1) 系统设计根据功能要求设计本控制系统的结构框图如下图所示。
(2) 关键技术本系统中键盘模块及显示模块是我们比较熟悉的,因此本系统设计中的关键是解决步进电机的控制技术。
显示 单片机步进电机控制键盘 步进电机控制器结构框图
http://www.wenyuan.com.cn/webnew/
10.6.2 步进电机控制器
3,硬件设计根据系统要求,设计的硬件电路如下图所示。
系统由键盘输入转数,设定正反转后,按确认键。单片机则根据设定由 P1口送出控制码经 74LS04和达林顿管驱动步进电机转动。同时,LED数码管显示设定的转数,步进电机每转动一圈,数码显示的数字减 1,当减至零时,步进电机停止转动。
http://www.wenyuan.com.cn/webnew/
步进电机控制器电路
http://www.wenyuan.com.cn/webnew/
10.6.2 步进电机控制器
4,软件设计程序设计流程图如下图所示,主要含四大模块:数字输入模块、键盘扫描模块、电机控制模块、电机转向设定模块。
,#,键
,*,键
,A,键 数字键初始化根据设定控制电机转动并显示键扫描程序改控制码取码指针
P 3,0 取反 数据处理存 30H,31H
显 示开 始程序设计流程图
http://www.wenyuan.com.cn/webnew/
本章小结
主要 围绕单片机应用系统开发为核心 展开。首先,对单片机应用系统开发作一简要介绍。让读者对开发过程、开发环境、工具有初步的了解。然后,分别介绍组成单片机应用系统的四大模块技术:键盘、显示、数模转换、模数转换。最后介绍两个实用性较强的单片机应用系统实例。
一个按键实际上就是一个开关。多个按键组合在一起就构成键盘,键盘可分为 独立式键盘 和 矩阵式 (也叫行列式 )键盘 两种,MCS-51可方便地与这两种键盘接口。独立式键盘配置灵活,软件识别简单,但占用 I/O口线多,不适合较多按键的键盘。矩阵式键盘占用 I/O口线少,节省资源。
矩阵式键盘一般采用扫描方式识别按键,软件设计相对复杂,但只要学会调用本章实例所提供的子程序,用起来就很简单。使用机械式按键时,应注意去抖。
http://www.wenyuan.com.cn/webnew/
本章小结
与单片机接口的 常用显示器件 分为 LED和 LCD两大类。 LED
显示器 可分为 LED状态显示器 (发光二极管 ),LED七段显示器 (数码管 ),LED十六段显示器和 LED点阵显示器 (大屏幕显示 )。重点介绍了 MCS-51单片机与 LED七段显示器的接口技术,所列实例介绍了常用的显示技术。包括一位 LED静态显示、多位 LED静态显示、多位 LED动态显示等的原理与编程。
LCD显示 可分为笔段型、字符型和点阵图形型。不含控制器的 LCD还需另外选配相应的控制器和驱动器才能工作。
本章介绍了最常用的笔段型 LCD数码显示技术。液晶显示模块是把显示控制器、驱动器用厚膜电路做在显示模块印刷底板上,只需通过控制器接口外接数字信号即可;用起来比较容易方便。电子市场上有品种众多的液晶显示模块。
使用时读者可到网上查阅相关资料。
http://www.wenyuan.com.cn/webnew/
本章小结
A/D和 D/A转换器 是计算机与外界联系的重要途径。本章介绍了 D/A转换芯片 DAC0832的工作原理,并详细介绍了
DAC0832直通方式、单缓冲方式和双缓冲方式的接口及应用。
A/D转换技术主要介绍 ADC0809与 MCS-8051的接口电路,叙述了 A/D转换后二者间的数据传送方式,即定时传送方式、
查询方式和中断方式。还通过 8路模拟量输入巡回检测系统实例,详细介绍了二者间数据传送的编程方法。
各模块技术的学习最终是为了设计有实际用途的单片机应用系统。本章设计了两个实用性很强的单片机应用系统实例。由此可以使读者将所学知识加以系统化并用于实践。
http://www.wenyuan.com.cn/webnew/
本章小结
单片机应用系统的设计 采取软件和硬件相结合的方法。通过对系统的目标、任务、指标要求等的分析,确定功能技术指标的软硬件分工方案是设计的第一步;分别进行软硬件设计、制作、编程是系统设计中最重要的内容;软件与硬件相结合对系统进行仿真调试、修改、完善是系统设计的关键,也是提高单片机应用水平的重要途径。
http://www.wenyuan.com.cn/webnew/
习 题
1,机械式按键组成的键盘,应如何消除按键抖动?独立式按键和矩阵式按键分别具有什么特点?适用于什么场合?
2,分析比较 LED静态显示与动态扫描显示的特点以及适用场合。
3,在用共阳极数码管显示的电路中,如果直接将共阳极数码管换成共阴极数码管,能否正常显示?为什么?应采取什么措施?
4,七段 LED显示静态显示和动态显示分别具有什么特点,实际设计时应如何选择使用?
5,要实现 LED动态显示需不断调用动态显示程序,除采用子程序调用法外,
还可采用其他什么方法?试比较其与子程序调用法的优劣。
6,DAC0832与 8051单片机接口时有哪些控制信号?作用分别是什么?
ADC0809与 8051单片机接口时有哪些控制信号?作用分别是什么?
7,使用 DAC0832时,单缓冲方式如何工作?双缓冲方式如何工作?软件编程有什么区别?
http://www.wenyuan.com.cn/webnew/
习 题
8,设计交通信号灯控制系统,能够完成正常情况下的轮流放行以及特殊情况和紧急情况下的红绿灯控制。具体要求如下。
(1) 正常情况下 A,B道 (A,B道交叉组成十字路口,A是主道,B是支道 )
轮流放行,A道放行 1分钟 (其中 5s用于警告 ),B道放行 30s(其中 5s用于警告 )。
(2) 一道有车而另一道无车时,使有车车道放行 5s,无车车道然后放行。
(3) 有紧急车辆通过时,A,B道均为红灯。
9,设计并制作出具有如下功能的电脑钟。
(1) 自动计时,由 6位 LED显示时、分、秒。
(2) 具备校准功能,可以直接由 0~ 9数字键设置当前时间。
(3) 具备定时闹钟功能。
(4) 一天时差不超过 1秒钟。
http://www.wenyuan.com.cn/webnew/
Q & A?
Thanks!