第四章 MCS-51系列单片机接口及其应用系统设计_第1页
第四章 MCS-51系列单片机接口及其应用系统设计_第2页
第四章 MCS-51系列单片机接口及其应用系统设计_第3页
第四章 MCS-51系列单片机接口及其应用系统设计_第4页
第四章 MCS-51系列单片机接口及其应用系统设计_第5页
已阅读5页,还剩81页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理与应用沈阳理工大学装备工程学院第四章MCS-51系列单片机接口及其应用系统设计4.1LED数码管及其应用系统设计4.2键盘及其应用系统设计4.3A/D转换器及其应用系统设计4.4D/A转换器及其应用系统设计4.1LED数码管及其应用系统设计4.1.1LED数码管结构与原理4.1.2LED数码管的显示方式4.1.3共阴极LED和共阳极LED的应用4.1.1LED数码管结构与原理

在单片机应用系统中,使用的显示器主要有:LED(发光二极显示管)、LCD液晶显示器、CRT等。

LED(LightEmittingDiode,发光二极管)是单片机应用系统中常用的输出设备,LED由发光二极管构成,具有结构简单、价格便宜、配置灵活、与单片机接口方便等特点。通常使用7段LED数码管,它由7个发光二极管组成。这7个发光二极管a~g呈“日”字形排列,其结构及连接如图4-1所示。当某个发光二极管导通时,相应地点亮某一点或某一段笔画,通过发光二极管不同的亮暗组合形成不同的数字、字母及其其他符号。图4-1七段数码管结构LED数码管的结构及分类LED数码管中的发光二极管有两种接法:(1)所有发光二极管的阳极连接在一起,这种连接方法称为共阳极接法(如图4-2a)。(2)所有发光二极管的阴极连接在一起,这种连接方法称为共阴极接法(如图4-2b)。共阳极的LED为低电平时,对应的段码被点亮;共阴极的LED为高电平时,对应的段码被点亮。一般共阴极可以不外接电阻,但共阳极中的发光二极管一定要外接电阻。ab图4-2发光二极管的接法LED数码管的发光二极管亮暗组合实质上就是不同电平的组合,也就是为LED数码管提供不同的代码,这些代码称为字形代码。7段发光二极管加上1个小数点dp共计8段,字形代码与这8段的关系如表4-1。数据字D7D6D5D4D3D2D1D0LED段dpgfedcba表4-1

字形代码与十六进制数的对应关系部分如表4-2所示。从表中可以看出共阴极与共阳极的字形代码互为补数。表4-24.1.2LED数码管的显示方式

在单片机应用系统中一般需使多个LED数码管,多个LED数码管是由N根位选线和8XN根段选线连接在一起的,根据显示方式不同,位选线与段选线的连接方法也不相同。段选线控制字符选择,位选线控制显示位的亮或暗。N个LED数码管的连接方式如图4-3所示。图4-3多个数码管的连接方式LED数码管显示有静态显示和动态显示两种方式:

静态显示就是当LED数码管要显示一个字符时,相应的发光二极管恒定地导通或截止(如图4-4)。优点是显示数据稳定,占用CPU时间少。但是采用这种显示方式时需要一个8位输出口控制,所以占用硬件多,如果单片机系统中有多个LED数码管需进行扩展。图4-4多个LED静态显示连接方法动态显示就是一位一位地轮流点亮各位数码管,CPU需要时刻对数码管进行刷新,显示数据有闪烁感,占用CPU的时间较长(如图4-5)。并且数码管的点亮既与点亮时的导通电流有关,也与点亮时间、间隔时间的比例有关。调整电流和时间的参数,可实现亮度较高,较稳定的显示。同时占用的I/O口较少。图4-5多个LED动态显示连接方法4.1.3共阴极LED和共阳极LED的应用(1)设计要求在某系统中有1位共阴极LED数码管和1位共阳极LED数码管,要求数码管1循环显示0~9,当按下按钮1时,数码管2显示数码管1的当时值。当按下按钮2时,清除数码管2的所显示的值。(2)设计分析最小的单片机系统+数码管(共阴、共阳)+按钮(INT0、INT1)(3)系统原理图设计

单片机AT89C51瓷片电容CAP30pf晶振CRYSTAL12MHz电阻RES按钮BUTTON7SEG-COM-AN-BLUE7SEG-COM-CAT-GRN(4)程序流程图设计

