




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、应用adc0809的a/d转换设计摘要此次设计的主要内容是利用adc0809设计制做a/d转换器,电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,51单片机通过8255的pa口输出到发光二极管进行显示,并将8位二进制数转换为3位bcd码并在3位数码管上进行显示,并在此基础上进行扩展。由于热敏电阻输出量为模拟量,同样通过adc0809进行a/d转换,并将其输出值在发光二极管以及3位数码管上进行显示,来反映温度的变化。压力传感器的输出量经过adc0809进行模数转换后经发光二极管以及数码管的显示来反映压力的变化。 关键词:adc0809 a/d转换 51单片机 发光二极管 数码管the
2、 design of the a/d conversion based on adc0809abstractthe main content of this design is that use the adc0809 make a a/d conversion.the adc0809 get analog signal from potentiometers. program and transform it into digital as binary. the 51single-chip sent the digital to light-emitting diodes by the a
3、 i/o interface of 8255,change the 8 bit binary number into 3 bit bcd code , then develops it.the output of the thermistor is analog, use the adc0809 make a a/d conversion and sent to light-emitting diodes and digital tube display it the aim is to reflect the diversification of temperature. adc0809 c
4、hange the output of pressure sensor into digital data and be displayed by light-emitting and digital tube,from this we can see the change of pressure we gave.keywords:adc0809a/dconversion 51single-chip light-emitting目录1 绪论11.1 a/d转换概述11.1.1 a/d转换的概念11.1.2 a/d转换器的类型11.2 a/d转换在现实中的应用12 a/d转换的硬件介绍22.1
5、总体硬件介绍22.2 电位器概述22.3 adc0809概述32.3.1 adc0809的内部逻辑结构32.3.2 adc0809的外部特征42.3.3 逐次逼近型a/d转换方法52.4 mc51单片机概述462.5 8255可编程并行i/o接口芯片概述72.5.1芯片引脚及其内部结构72.5.2 8255的内部结构82.6 发光二极管概述102.7 led数码管概述103 a/d转换的具体设计及程序实现113.1 a/d转换的总体设计113.2 51单片机的中断123.2.1 中断的基本概念123.2.2 程序的入口地址123.2.3 中断响应的条件、过程与时间123.3 adc0809的工
6、作过程133.3.1 adc0809与51单片机的连接153.3.2 adc0809工作流程图及程序实163.4 8255的工作方式173.4.1 8255的工作方式及编程173.4.2 8255a的三种工作方式的功能及应用173.4.3 8255与51单片机的连接及工作203.5 发光二极管以及led数码管的显示213.5.1 发光二极管的显示213.5.2 led动态显示方式及实现214.设计扩展24扩展1:利用热敏电阻检测温度的变化24扩展2:利用压力传感器检测压力的变化255.总结26参考文献27致谢281 绪论1.1 a/d转换概述1.1.1 a/d转换的概念模数转换亦称模拟一数字转
7、换,与数/模转换相反,是将连续的模拟量(如象元的灰阶、电压、电流,电压,温度等)通过取样转换成离散的数字量。1.1.2 a/d转换器的类型现在已经发展形成的a/d转换器主要有以下几种:1、 积分型转换器,其优点是精度高,抗干扰性好;价格便宜,但速度慢。2、 逐次逼近型a/d转换器,精度,速度,价格适中。3、 并行a/d转换器,速度快,价格也昂贵。除以上三种a/d转换器以外还有流水线a/d转换器,折叠差值a/d转换器,过采样 a/d转换器。 在此次设计中应用的a/d转换器为adc0809,它采用的是逐次逼近型a/d转换方法,在以后介绍硬件的时候再详细介绍逐次逼近型a/d转换技术。1.2 a/d转
8、换在现实中的应用a/d转换技术已应用在现实生活中的多个领域,随着计算机、通信和多媒体技术的飞速发展,全球高新技术领域数字化的程度已不断加深。如今电子产业已经形成了以数字技术为主体的格局,特别是半导体产业显的尤为突出。半导体技术数字化和集成化的日益提高,在推动微控制器(mcu)、数字信号处理器(dsp)、微机械电子系统(mems)的发展中,也推动了“嵌入” 或“隐性”模数转换技术的发展。在这些因素的影响下,模数转换技术正朝着高精度、高速度的发展方向迈进。现在时的我们已经身处数字化时代,计算机,多媒体,软件技术都是以数字化为基础。数字化技术正在引发一场范围广泛的产品革命,电器设备,信息处理设备,工
9、厂控制设备都将向数字化方向变化。2 a/d转换的硬件介绍 2.1 总体硬件介绍1 在本次设计中,电信号由电位器提供,其范围是0-5v的电压,电压进入adc0809进行数模转换,转换结束时将转换结果送到51单片机进行短时间储存,之后将8位二进制数发送到8255 的pa口,8位发光二极管与之相连,当有相应电信号到来时便通过发光与否进行显示相应结果。同时在51单片机内将8位二进制数转换为3位bcd码,输出到3位7段数码管上进行显示。热敏电阻电位器adc0809压力传感器发光二极管825551单片机数码管 图2.1 总体硬件介绍 2.2 电位器概述电位器是一种可调的电子元件。它是由一个电阻体和一个转动
10、或滑动系统组成。用于分压的可变电阻器。在裸露的电阻体上,紧压着一至两个可移金属触点。触点位置确定电阻体任一端与触点间的阻值。当电阻体的两个固定触电之间外加一个电压时,通过转动或滑动系统改变触点在电阻体上的位置,在动触点与固定触点之间便可得到一个与动触点位置成一定关系的电压。 它大多是用作分压器,这是电位器是一个四端元件。电位器基本上就是滑动变阻器,有几种样式,一般用在音箱音量开关和激光头功率大小调节 电位器是一种可调的电子元件。它是由一个电阻体和一个转动或滑动系统组成。当电阻体的两个固定触电之间外加一个电压时,通过转动或滑动系统改变触点在电阻体上的位置,在动触点与固定触点之间便可得到一个与动触
11、点位置成一定关系的电压。电位器的作用: 调节电压(含直流电压与信号电压)和电流的大小。电位器的结构特点:电位器的结构特点电位器的电阻体有两个固定端,通过手动调节转轴或滑柄,改变动触点在电阻体上的位置,则改变了动触点与任一个固定端之间的电阻值,从而改变了电压与电流的大小。2.3 adc0809概述32.3.1 adc0809的内部逻辑结构adc0809是采样频率为8位的、以逐次逼近原理进行模数转换的器件。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行a/d转换。adc0809是cmos单片型逐次逼近式ad转换器,内部结构如图2.2所示。 图2.2
12、 adc0809的内部逻辑结构由图2.1可知,adc0809由一个8路模拟开关、一个地址锁存与译码器、一个a/d转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用a/d转换器进行转换,在此次设计中采用通道in0进行模拟信号的采集,当然也可以用其他通道进行信号的采集,但是效果是一样的,因此信号输入端固定不变,选用in0。三态输出锁器用于锁存a/d转换完的数字量,当oe端为高电平时,才可以从三态输出锁存器取走转换完的数据。adc0809的主要特称为:1)8路8位ad转换器,即分辨率8位。 2)具有转换起停控制端。 3)转换时间为100s。4)单个5v电源供电
13、。5)模拟输入电压范围05v,不需零点和满刻度校准。 6)工作温度范围为-4085摄氏度。7)低功耗,约15mw。 2.3.2 adc0809的外部特征4adc0809芯片有28条引脚,采用双列直插式封装,下面说明各引脚功能。 in0in7:8路模拟量输入端。2-12-8:8位数字量输出端。adda、addb、addc:3位地址输入线,用于选通8路模拟输入中的一路。ale:地址锁存允许信号,输入,高电平有效。 start: ad转换启动信号,输入,高电平有效。 eoc: ad转换结束信号,输出,当ad转换结束时,此端输出一个高电平(转换期间一直为低电平)。 oe:数据输出允许信号,输入,高电平
14、有效。当ad转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。clk:时钟脉冲输入端。要求时钟频率不高于640khz。 ref(+)、ref(-):基准电压。vcc:电源,单一5v。 图 2.3 逐次逼近型 gnd:地。 a、b、c:地址输入线。2.3.3 逐次逼近型a/d转换方法逐次逼近寄存器型a/d转换器是采样速率低于5msps的中等至高分辨率应用的常见结构。adc0809的分辨率为8位,其实质上是实现一种二进制搜索算法。逐次逼近寄存器型a/d转换器的基本结构如图2.3。 模拟输入电压(vin)由采样/保持电路保持。为实现二进制搜索算法,n位寄存器首先设置在中间刻度(即:10
15、000000,最高有效位(msb)为1)。这样,d/a转换器输出(vdac)被设为vref/2,vref是提供给adc的基准电压。然后,比较判断vin是小于还是大于vdac。如果vinvdac,则比较器输出逻辑高电平或1,n位寄存器的msb保持1。想法,如果vinvdac,则比较器输出逻辑低电平,n位寄存器的最高有效位(msb)清为0。随后逐次逼近型(sar)控制逻辑移至下一位,并将该位设置为高电平,进行下一次比较。这个过程一直持续到最低有效位(lsb)。上述操作结束后,也就完成了转换,n位转换结果储存在寄存器内。2.4 mc51单片机概述451单片机组成结构中包含运算器、控制器、片内存储器、
16、4个并行i/o口,串行口,定时/计算器、中断系统、振荡器等功能部件。在此次设计中,51单片机起到衔接作用,其主要动作即为控制adc0809进行模拟数据的采集及转换,并将转换的结果暂存在寄存器中,在输出到相应的显示器件上。在此次设计中应用的中断方式读入结果,当a/d转换结束后会自动产生eoc信号,将其与51单片机的外部中断相连接,此时单片接接收转换完成的结果。双列直插(dip)式封装的51单片机芯片一般为40条引脚, 每个引脚功能说明如下:1 主电源引脚vcc(40脚):接+5v电源正端;vss(20脚):接+5v电源地端。2.输入/输出引脚(1)p0口(39-32):p0.0-p0.7统称为p
17、0口。在不接片外存储器与不扩展i/o口时,可作为准双向输入/输出口。在接有片外存储器或扩展i/o口时,p0口分时复用为低8位地址总线和双向数据总线。(2)p3口(10-17脚):p3.0-p3.7统称为p3口。除作为准双向i/o口使用外,还可以将每一位用于第二功能,而且p3口的每一条引脚均可独立定义为第一功能的输入输出或第二功能,其中p3.2口的第二功能为外部中断0请求输入端,低电平有效。3.控制线(1) ale/(30脚):地址锁存有效信号输出端。(2) psen(29脚):片外程序存储器读选通信号输出端,低电平有效。在从外部程序存储器读取指令或常数期间,在每个机器周期内该信号两次有效,以通
18、过数据总线p0口读回指令或常数。在访问片外数据存储器期间,psen信号将不出现。(3) res/vpd(9脚):res即reset,vpd为备用电源,该引脚为单片机的上电复位或掉电保护端。(4) ea/vpp(31脚):ea为外部程序存储器选用端。该引脚有效(低电平)时,只选用片外程序存储器,否则单片机上电或复位后选用片内程序存储器。2.5 8255可编程并行i/o接口芯片概述28255是单片机应用系统中广泛被采用的可编程外部i/o扩展芯片。它有3个8位并行i/o口,每个口有三种工作方式。2.5.1芯片引脚及其内部结构各引脚功能如下:vcc:电源的+5v断gnd:电源的0端reset:复位信号
19、输出端,使内部各复位信号输出端,使内部各寄存器清除,置a,b,c口为输入口。:写信号输入端,使cpu输出数据或控制字到8255。:读信号输入端,使8255送数据或状态信号呢到cpu。: 片选端。a1、a0:地址总线的最低2位,用于决定端口地址。d7-d0:双向数据总线。pa7-pa0:a口的8位i/o引脚。pb7-pb0:b口的8位i/o引脚。pc7-pc0:c口的8位i/o引脚。:芯片选择信号。来自片外译码电路,用于选中8255a芯片,低电平有效。:芯片读出信号,低电平有效。即当为0时,51单片机从8255a读入数据或状态信息。:芯片写入信号,低电平有效。即当为0时,51单片机向8255a写
20、出数据或控制字。a1、a0:端口选择信号。用于寻址8255a内部各端口,a1、a0的不同状态与各端口的对应关系如下: a1 a0 对应的端口 0 0 a口 0 1 b口 1 1 c口 1 1 控制口电源与地线:vcc:电源线,+5v。gnd:接地线。 图2.4 8255内部结构框图 2.5.2 8255的内部结构 8255的内部结构由三个端口寄存器(端口a、端口b、端口c)、两组控制电路、一个数据总线缓冲器、一个读写控制逻辑电路部分组成。其内部结构框图如图2.4所示。各部分功能如下:1. 三个输入/输出端口8255有3个8口数据端口 a、b、c,每个端口都可以用软件设置成输入或输出端口,但也有
21、各自的功能特点。1) 端口a:对应有一个8位数据输入锁存器和一个8位数据输出锁存器/缓冲器,因此端口a可以为8位双向输入/输出口,且输入/输出均具有锁存功能。2) 端口b:对应有一个8位数据输入缓冲器和一个8位数据输出锁存器/缓冲器,因此端口b可以为8位双向输入/输出口,且输出具有锁存功能。3) 端口c:对应两组4位双向输入/输出口,它含有一个8位数据输入缓冲器和一个8位数据数输出锁存器/缓冲器,即输出锁存, 输入不锁存。4) a口和b口常常独立设为输入/输出。c口常常通过命令分为两个4位端口,每个4位端口包含一个4位的输入缓冲和一个4位的输出锁存/缓冲器,分别为a口和b口提供控制信号和状态信
22、号。2. 两组控制电路a、b两组控制电路分别实现对a组i/d端口线(a7-a0和c7-c4)和b组i/o端口线 (b7-b0和c3-c0)的输入/输出控制。一方面接收来自内部总线上的控制字一方面接收来自读/写控制逻辑的读/写命令,从而决定两组端口工作方式和读/写操作。a组:端口a和端口c(上半部分)pc7-pc4。b组:端口b和端口c(下半部分)pc3-pc0。3. 读/写控制逻辑电路读/写控制逻辑负责管理8255的数据传输过程。根据地址译码后的片选、来自控制总线的信号、以及来自地址总线的地址信息a1、a0,实现对数据、状态、控制信号的传输。如表2.3所示为8255的控制信号与传输动作的对应关
23、系。4. 数据总线缓冲器数据总线缓冲器为双向三态8为缓冲器,它是8255与微机数据总线的接口。其上传输的信息有输入数据、输出数据、51单片机写给8255的控制字以及从8255读入的状态信息。2.6 发光二极管概述6在此次设计中基本设计实现的显示元件时8个不同颜色的发光二极管,当有高电平通过时,发光二极管亮,低电平时发光二极管灭。电平信号的来源是8255的pa口。2.7 led数码管概述7led数码管是由发光二极管显示字段组成的显示器件,在此次单片机应用系统中是八段led。这种显示器有共阴极和共阳极两种,此次系统中使用的是共阴极显示器,如图所示。共阴极led显示器的发光二极管的阴极接地,发光二极
24、管的阳极为高电平时,发光二极管点亮。显示字符共阴极段选码显示字符共阴极段选码03fhc39h106hd5eh25bhe79h34fhf71h466hp73h56dhu3eh67dht31h707hy6eh87fh8.ffh96fh“灭”00ha77hb7ch表2.1 八段led的段选码八段led显示器中有8个发光二极管,其中7个发光二极管构成7笔字形“”,1个发光二极管构成小数点。八段led显示块的管教如图所示。从a-b管教输出不同的8位二进制数,可显示不同的数字或字符。通常把控制发光二极管的8位二进制数称为段选码,共阳极与共阴极的段选码互为反码,如表2.1所示。3 a/d转换的具体设计及程序
25、实现3.1 a/d转换的总体设计8在本次设计中,当51单片机给adc0809的start引脚一个高电平,标志着转换的开始,adc0809通过in0通道进行模拟信号的采集,in0通道是通过地址锁存器来确定的,3位端口地址与8位数据口的前三位是复用的。采集模拟信号之后在adc0809的内部进行模数转换,这时adc0809的eoc引脚输出电平为低电平,表示转换正在进行,当转换完毕,eoc输出高电平给51单片机的int0引脚,引起中断,51单片机给adc0809的oe引脚一高电平,adc0809随即输出转换完成的数据,到51单片机的内部寄存器中。一方面51单片机通过8255的pa口将数据输出到8位发光
26、二极管上进行显示,另一方面,51单片机将8位二进制数转换为3位bcd码并输出到3位7段数码管上进行显示。电位器 adc809 51单片机 显示部分 发光二极管显示1、控制2、数据存储3、8位二进制数转换为3位bcd码模拟信号a/d转换数码管显示图3.1 总体设计图3.2 51单片机的中断103.2.1 中断的基本概念所谓中断,是指cpu对系统中或系统外发生的某个事件的一种响应过程,即cpu暂时停止现行程序的执行,而自动转去执行预先安排好的处理该事件的服务子程序;当处理结束后,再返回到被暂停程序的断点处,继续执行原来的程序。实现这种中断功能的硬件系统和软件系统称为中断系统。中断系统是计算机的重要
27、组成部分。实时控制、故障自动处理时往往用到中断系统,计算机与外部设备间传送数据及实现人机联系时常常采用中断方式。3.2.2 程序的入口地址程序地址空间可以任意安排,但复位和中断源的程序入口地址在51单片机中式固定的,不能更改。这些入口地址见表。复位后,cpu从0000h地址开始执行程序。其他地址为中断服务程序入口地址,响应某个中断时,将自动从其对应的入口地址执行中断服务程序如表3.1.操作入口地址复位0000h外部中断00003h定时器/计数器0溢出000bh外部中断10013h定时器/计数器1溢出001bh串行口中断0023h表3.1 中断服务程序入口地址3.2.3 中断响应的条件、过程与时
28、间(1) 中断响应的条件单片机响应中断的条件为中断源有请求(中断允许寄存器ie相应位置1),且cpu开中断(即ea=1)。这样,在每个机器周期的s5p2期间,对所有中断源按用户设置的优先级和内部规定的优先级进行顺序检查,并可在sp6期间找到所有有效的中断请求。如有中断请求,且满足下列条件,则在下一个机器周期的sp1期间响应中断,否则将丢弃中断采样的结果:1)无同级或高级中断正在处理。2)现行指令到最后一个机器周期且已结束。3)现行指令为reti或访问ie、ip指令,执行完该指令且紧随其后的另一条指令也已执行完毕。(2) 中断响应过程9cpu响应中断后,由硬件自动执行如下的功能操作:1)根据中断
29、请求的源的优先级高低,对相应的优先级状态触发器置1.2)保护断点,即把程序计数器pc的内容压入堆栈保护。3)清内部硬件可清除的中断请求标志位(ie0、ie1、tf0、tf1)。4)把被相应的中断服务程序入口地址送入pc,从而转入相应的中断服务程序执行。各中断服务程序的入口地址见表。中断服务程序的最后一条指令必须是中断返回指令reti。cpu执行该指令时,先将相应的优先级状态触发器清0,然后从堆栈中弹出断点地址到pc,从而返回到断点处。由以上过程可知,51单片机响应中断后,只保护断点而不保护现场信息,且不能清除串行口中断标志t1和r1,也无法清除电平触发的外部中断请求信号。3.3 adc0809
30、的工作过程5 adc0809对输入模拟量要求:信号单极性,电压范围是05v,若信号太小, addcaddbadda选通的通道000in0001in1010in2011in3100in4101in5110in6111in7表3.2 adc0809通道地址选择表必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。in0-in7为8路模拟量输入端,模拟量输入电压的范围是0-5v,对应的数字量为00h-ffh,转换时间为100us。adda、addb、addc为通道地址线,用于选通通道,详细情况如表3.2所示。ale是通道地址锁存信号,其上出现脉冲上升
31、沿时,把adda、addb、addc地址状态送入地址锁存器中。vref(+)、vref(-)接基准电源,在精度要求不太高的情况下,供电电源可用作基准电源。start是启动引脚,其上脉冲的下降沿启动一次新的a/d转换。eco是转换结束信号,可用于向单片机申请中断或供单片机查询。clk是时钟端,典型的时钟频率为640khz。adc0809的工作的定时关系如图3.1所示。图3.2 adc0809转换工作时序从图中可以看出在进行a/d转换时,通道地址应先送到adda-addc输入端。然后在ale输入端加一个正跳变脉冲,将通道地址锁存到adc0809内部的地址锁存器中,这样对应的模拟电压输入就和内部变换
32、电路接通。为了启动,必须在start端加一个负跳变信号。此后,变换工作就开始进行,标志adc0809正在工作的状态信号eoc由高电平(空闲状态)变为低电平(工作状态)。一旦变换结束,eoc信号就又由低电平变成高,此时只要在oe端加一个高电平,即可打开数据线的三态缓冲器从d0-d7数据线读得一次变换后的数据。数字量输出及控制线:11条 st为转换启动信号。当st上跳沿时,所有内部寄存器清零;下跳沿时,开始进行a/d转换;在转换期间,st应保持低电平。eoc为转换结束信号。当eoc为高电平时,表明转换结束;否则,表明正在进行a/d转换。oe为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到
33、的数据。oe1,输出转换得到的数据;oe0,输出数据线呈高阻状态。d7d0为数字量输出线。 clk为时钟输入信号线。因adc0809的内部没有时钟电路,所需时钟信号必须由外界提供,通常使用频率为500khz, vref(),vref()为参考电压输入。 adc0809的工作过程是:首先输入3位地址,并使ale=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。start上升沿将逐次逼近寄存器复位。下降沿启动 ad转换,之后eoc输出信号变低,指示转换正在进行。直到ad转换完成,eoc变为高电平,指示ad转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当oe输入高电平
34、时,输出三态门打开,转换结果的数字量输出到数据总线上。3.3.1 adc0809与51单片机的连接adc0809与51单片机的连接如图3.2所示由图可知adc0809的转换时钟由单片机的ale提供。因adc0809的典型转换频率为640khz,ale的信号频率与晶振频率有关。51单片机通过地址线p2.0和读、写控制线rd、wr来控制转换器的模拟输入通道地址锁存、启动和输出允许。模拟输入通道地址的译入adda-add由p0.0-p0.2提供,因adc0809具有通道地址锁存功能,故p0.0-p0.2不需要经锁存器接入adda-addc。根据p2.0和p0.0-p0.2的连接方法,8个模拟输入通道
35、的地址依in0-in7顺序为800h-8007。 3.3.2 adc0809工作流程图及程序实 图3.3 adc0809与51单片机的连接 本次设计是利用中断方式读入转换结果,在中断方式下,a/d转换结束后会自动产生eoc信号,将其与51单片机外部中断相接。 实现程序:org 0000hljmp startorg 0003hljmp int_0org 0040hstart:setb easetb it0 setb ex0图3.4 adc0809工作流程图 a_d:mov dptr,#8000hmov a,#00hmovx dptr,asjmp a_dint_0:movx a,dptrmov r
36、7,a retiend3.4 8255的工作方式11此次设计中通过8255的最基本的工作0即可完成数字信号的传输作用,而且简单快捷。3.4.1 8255的工作方式及编程工作方式选择控制字的格式如图所示。关于工作方式选择控制字说明如下。d7d6d5d4d3d2d1d0d7:方式选择控制字标识位。d6,d5:a组方式选择 00:方式0,01:方式1,1x:方式2。d4:端口a,1:输入,0:输出。d3:pc0-pc4,1:输入,0:输出。d2:b组方式选择,1:方式1,0:方式0。d1:端口b,1:输入,0:输出。d0:pc0-pc3,1:输入,0:输出。3.4.2 8255a的三种工作方式的功能
37、及应用1. 方式0:基本输入/输出方式。端口a、b、c都可以工作在此方式。端口a、端口b通过方式选择子规定为输入/输出,端口c分为两个4位端口,这两个4位端口也可以由方式选择字规定为输入或输出,这样4个端口组合起来共有16种输入/输出组合。 1) 在同步传送时:双方互相知道对方动作,不需要应答信号。cpu不需要查询外设的状态。在这种情况下,对接口的要求很简单,只要能传送数据就行了。 2) 在查询方式传送时:如果要用查询传送,可以将a口和b口作为输入/输出数据端口,而将端口c的4个数位(高4位或第4位均可)规定为输出端口,用来输出控制信号,将端口c的另外4个数位规定为输入端口,用来读入外设的状态
38、。这样就可以利用端口c来配合端口a和端口b的输入/输出操作。2. 方式1:选通输入/输出方式。端口a、b都可以工作在此方式。端口c作联络信号。端口a和端口b用方式1进行输入/输出时,要利用端口c提供的选通信号和应答信号。而端口c中的数位与这些信号之间有固定的对应关系,这种关系部是用程序可以改变的。(1) 方式1的特点 1) 端口a和端口b可以分别作为两个数据口工作在方式1,任一端口可以作为输入或输出口。 2) 如果端口a或端口b工作在方式1,端口c中有3位规定为配合方式1工作的信号,其他端口和c口中的其他位可以工作在方式0,即作为输入或输出。 3) 如果端口a和端口b都工作在方式1,则端口c中
39、有6位规定为配合方式1工作信号,剩下两位仍可工作在方式0,即作为输入或者输出。(2) 方式1输入情况下有关信号的规定 1) 端口a工作在方式1并作为输入口时,端口c的pc4、pc5、pc3配合端口a工作。其中,pc4作为选通输入信号输入端,pc5作为输入缓冲区满信号输出端ibf,pc3则作为中断请求信号输出端intr。 2) 端口b工作在方式1并作为输入口时,端口c的pc2、pc1、pc0配合端口b工作。其中,pc2作为选通输入信号输入端,pc1作为输入缓冲区满信号输出端,pc0则作为中断请求信号输出端intr。(3) 方式1输出情况下有关信号的规定1端口a工作在方式1并作为输出口时,端口c的
40、pc6作为外设接收数据后的响应信号输入端ack,pc7作为输出缓冲区满信号输出端obf,pc3则作为中断请求信号输出端intr。2端口b工作在方式1并作为输出口时,端口c的饿pc2作为外设接收数据后的响应信号输入端口ack,pc4作为输出缓冲区满信号输出端obf,pc0则作为中断请求信号输出端intr。如图是端口a和端口b工作于方式1情况下作为输入、输出端口时的方式选择控制字。3. 方式2:双向输入/输出方式。只有端口a可以工作在此方式。端口c作联络信号。方式2只适用于端口a,端口c自动提供相应的控制信号和状态信号。pc3:中断请求信号intr。pc4:外设到8255的选通信号,stb将外设送
41、到8255的数据打入输入锁存器。pc5:输入缓冲满信号ibf,通知cpu输入数据已到输入缓冲器,可以作为查询信号。pc6:外设收到数据后的应答信号。pc7:输出缓冲器满信号,表示cpu已将一个数据写入8255的端口a,通知外设将数据取走。控制字格式如图表示。方式2是一种双向方式,如果以个并行外部设备既可以作为输入设备,又可以作为输出设备,并且输入/输出的动作不会同时进行,那么将这个外设和8255的端口a相连,并使它工作在方式2,就非常适合。 d7为标志位,必须为1,用来与端口c置1/置0控制字区别。3.4.3 8255与51单片机的连接及工作12 8255内部芯片没有地址锁存能力,所以8255
42、片选信号cs及口地址选择线a1、a0分别由51单片机的p0.7、p0.1、p0.0经地址锁存后提供。如果把没有参与选地址的地址线的状态都看做“1”状态,择8255的a、b、c口及控制口地址分别为9000h、9001h、9002h、9003h。8255的复位端与51单片机的复位端相连,都接到51单片机的复位电路上。 51单片机与8255的接口电路如图3.4所示。图3.5 8255与51单片机的扩展连接图由方式选择控制字的格式与定义可确定出满足要求的方式控制字为80h(10000000b)。对于8255编程,将80h写入它的控制寄存器,初始化程序为:mov dptr, #9003hmov a,80
43、hmovx dptr,a将单片机内部数据输出到8255的a口,由前面内容可知,adc0809的转换结构储存到51单片机的r7寄存器中。实现此功能的程序为:mov dptr, #9003hmov a,80hmovx dptr,amov dptr,#9000hmov a,r7movx dptr,a3.5 发光二极管以及led数码管的显示3.5.1 发光二极管的显示在此次设计中8个发光二极管与8255的pa口的0-7口依次相连接,当8255的a口有高电平输出到二极管上,则二极管变量,低电平到二极管上,二极管不灭。并不用程序初始化发光二极管,其显示结果 与51单片机输出到8255的a口中的8位二进制数
44、相同,如图3.5所示为发光二极管的8255的连接图。 图3.6 发光二极管与8255的连接3.5.2 led动态显示方式及实现在此次设计中我们采用的是led动态显示,数码管如图3.1所示,所谓的动态显示,是由于每一位的段选线都接在一个i/o口上,因此每送一个段选码,8位就显示同一个字符,这种显示器是不能用的。解决此问题的方法是利用人的视觉滞留,从段选线i/o口上按位次分别送显示字符的段选码,在位选控制口也按相应的次序分别选通相应的显示位,即给相应的显示位低电平,选通为就显示相应的字符,并保持几毫秒的延时,未选通位不显示字符。这样,对各位显示就是一个循环过程。从计算机的工作来看,在以个瞬时只有一
45、位显示字符,而其它位都是熄灭的,但因为人的视觉滞留,这种动态变化是察觉不到的。从效果上看,各位显示器能连续而稳定地显示不同的字符。在此次设计我们采用的是3位7段数码显示,。因为我在执行这段程序之前adc转换已经完成,且存入到的单片机数据存储器的r7里面,我们直接从r7中取出8位二进制数进行3位bcd数的转换,将3位bcd数存入到51单片机的片内数据存储器的30h、31h、32h里面,之后分别输出到相对应的数码管上。(1)8位二进制数转换为3位bcd码将8位二进制数转换为3位bcd码,并将3位bcd数分别存入30h,31h,32h寄存器中。以下为将8位二进制数转换为3位bcd码流程图及实现程序:
46、开始8位二进制数除以100余数除以10余数送入32h商送入30h商送入31h结束图3.7 8位二进制数转换为3位bcd码流程图实现程序:bcd:mov a,r7 mov b,#10mov b,#100 div abdiv ab mov r0,amov r0,#32h dec r0mov r0,a mov r0,bdec r0 retmov a,b (3) 数码管程序流程图图 3.8 数码管显示流程图2) 数码管显示程序:mov r1,#30h mov r5,#0ffhmov r6,#00000001b loop1:lcall display mov r6,#0ffhmov a,r6 djnz
47、r6,$rl a djnz r5,loop1mov r6,a retinc r1 dly:lcall display mov r5,#0ffhmov a,r6 djnz r5,$rl a retmov r6,a display:inc r1 mov dptr,#0a002hlcall display mov a,#00h reti movx dptr,adelay: mov a,r1 mov dptr,#desgmovc a,a+dptrmov dptr,#0a004h movx dptr,amov a,r6mov dptr,#0a002h movx dptr,alcall dly mov d
48、ptr,#0a002hmov a,#00hmovx dptr,aretdesg:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhend4.设计扩展 扩展1:利用热敏电阻检测温度的变化热敏电阻是敏感元件的一类,其电阻值会随着热敏电阻本体温度的变化呈现出阶跃性的变化, 具有半导体特性. 热敏电阻按照温度系数的不同分为: 正温度系数热敏电阻(简称ptc热敏电阻) 负温度系数热敏电阻(简称ntc热敏电阻) 正温度系数热敏电阻其电阻值随着ptc热敏电阻本体温度的升高呈现出阶跃性的增加, 温度 越高,电阻值越大. 负温度系数热敏电阻其电阻值随着ntc热敏电阻本体温度的升
49、高呈现出阶跃性的减小, 温度 越高,电阻值越小.图4.1温度传感器原理图热敏电阻的输出值为模拟信号,由adc0809进行a/d转换,由单片机输出到法光二极管以及数码管进行显示。 扩展2:利用压力传感器检测压力的变化压力传感器是工业实践中最为常用的一种传感器,而我们通常使用的压力传感器主要是利用压电效应制造而成的,这样的传感器也称为压电传感器。 我们知道,晶体是各向异性的,非晶体是各向同性的。某些晶体介质,当沿着一定方向受到机械力作用发生变形时,就产生了极化效应;当机械力撤掉之后,又会重新回到不带电的状态,也就是受到压力的时候,某些晶体可能产生出电的效应,这就是所谓的极化效应。就是根据这个效应研制出了压力传感器。 压电传感器中主要使用的压电材料包括有石英、酒石酸钾钠和磷酸二氢胺。其中石英(二氧化硅)是一种天然晶体,压电效应就是在这种晶体中发现的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 个人投资协议书合集15篇
- 2025铁路专业笔试题及答案
- 胃插管试题及答案
- 水陆联运货物运输合同样本(2025版)
- 2025年住院医师规范培训(各省)-天津住院医师皮肤科历年参考题库含答案解析(5卷套题【单项选择题100题】)
- 黑龙江省鸡西一中2025-2026第一学期高一期中考试生物试题含答案
- 2025年住院医师规范培训(各省)-上海住院医师中医针灸推拿历年参考题库含答案解析(5卷套题【单项选择题100题】)
- 2025年住院医师考试-推拿科住院医师历年参考题库含答案解析(5卷套题【单项选择题100题】)
- 企业并购的协议书(2025版)
- 汽车棚车棚车棚协议书2025年
- 2025年全国高级保育员理论考试笔试试题附答案
- 五升六小学数学(暑假口算每日一练)
- 浙江国企招聘2025宁波慈溪市国有企业公开招聘工作人员130名笔试参考题库附带答案详解
- 护理人文关怀培训课件
- 2025年甘肃省高考地理试卷真题(含答案解析)
- 中国专用车行业发展前景预测及投资战略研究报告
- 高速公路清障救援安全培训-汤立 2
- ISTA-3A(中文版)运输-试验标准
- 校企深度融合构建协同育人长效机制(鲁嘉华副校长)
- 2014版河南中安qd6330点型气体探测器使用说明书
- 热牙胶充填仪介绍
评论
0/150
提交评论