数码管显示字符,一般是通过调用Table字库来进行的。由于该系统中采用两种类型的数码管(共阴极和共阳极LED),因此需要调用两个不同的字库,如果使用汇编来编写此程序,则比较困难;使用C语言,相对来讲就容易,因此我们采用C语言来编写此程序。使用C语言编写程序时,首先编写好Tab1和Tab2这两个库,其中一个为共阳极LED的段码值,另一个为共阴极LED的段码值。程序使用两个外部中断INT0和INT1,其中INT0用来控制LED2显示字符与LED1显示字符相同,INT1使LED2不显示。使用单片机软件延时计数。开始中断设置j+1J>10将Tabl1[j]送P2j++J清零YN中断0子程序将Tab2[j]送p1中断返回中断1子程序p1清零中断返回程序流程图(5)源程序设计(C语言)#include<reg51.h>#defineuintunsignedint#defineucharunsignedcharucharj;uchart;uintn;constuchartab1[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};constuchartab2[]={0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90,};voiddelay(uintn){uinti; for(i=0;i<n;i++); for(i=0;i<n;i++); for(i=0;i<n;i++); for(i=0;i<n;i++); }voidInt0_server_(void)interrupt0{ uchara; a=tab2[j]; P1=a; }voidInt1_server_(void)interrupt2{P1=0x00;} voidInit_Int(void){EX0=1;IT0=1;EX1=1;IT1=0;EA=1;}voidmain(void){ P1=0x00; Init_Int();while(1){ for(j=0;j<10;j++) { P2=tab1[j]; delay(65000); } }}(6)系统调试与仿真1)keilc调试;2)proteus调试;3)联合调试;4)仿真结果。

单片机应用系统的设计与实现综合设计大作业:查询相关资料,设计一个你最感兴趣的单片机系统。该作业为综合设计,取代传统的考试,需3-5周的课外时间,自本章开始,每个学生根据自己的爱好,自拟课题。老师在授课过程中或利用课外时间,对学生的选题、设计思路、设计方法等进行辅导;同时对设计的过程进行有效监督,确保学生能够高质量地完成设计任务;并在本课程结束时,对学生的设计内容、设计质量、设计效果及设计论文等进行考核和验收。单片机应用系统的设计与实现本作业与课外设计作业一相呼应,可使同学们深刻认识到:没有什么克服不了的困难,只要掌握科学合理的教与学的方法,

设计能力和实践能力肯定能够大幅度地提高,每个学生都有能力实现自己的梦想,

都能创造辉煌灿烂的未来。单片机应用系统的设计与实现从现在开始,你完全可以利用你所学的知识,

设计一个你最喜爱的单片机应用系统!相信老师,

相信你自己,你肯定能够成功!!!4.2键盘及其应用系统设计4.2.1键盘的应用4.2.2键盘的工作原理4.2.3矩阵式键盘的识别键盘是由若干个按键组成的,是向系统提供操作人员的干预命令及数据的接口设备。在单片机应用能够系统中,为了控制系统的工作状态,以及向系统中输入数据时,键盘是不可缺少的输入设备,它是实现人机对话的纽带。如:复位用的复位键、功能转换用的功能键、数据输入用的数字键盘等。4.2.1键盘的应用

键盘按其结构形式可分为编码键盘和非编码键盘两种:

编码键盘通过硬件的方法产生键码,能自动识别按下的键并产生相应的键码值,以并行或串行的方式发送给CPU,它接口简单,响应速度快,但需要专门的硬件电路。

非编码键盘通过软件的方法产生键码,它不需要专用的硬件电路,结构简单、成本低廉,但响应速度不如编码键盘快。为了减少复杂程度,节省单片机的I/O接口,在单片机应用系统中广泛采用非编码键盘。

键盘是由按键构成的,每一个按键都被赋予特定的功能,它们通过接口电路与单片机连接,通过软件了解按键的状态及键输入的信息,并转去执行该键的功能处理程序。键盘的接口方法有多种,但键的输入过程与软件结构基本是一样的。MCS-51单片机按键输入过程如图所示。4.2.2键盘的工作原理键在闭合与断开的瞬间均有抖动过程如图所示:键的闭合与否通常用高、低电平来进行检测。键闭合时,该键为低电平;键断开时,该键为高电平。键的闭合与断开都是利用其机械弹性,由于机械弹性的作用,键在闭合与断开的瞬间均有抖动过程,抖动的时间一般为5~10ms。按键的稳定闭合期由操作人员的按键动作所决定。为了使CPU对键的一次闭合仅做一次键输入处理,必须去抖动。去抖动有硬件的方法和软件的方法两种:

硬件去抖方法:如滤波防抖电路、由RS触发器构成的双稳态去抖电路。

软件去抖法:就是检测到有按键按下时,执行一个10~20ms的延时子程序后,再确认该键是否仍保持闭合状态.若仍闭合,则确认为此键按下,消除了抖动的影响。

在键盘操作过程中,当有两个或两个以上的键被同时按下时,哪个按键有效完全取决于开发者的设计。独立式键盘直接用I/O口线构成.每个按键接一根I/O口线,各键的工作状态互不影响。独立式键盘电路按其工作方式不同又分为:查询式(图a)和中断式(图b)。(a)查询式(b)中断式

矩阵式键盘又称为行列式键盘。用I/O口线组成行、列结构,行列线分别连在按键开关的两端,列线通过上拉电阻至电源,使列线在无按键时处于高电平状态按键设置在行、列线的交叉点上。例如:用3X3的行列结构可构成9个键的键盘,用4X4的行列结构可构成16个键的键盘。键编码与键值:一组按键或键盘都要通过I/O线查询按键的开关状态。根据键盘结构不同,采用不同的编码方法。但无论有无编码,以及采用什么编码,最后都要转换成为与累加器中的数值相对应的键值,以实现按键功能程序的散转。编码方法:(1)用键盘连接的I/O线的二进制组合表示键码(2)顺序排列键码(3)随机排列键码……用键盘连接的I/O线的二进制组合表示键码:可用一个8位I/O线的高低4位口线的二进制组合表示16个键的编码。顺序排列键码:键值的形成要根据I/O线的状态作相应处理。键码可按:键码=行首键码+列号4.2.3矩阵式键盘的识别(1)设计要求设计一个4X4的矩阵式键盘,以P3.0~P3.3作为行线,以P3.4~P3.7作为列线,在数码管上显示每个按键的“0~F”序号。(2)设计分析最小的单片机系统+数码管(共阴或共阳)+按钮(矩阵式键盘)(3)系统原理图设计

单片机AT89C51瓷片电容CAP30pf晶振CRYSTAL12MHz电阻RES按钮BUTTON7SEG-COM-CATHODE(4)程序流程图设计如果有键按下,则相应输入为低电平,否则为高电平。首先设置P3.0为低电平,检测P3.4~P3.7列是否为低电平。如果为低电平,则转入相应的显示子程序中。否则再设置P3.1为低电平,检测P3.4~P3.7列是否为低电平……这样,以首先设置相应的行为低电平,然后再检测相应列是否为低电平的方式来实现键盘的扫描。当按键为低电平时,就转到相应显示子程序中。(5)源程序设计(汇编语言)ORG0000H

AJMPMAIN

ORG0100HMAIN:MOVP2,#000HKEY0:MOVP3,#0FEHJNBP3.4,K0JNBP3.5,K1JNBP3.6,K2JNBP3.7,K3MOVP3,#0FDHJNBP3.4,K4 JNBP3.5,K5 JNBP3.6,K6 JNBP3.7,K7 MOVP3,#0FBH JNBP3.4,K8 JNBP3.5,K9 JNBP3.6,K10 JNBP3.7,K11 MOVP3,#0F7HJNBP3.4,K12 JNBP3.4,K12 JNBP3.5,K13 JNBP3.6,K14 JNBP3.7,K15 AJMPKEY0K0:MOVP2,#03FH;0ACALLYSH1S AJMPKEY0 RETK1:MOVP2,#006H;1ACALLYSH1S AJMPKEY0 RETK2:MOVP2,#05BH;2ACALLYSH1S AJMPKEY0 RETK3:MOVP2,#04FH;3ACALLYSH1SAJMPKEY0 RETK4:MOVP2,#066H;4ACALLYSH1SAJMP KEY0 RETK5:MOVP2,#06DH;5ACALLYSH1S AJMPKEY0 RETK6:MOVP2,#07DH;6ACALLYSH1SAJMPKEY0 RETK7:MOVP2,#007H;7ACALLYSH1SAJMPKEY0 RETK8:MOVP2,#07FH;8ACALLYSH1SAJMPKEY0 RETK9:MOVP2,#06FH;9ACALLYSH1S AJMPKEY0 RETK10:MOVP2,#077H;AACALLYSH1SAJMPKEY0 RETK11:MOVP2,#07CH;BACALLYSH1SAJMPKEY0 RETK12:MOVP2,#039H;CACALLYSH1SAJMPKEY0 RETK13:MOVP2,#05EH;DACALLYSH1SAJMPKEY0 RETK14:MOVP2,#079H;EACALLYSH1SAJMPKEY0 RETK15:MOVP2,#071H;FACALLYSH1S AJMPKEY0 RETYSH1S:MOV

R3,#05HLOOP:MOV

R4,#0A8HLOOP1:MOV

R5,#08AHXHD:DJNZR5,XHDDJNZR4,LOOP1DJNZR3,LOOPRETEND(6)系统调试与仿真1)keilc调试;2)proteus调试;3)联合调试;4)仿真结果。

单片机应用系统的设计与实现现在你是否感觉到:单片机应用系统的设计其实很简单,每个同学都能够利用所学的知识,

设计单片机应用系统!

自信来源于能力的提升,

相信你们自己,你们每个人都能够成功!!!4.3A/D转换器及其应用系统设计

4.3.1模/数转换器概述

4.3.2模/数转换器与单片机的接口

4.3.3模/数转换器的应用4.3.1模/数转换器概述模/数转换器(A/D转换器):能够将模拟信号转换成数字信号的器件称为模/数转换器(ADC,AnalogtoDigitalConverter)。在单片机测控应用系统中,被采集的实时信号有许多是连续变化的物理量。由于计算机只能处理数字量,所以就需要将连续变化的物理量转换成数字量,即A/D转换。这就涉及到A/D转换的接口问题。在设计A/D转换器与单片机接口之前,一定要根据A/D转换器的技术指标选择A/D转换器芯片。A/D转换器的主要技术指标:

量化间隔和量化误差。量化间隔可用下式表示:

量化误差可用下式表示:

A/D转换器芯片的种类:按原理分:逐次比较式,ADC0801-0805,0808/0809

双重积分式,ICL7106/7107/7126,

MC14433/5G14433量化反馈式,并行式,…按其分辨率分:

8位A/D转换器,ADC08xx/08xx

12位A/D转换器,AD574

16位A/D转换器,…4.3.2模/数转换器与单片机的接口A/D转换器与单片机接口主要涉及到:(1)数字量输出线的连接(2)AD的启动方式(3)转换结束处理方式(4)时钟的连接等。(1)A/D转换器数字量输出线的连接与A/D转换器内部结构有关:

1)对于内部带有三态锁存器的可直接与与单片机相连,如ADC0809、AD574等;

2)对于内部不带有三态锁存器的,一般通过锁存器或并行I/O接口与与单片机相连;

3)在某些情况下,为了增强控制功能,对于那些内部带有三态锁存器的,也常采用并行I/O接口与与单片机相连;

4)随着位数的不同,A/D转换器与单片机的连接方法也不同。对于8位A/D转换器可与8位单片机数据线对应相连,对于12或16位A/D转换器必须增加控制逻辑,把数据分两次或多次进行读取。(2)AD的启动方式A/D转换器开始转换时必须加一个启动转换信号,该信号有单片机提供。

不同型号的A/D转换器对于启动转换信号要求也不同,一般分为脉冲启动和电平启动两种方式。

对于脉冲启动型,只要给其启动端加一个符合要求的脉冲信号即可。如ADC0809、ADC574等;

对于电平启动型,当把符合要求的电平加到启动控制端时,立即开始转换,在转换过程中必须保持这一电平,否则会停止转换。如AD570、AD571等。(3)转换结束处理方式当AD转换结束时,A/D转换器输出一个转换结束标志信号,通知单片机读取转换结果。单片机检查判断转换结束的方法:

1)中断法把A/D转换器转换结束标志信号接到单片机中断引脚;

2)查询法把A/D转换器转换结束标志信号接到单片机某一I/O口线上。(4)时钟的连接时钟的频率是决定芯片转换速度的基准。整个AD转换的过程都是在时钟的作用下完成的。AD转换时钟的提供方法:

1)由芯片内部提供,不允许外加电路。如AD574;2)由外部提供,有的用单独的振荡电路产生,更多的是把单片机输出的时钟经分频后,送到AD转换器的时钟输出端。4.3.3模/数转换器的应用(1)ADC0808的外形及引脚功能ADC0808是一种8路模拟输入的8位逐次逼近式ADC,其外形如图,各引脚功能如下。

1)IN0~IN7:8路模拟量输入端。

2)ADDA、ADDB、ADDC:模拟量输入通道地址选择线,其8位编码分别对应IN0~IN7(xxx).

3)ALE:地址锁存端。

4)START:ADC转换启动信号,正脉冲有效,引脚信号要求保持在200ns以上,其上升沿将内部逐次逼近寄存器清零,下降沿启动ADC转换。

5)EOC:转换结束信号,可作为中断请求信号或供CPU查询。

6)CLK:时钟输入端,要求频率范围在10kHz~1.2MHz.

7)OE:允许输出信号。

8)Vcc、GND:芯片工作电压及地。

9)VREF(+)、VREF(-):基准参考电压的正、负值。

10)OUT1~OUT8:8路数字量输出端。(2)ADC0808的内部结构ADC0808的内部结构如图所示。它除了8位ADC外,还有一个8路模拟开关,其作用可根据地址译码器信号来选择8路模拟输入,8路模拟输入可以分时共用一个ADC进行转换,可实现多路数据采集。其转换结果通过三态输出锁存器输出。应用实例:数字电压表的设计(1)设计要求使用ADC0808设计一个数字电压表。(2)设计分析最小的单片机系统+四位数码管(显示电压)+模/数转换器(ADC0808)+可变电阻(模拟电压变化)(3)系统原理图设计

单片机AT89C51瓷片电容CAP30pf晶振CRYSTAL12MHz电阻RES四位数码管7SEG-MPX4-CC-BLUE按钮BUTTON电阻排RESPACK-8可变电阻POT-LIN模/数转换器ADC0808(4)程序流程图设计数字电压表设计系统分析:

数字显示:XXX(0-380V)需要数码管3-4个:动态显示(2个I/O口)

数据采集:只有电压,1路数据需要一个A/D转换器:其输入(IN0-IN7)任选1路,其输出(OUT1-OUT8)(1个I/O口),START(1位)、EOC(1位)、CLOCK(1位,波特率发生器提供)、OE(1位),ALE(0,A、B、C不必再选)

(5)源程序设计(汇编语言)

;系统定义 DBUF1 EQU 30H ;定义要显示个、十、百位数缓存地址

DBUF2 EQU 31H

DBUF3 EQU 32H

ABC EQU 35H ;定义模数转换数缓存地址

ST BIT P2.5 ;定义开始驱动位地址

EOC BIT P2.6 ;定义转换结束位接收地址

OE BIT P2.7 ;定义允许输出驱动位地址

CLOCK EQU P2.7 ;定义波特率时钟输出地址

ORG 0000H AJMP START ORG 00BH ;C/T0入口地址

AJMP ST_T0

;初始化 ORG 0050HSTART: MOV DBUF1,#00H MOV DBUF2,#00H MOV DBUF3,#00H MOV DPTR,#TAB MOV TMOD,#02H ;C/T0,具有自动重装的C/T

MOV TH0,#245H

MOV TL0,#00H

MOV IE,#82H ;EA=1,ET0=1

SETB TR0WAIT: CLR ST ;启动AD转换

SETB ST

CLR ST

JNB EOC,$ ;检测转换结束信号 SETB OE ;允许输出 MOV ABC,P1 CLR OE MOV A,ABC MOV B,#100 DIV AB MOV DBUF3,A MOV A,B MOV B,#10 DIV AB MOV DBUF2,A MOV DBUF1,B ACALL L AJMP WAITST_T0: CPL CLOCK ;产生分频时钟 RETIL: MOV A,DBUF3 MOVC A,@A+DPTR CLR P2.3 MOV P0,A ACALL DELAY SETB P

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论