微机原理与接口技术实验讲稿.ppt

上传人:小飞机 文档编号:6284436 上传时间:2023-10-13 格式:PPT 页数:183 大小:1.06MB
返回 下载 相关 举报
微机原理与接口技术实验讲稿.ppt_第1页
第1页 / 共183页
微机原理与接口技术实验讲稿.ppt_第2页
第2页 / 共183页
微机原理与接口技术实验讲稿.ppt_第3页
第3页 / 共183页
微机原理与接口技术实验讲稿.ppt_第4页
第4页 / 共183页
微机原理与接口技术实验讲稿.ppt_第5页
第5页 / 共183页
点击查看更多>>
资源描述

《微机原理与接口技术实验讲稿.ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验讲稿.ppt(183页珍藏版)》请在三一办公上搜索。

1、微机原理与接口技术实验讲稿(PPT),实验项目,实验箱简介 基于 EPP接口的LED显示8255并行接口原理及编程8253计数器原理及分频实验8253计数器在测频中的应用双积分式A/D 转换器7109 的原理及编程逐次比较式A/D转换器0809的原理及编程D/A转换器0832的原理实验DAC0832在程控信号源中的应用LED点阵显示基本并行输入/输出口在键盘接口中的应用8250串行通信电子称实验,实验箱简介,实验箱的组成原理 实验主板的原理 实验主板是由并行I/O、定时器/计数器、A/D转换器、D/A转换器及LED显示器等接口部件构成,采用了总线结构,各功能部件均通过内部总线进行连接,如下图所

2、示。,实验主板的内总线结构,实验主板的布局,EPP接口原理 EPP信号特性,其引脚定义如下图,EPP端口寄存器 端口地址如表下图所示。表中BASE为并口基地址,,状态寄存器和控制寄存器各位具体定义如下图所示。,EPP接口初始化 在使用EPP之前应将并口置于正向传输模式(输出),即将控制寄存器的方向位(Bit5)置0。可编写EPP初始化函数epp_init()如下:void epp_init(void)outportb(0 x37a,0 x04);,EPP时序 数据/地址写周期时序,数据/地址读周期时序,EPP端口读写 计算机要同外设实验箱通信,就要通过EPP接口来读写数据,因此,首先应向EPP

3、地址端口(BASE+3)写入欲访问的外设地址,然后从EPP数据端口(BASE+4)读写数据,每次读写1个字节,EPP端口写函数epp_write_data()void epp_write_data(unsigned char paddr,unsigned char data)outportb(0 x37b,paddr);epp_check_clear();outportb(0 x37c,data);epp_check_clear();,EPP端口读函数epp_read_data()void epp_read_data(unsigned char paddr,unsigned char*data

4、)outportb(0 x37b,paddr);epp_check_clear();*data=inportb(0 x37c);epp_check_clear();,EPP接口与本实验平台的连接,如下,扩展接口扩展接口的原理及管脚定义如下图所示。,键盘、点阵实验扩展板,原理框图如下:,串口实验扩展板,原理框图如下:,端口地址 为了方便同学们的在实验中更快,更方便的找到实验板上各个芯片的端口地址,在实验指导书上详细列出了各个端口的地址及其简要的功能描叙。,头文件 在本实验指导书的附录里,列举了部分实验的参考源程序,以便同学们在学习的过程中参考。为了使程序更简化、直观,将常用的地址端口和函数定义成

5、头文件的形式,其头文件有:paddr.h 对实验板内地址进行了宏定义。eppinit.h EPP接口初始化。epprw.h EPP端口的读/写。displed.h LED数字显示函数。,实验一 EPP接口驱动LED显示,实验目的1熟悉EPP接口的输入/输出及读/写操作。2掌握七段LED显示驱动原理及接口方法。3熟悉C语言。,实验任务 1分析实验主板电路,指出输入/输出口地址。2编写LED显示程序,使实验主板上的四个LED显示任意四位数字和任意一位的小数点,并通过调试。,实验原理 LED显示器原理 7段LED显示器的结构和8位字节数的对应关系如下图:,LED显示实验电路 实验箱主板上带有的四位L

6、ED显示器采用四片CD4511(BCD七段锁存译码器)来驱动。其原理图如下:,4位LED显示的端口操作为:,本实验共用到的端口地址及其功能介绍00H(2Y0):输出口,用作后两位显示译码驱动器4511 的锁存使能信号。01H(2Y1):输出口,用作前两位显示译码驱动器4511 的锁存使能信号。03H(2Y3):输出口,用作4位小数点锁存器74LS273的 控制CLK信号。,编程与调试 程序说明 该程序设计功能为:先从最高位开始依次显示1,2,3,4,显示时只有一位显示,其它位熄灭。从高到低轮流点亮小数点。依次显示0000,1111,2222,3333,.一直到9999。,编程思路,编程步骤 调

7、用自定义头文件#include paddr.h#include epprw.h#include displed.h#include eppinit.h EPP端口初始化 epp_init();LED的数字显示 在LED上显示某个数,只要在对应的字节上写入这个数即可,例如:要在第二位LED上显示1,第一位LED上显示5,只要先向EPP地址端口写入这两位的地址0 x00(D_LED),再向EPP数据端口写入相应的数据。epp_write_data(D_LED,0 x15);如果想要熄灭某个LED,只要在相应的位上写入10到15的任意一个数。程序中利用此方法循环点亮LED。,思考和练习题 若不对EP

8、P接口进行初始化,会发生什么现象?为什么?编写循环点亮四位小数点的程序。可以同时点亮四位的小数点吗?如果可以,应怎样设置其端口控制字?,实验二 8255并行接口原理及编程,实验目的 1.熟悉8255内部结构和外部引脚定义。2.熟悉8255并行接口的原理和接口方法。3.掌握8255的简单应用编程。,实验任务 1编写出8255的初始化程序。2编写出循环控制发光二极管的显示程序,并运行通过 3编写出交通灯控制模拟程序。4理清8255的一些与实验板上其他芯片相连接的I/O端口电路。5掌握对8255PC口的位操作。,实验原理 8255工作原理 8255有8条数据引脚D0D7,它们全部是双向、三态,用来与

9、数据总线相连接;另外,还有6条输入控制引脚,分别是:RESET:复位输入信号,高电平有效。当RESET有效时,将梭鱼哦内部寄存器,包括控制寄存器清零,而且把A、B、C三个都设为输入方式,对应的PA7PA0、PB7PB0、PC7PC0引脚均为高阻态。CS:芯片选中信号,输入低电平有效。只有当它为低电平时,8255才被CPU选中。A0和A1:芯片内部寄存器的选中信号。当有效时,8255被选中,再由A0、A1的编码决定选中通道A、B、C,还是控制寄存器。RD:读信号。输入低电平有效。当它为低电平时,由CPU读出8255的数据或者状态信息。WR:写信号。输入低电平有效当它为低电平时,由CPU将数据或命

10、令写到8255。CS、A0、A1、WR、五根引脚的电平与8255操作的关系,详见下表,8255通道选择和基本操作表,8255控制字 8255方式选择控制字,方式0基本输入/输出方式1选通输入/输出方式2双向数据传送,8255按位置位/复位的控制字 通道C的每一位都可以通过向控制寄存器写入置位/复位控制字,而使它相应位置位(即输出为1)或复位(即输出为0)。通道C置位、复位控制字的具体格式下图所示。,实验电路图,本实验用到的端口地址:23H(1Y1):输出口,8255的控制端口20H(1Y1):输出口,8255端口A的地址21H(1Y1):输入口,8255B端口B的地址22H(1Y1):输入/输

11、出口,8255端口C的地址,编程与调试(一)交通灯实验1程序说明 通过对8255的A口读/写命令,来循环点亮与A口相 连接的红、黄、绿三个发光二级管。在点亮的过程中,同时在LED上显示时间,从60秒开始倒计时,60秒到6 秒红灯亮,5秒到1秒黄灯亮,然后再从从60秒开始倒 计时,60秒到6秒绿灯亮,5秒到1秒黄灯亮。依次循环。,2编程思路,3编程步骤 调用自定义头文件(同上实验一)。EPP端口初始化(同上实验一)。初始化8255。在本实验中设计为方式0、A口输出、B口输入,故向控制寄存器写入的数据为0 x82。在交通灯的实验中,我们就用到A口的输出。8255的片选由1Y1来控制,其控制寄存器的

12、地址为0 x23(CW_8255)。epp_write_data(CW_8255,0 x82);向8255的A口写数据。由指示灯的硬件电路可知,与其相连的端口输出为低电平,指示灯亮;输出为高电平,指示灯灭。在本实验中我们要依次点亮红色、黄色、绿色、黄色。epp_write_data(PA_8255,0 xfe);/*点亮红色指示灯*/delay(10000);/*延时*/epp_write_data(PA_8255,0 xfd);/*点亮黄色指示灯*/delay(10000);epp_write_data(PA_8255,0 xfb);/*点亮绿色指示灯*/delay(10000);epp_w

13、rite_data(PA_8255,0 xfd);/*点亮黄色指示灯*/,点亮实验板上的LED。在点亮指示灯的同时,要在LED上显示点亮时间,这个数字显示程序可直接调用上面介绍过的LED数字显示程序。epp_write_data(PA_8255,0 xfe);/*点亮红色指示灯*/for(i=60;i5;i-)/*点亮时间55秒*/displed(i,0);/*调用LED数字显示函数*/for(j=0;j100;j+)delay(1000);if(kbhit()exit(0);4源程序清单 参考指导书附录I-2。,(二)A、B并行口实验1程序说明 该程序为通过操作与8255的B口相连的开关键,

14、来控制与8255的A口相连的发光二极管的亮和灭。2编程思路,3编程步骤 调用自定义头文件(同上)。EPP端口初始化(同上)。初始化8255(同上)。读取8255的B端口的数据 与8255的B端口相连接的是8个开关控制器,通过操作这些开关可以使与其相连的B端口呈现高电平“1”或者低电平“0”。epp_read_data(PB_8255,向A端口写数据 epp_write_data(PA_8255,data)4源程序清单 参考实验指导书附录I-3。,思考和练习 1交通灯实验中如何同时点亮多个指示灯。2.能否从A口输出C口的获取量。3在不同的工作方式下,考虑I/O口的外设连接。,实验三 8253计数

15、器原理及分频实验,实验目的1.熟悉8253定时器/计数器的功能及接口方法。2.熟悉8253的分频原理。3.掌握8253的分频应用编程。,实验任务 1分析本实验主板上8253的硬件电路原理。2熟悉8253的工作原理后,编写出8253的 初始化程序。3编写出8253分频程序,观察实验显现。,实验原理 8253的引脚 8253有3个独立的16位减计器通道,每一个通道有三条引线:CLK、GATE和OUT。CLK:输入时钟,8253规定,加在CLK引脚的输入时钟周期不能小于380ns。GATE:门控信号输入引脚。这是控制计数器工作的一个外部信号。当GATE引脚为低时,通常都是禁止计数器工作的;只有 GA

16、TE为高时,才允许计数器工作。OUT:输出引脚。当计数到“0”时,OUT 引脚上必然有输出,输出信号波形取决于工作方式。,8253内部端口的选择及每个通道的读/写操作的选择如下表所示,8253的端口控制子,8253的工作方式和输出波形,实验电路组成原理框图,本实验共用到六个端口地址:23H(1Y1):输出口,8255的控制端口22H(1Y1):输出端口(PC3),发出计数器0的闸门信 号(0为关,1为开)A0H(1Y5):输入/输出端口,8253计数器0 的读写口A1H(1Y5):输入/输出端口,8253计数器1的读写口A3H(1Y5):输出端口,8253的控制寄存器的端口,编程与调试1.程序

17、说明 对8253的计数器0和1写入初值,使计数器1输出一定频率的方波,从而使得与计数器1输出端相连接的指示灯循环亮和灭。2.编程思路,3.编程步骤 调用自定义头文件(同上实验一)。EPP端口初始化(同上实验一)。初始化8255。8255的控制字应该定义C口的低位为输出口,工作方式为方式0。epp_write_data(CW_8255,0 x8a);PC3口置“0”,阻止脉冲输入。初始化8253前,要阻止脉冲输入,就要向PC3口置0,8255的C口的各个端口可以直接置位和复位。epp_write_data(CW_8255,0 x06);初始化8253。8253的计数器0、计数器1,工作方式分别为

18、方式2和方式3,都是先写低字节再写高字节和BCD码计数。向计数器0置入初值是1000,向计数器1置入的初值也是1000。,/*8253的0口初始化,写1000进去*/epp_write_data(CW_8253,0 x35);epp_write_data(CT0_8253,0 x00);epp_write_data(CT0_8253,0 x10);/*8253的1口初始化,设置时间为1s*/epp_write_data(CW_8253,0 x77);epp_write_data(CT1_8253,0 x00);epp_write_data(CT1_8253,0 x10);PC3置“1”,允许脉

19、冲输入。epp_write_data(CW_8255,0X07);4.源程序清单 参考实验指导书附录I-4。,思考和练习题 1向计数器0和计数器1写入不通的值,指示灯 会出现什么现象?2计数器0和1采用不同的工作方式,指示灯有 什么现象。38253的初始化要在一个脉冲的作用下才能完 成,这对实验中计数器输出信号的频率有没 有影响?,实验四 8253计数器在测频中的应用,实验目的 1了解频率测量原理。2.掌握8253的应用编程。实验任务 1.进一步理解8253的硬件电路原理。2.根据测频原理,编写出8253的测频程序,并运行通过。,实验原理 频率测量原理 所谓“频率”,就是周期性信号在单位时间变

20、化的次数。若在一定时间间隔T内,计得这个周期信号得重复变化次数为N,则其频率可表达为:fN/T。电子计数器就是严格按照该定义进行测频得。其原理方框图和工作时间波形下图所示。,8253的工作原理。自激振荡电路,图中将滑动变阻器Rw左边的阻值设为Rx,令R=RxR1。当R=R2时,当RR2时,,本实验主板上设计的是第二种情况,通过调节滑动变阻器Rw可获得不同频率的信号源。,电路原理,输入单元:输入的待测信号fx有以下三种来源:a.AO2是自D/A0832(程控信号源)输出的信号,详见实验六。b.FX是外界直接输入的信号。c.实验主板上自带的振荡电路源。计数部分:被测频率信号由8253的计数器2计数

21、,时基信号产生与变换单元 逻辑控制单元开门信号由8255的PC3控制。计数器0的输出(OUT0)和计数器1的时钟(CLK1)直接相连,计数器1的OUT1通过反相器,控制计数器2的CLK2的信号输入,完成硬件方面的控制。实验波形如下图4所示(计数器0、1、2的工作方式依次为方式2、0、2,闸门信号全部为高),闸门时间 在本实验中初始化8253时,设定计数器0、1、2的工作方式分别为0方式2、0、2,向计数器0、1、2中置入的数据一次为为N0、N1、N2。定义计数器0的时钟输入频率为F。闸门(PC3)打开后,信号F进入计数器0,计数器0工作在方式2经N0分频后输出的波形信号频率f0为:,(1),计

22、数器0输出的频率为f0的信号作为计数器1时钟信号(CLK1),计数器1工作在方式0,经 N1分频后输出的波形信号频率f1为:,由式(1)、(2)得:,(2)(3),计数器1输出的频率为f1的信号作为被测信号fx的门控信号,则信号f1的周期即为闸门时间T,由式(3)得:,(4),本实验共用到六个端口地址:23H(1Y1):输出端口,8255的控制端口 22H(1Y1):输出端口(PC3),发出计数器0的闸门信号(0为关,1为开)输入端口(PC6),读取计数器2的闸门信号(0为开,1为关)A3H(1Y5):输出端口,8253计数器的控制寄存器的端口 A0H(1Y5):输入/输出端口,8253计数器

23、0 的读写口 A1H(1Y5):输入/输出端口,8253计数器1的读写口 A2H(1Y5):输入/输出端口,8253计数器2的读写口,编程步骤1.程序说明 本程序是利用8253计数器,实现对未知频率信号的测频。实验过程中,可以通过探测点TP9、TP10、TP11分别查看计数器0、1、2的输出情况,通过测试点TP12、TP13测量经过74LS74输出的1Mhz、5KHz的波形信号。2.编程思路,4.编程步骤 调用自定义头文件(同上实验一)。EPP端口初始化(同上实验一)。初始化8255。epp_write_data(CW_8255,0 x8a);/*8255写控制字*/PC3置0,阻值脉冲输入(

24、同实验三)。初始化8253。/*8253的0口初始化,写1000进去*/epp_weite_data(CW_8253,0 x35);epp_weite_data(CT0_8253,0 x00);epp_weite_data(CT0_8253,0 x01);/*8253的1口初始化,设置时间为1s*/epp_weite_data(CW_8253,0 x71);epp_weite_data(CT1_8253,0 x00);epp_weite_data(CT1_8253,0 x10);/*8253的2口初始化,写ff进去*/epp_weite_data(CW_8253,0 xb4);epp_weit

25、e_data(CT2_8253,0 xff);epp_weite_data(CT2_8253,0 xff);,PC3置1,允许脉冲输入(同实验三)读取计数器1的输出量(PC6)。do epp_read_data(PC_8255,/*在实验主板上显示测频结果*/,4.源程序清单 参考实验指导书附录I-5。思考和练习题1为什么计数器1要工作在方式0能否工作在其余的工作 方式下?2图中计数器1和计数器0级联,计数器1是对计数器0的 溢出计数,其目的是什么?3不通的闸门时间对测频结果是否有影响?如何影响?48253的初始化要在一个脉冲的作用下才能完成,这对 用软件打开闸门的测频结果有什么影响?应该怎样

26、降 低这种影响?,实验五 双积分式A/D 转换器7109 的原理及应用,实验目的1.熟悉双积分式A/D转换器7109的工作原理和外围接口设计。2.深化理解双积分A/D转换器及数字电压表的工作原理。3.了解双积分式A/D转换器7109的简单应用程序。4.掌握利用A/D转换器进行电压测量的基本方法。,实验任务1.编写利用A/D转换器进行电压测量的程序,并通过运行。2.分析测量数据的误差及其来源。,工作原理 其主要端口端定义如下:(1)B1B12:12bit的数据输出端(2)OR:溢出判别,输出高电平表示过量程;反之,数据有效。(3)POL:极性判别,输出高电平表示测量值为正值;反之,负值。(4)M

27、ODE:方式选择,当输入低电平信号时,转换器处于直接输出工作方式。此时可在片选和字节使能的控制下直接读取数据;当输入高电平时,转换器将在信号信号握手方式的每一转换周期的结尾输出数据(本实验选用直接输出工作方式)。(5)REF:外部参考电压输入(本实验用其典型值:2.048V)。(6)INL,INH:输入电压端口(有效范围是参考电压的2倍)。(7)OO,OI:外部时钟输入(本实验用其典型值:3.579MHz)。(8)RUN/:运行/保持输入,当输入高电平时,每经8192时钟脉冲完成一次转换;当输入低电平时,完成正在进行的转换,并停在自动调零阶段(9)STATUS:状态输出,输出高电平,表明芯片处

28、于积分和反向积分阶段;输出为低电平,表明反向积分结束,数据被锁存,模拟部分处于自动返回零态阶段。,(10)CE/:片选,当其为低电平时,数据正常输出;当其为高电平时,所有数据输出端(B1B12、POL、OR)均处于高阻状态。(11)LBEN:低字节使能,输出低电平时,数据线输出低位字节B1B8。(12)HBEN:高字节使能,输出低电平时,数据线输出当高位字节B9B12以及POL、OR的状态值。A/D转换时序(ICL7109直接接口方式),测量放大电路,如图选择不通电阻其增益分别为:引脚“1”脚断开,增益选择为1倍。引脚“1”和“10”相连,增益为10倍;引脚“1”和“100”相连,增益为100

29、倍;引脚“1”和“200”相连,增益为200倍;引脚“1”和“300”相连,增益为300倍;,A/D转换器7109实验原理图,数据及控制信号接口,本实验共用到五个端口:80H(1Y4):输出口,7109低位字节输出口。60H(1Y3):输出口,7109高位字节输出口。22H(1Y1):输入/输出端口,D2控制7109起停(R/H),D4位读取7109的状态(STATUS)信号(1正 在转换;0转换完毕)。23H(1Y1):输出口,8255的控制端口,校准测量原理 参见实验指导书。,编程与调试1.程序说明 本程序是利用实验主板上的7109A/D测量输入电压,输入电压有4种选择,测量前必须将输入电

30、压端口的跳线选择到需要测量的那个端口。增益也有五种选择(1,10,100,200,300),可根据实验需要选择某一档,并将其跳线连接好。实验测得的电压值同时在PC机的CRT和实验主板内的LED上显示出来。实验过程中,可以通过测试点TP2查看7109的工作状态,通过探测点TP3查看7109芯片的启动状态。,2.编程思路,3.编程步骤 1调用自定义头文件(同上实验一)。2EPP接口初始化(同上实验一)。3初始化8255(同上实验二)。epp_write_data(CW_8255,0 x8a);/*初始化8255*/4PC2置“1”。8255的端口PC2与芯片7109的启动端口()直接相连,将PC2

31、置“1”,则启动芯片7109让它开始工作。epp_write_data(CW_8255,0 x05);/*PC2置1,启动芯片7109的转换*/5读PC4的状态。do epp_read_data(PC_8255,/*判断status值:为1正在转换;为0转换完*/,6PC2置“0”。epp_write_data(CW_8255,0 x04);/*PC2置0,R/=停止转换*/7读取7109转换完毕的数字量,并将其转化成电压值。epp_read_data(H_7109,9电压值显示在实验主板内的LED上。,源程序清单 参考实验指导书附录I-6。,思考和练习题1.双斜积分式A/D转换器7109芯片

32、包括哪几个工作过程?2.7109的输入参考电压对A/D转换结果有何影响?如A/D转换结果 偏大,应如何调节参考电压?3.记录10组对2.048V的标准电压由7109A/D转换结果。如测量结果 偏大,可能是什么原因造成的?4.若输入电压的范围是0204.8mV,则参考电压应调节在多大?此时电压测量的分辨率是多大?5根据校准原理,试用校准方法测量(AIN+)输入的被测电压,并 显示结果。,实验六 逐次比较式A/D转换器0809的原理及编程,实验目的1.熟悉逐次逼近式A/D转换器芯片的工作原理。2.了解A/D转换芯片0809的接口设计方法。3.掌握A/D转换器0809简单的应用编程。,实验任务 1.

33、分析本实验板的电路原理。2.编写出逐次逼近式A/D转换器芯片0809的转换与显示的控制 程序,测量通道0-7的输入的信号。,实验原理 0809工作原理 ADC0809是8路输入的8位逐次逼近A/D转换器,其转换时间为16个外部时钟周期。其主要端口端定义如下:IN7IN0:八个模拟量输入端。D7D0:数字量输出端。ENABLE:输出允许信号。当此信号被选中时,允许从A/D转换器的锁存器中读取数字量。高电平有效。START:启动A/D转换,当START为高电平时,A/D转换开始。ALE:地址锁存允许,高电平有效。当ALE为高电平时,允许C、B、A所示的通道被选中,并把该通道的模拟量接入A/D转换器

34、。EOC:转换结束信号。当A/D转换结束后,发出一个正脉冲,表示A/D转换完毕。此信号可用作A/D转换是否完成的检测信号。ADDA、ADDB、ADDC:通道号选择端,C为最高位,A为最低位。CLOCK:外部时钟(本实验采用500KHz的时钟频率)。Vref(),Vref():参考电压端,用来提供D/A转换器权电阻的标准电平(本实验采用典型值:Vref()=5V,Vref()=0V)。,A/D转换时序,被测电压与A/D转换结果关系,式中:Vin 0809A/D转换器输入电压。NADC 0809A/D转换结果的8bit数字量;Vr 0809A/D转换器外部参考输入电压,Vr5.00V;,数据及控制

35、信号接口,A/D转换器0809实验电路图,本实验共用到三个端口:40H47H(1Y2):输入/输出端口,0809的地址,控制 字任意。23H(1Y1):输出端口,8255的控制端口。22H(1Y1):输入端口,查询0809转换状态信号(“0”正 在转换;“1”转换完毕)。,编程与调试(一)0通道测量电压 1程序说明 输入电压有4种选择,测量前,在实验主板上必须将跳线选择到需要测量的那个端口。增益也有五种选择(1,10,100,200,300),可根据实验需要选择一档,并在实验板上将其跳线连好。实验测得的电压值显示在PC机的CRT和实验主板的LED上。2编程思路,3编程步骤 调用自定义头文件。E

36、PP端口初始化。初始化8255。epp_write_data(CW_8255,0 x8a);启动芯片0809。epp_write_data(AD_0809,0 x00);/*启动0809进行转换*/读取转换状态量 void eoc(void)unsigned char status;do/*读8255的pc5的值,为1时转换完毕*/epp_read_data(PC_8255,/*状态为0时,继续读取状态转换量*/,读取A/D转换完毕的数字量,放入firstdata中。epp_read_data(AD_0809,在LED上的显示被测电压值。4源程序清单 参考实验指导书附录I-7。,(二)测量17

37、通道电压 测量17通道电压的编程思路和测量0通道的输入电压一样,所不通的只是要根据信号的输入通道来确定其输入端口的地址,通道不同其端口地址也不同。下面就仅介绍如何获取通道地址,其余部分参见上面的0通道测量电压实验。程序的开始要输入当前实验所采用的输入通道(cha),如:printf(Please input the channel which you will measure(int 1-7):);scanf(%d,/*输入值是被测信号输入的那个通道*/芯片0809的基地址为:0 x40(AD_0809),选择通道后,该通道的地址就为:0 x40cha(AD_0809cha)。即程序中对端口地

38、址的读写就不再是0 x40,而是0 x40cha。参考程序实验指导书附录I-8。,思考和练习题 1用AD0809采集交流正弦波形,调节信号频率从100Hz增加,观察显示波形的变化。当多高频率时,显示波形异常,解释此现象?2.利用实验五介绍的校准方法,思考如何进行校准测量?3.编写0通道的有校准测量的实验程序,电压输入端选择04.096V,调节其输入电压值,比较有无校准的测量结果,参考源程序见实验指导书附录I-9)。,实验七 D/A转换器0832的原理实验,实验目的 1.了解典型D/A转换器DAC0832的工作原理。2.掌握芯片0832的接口设计方法。,实验任务 1.找出本实验中芯片0832的地

39、址。12.编写实验程序,向0832输入不通的数字电压以获得其相应的模拟电压输出,并运行通过。3.记录实验中电压的输出值。,实验原理 DAC0832工作原理 主要引脚定义如下:DI0-DI7:8条数据输入线。ILE、CS、WR1:三条为输入锁存器的选通线,其中ILE为输入锁存器允许信号输入线(高电平有效),为片选信号输入线(低电平有效),为写信号输入线(低电平有效)。只有当三条线同时有效时,输入数据锁存器才被选通。XFER和WR2:二条为DAC锁存器选通线,其中XFER为传送控制信号输入线(低电平有效),WR2为写信号输入线(低电平有效),只有当二条线同时有效时,DAC锁存器才被选通。,D/A电

40、流输出表达式,式中,Io1 DAC0832输出电流;(Io1Io2常数);NDAC DAC0832数字输入量;Vr DAC0832外部参考输入电压;R DAC0832内部固定电阻,恒为5K。,DAC0832数/模电压转换实验电路,芯片0832的数字电压输入端口(DI7DI0)与实验主板上的八位双向数据总线(D7D0)相连;与地址线2Y5相连,则其地址为05H;参考电压有以下两种选择:AO1来自实验主板上的信号源(参见实验八)。Vr5V来自实验主板上的参考电压源,实验电路原理如下图。,Vr5V实验电路,输出电压值的计算 DAC0832直接得到的转换输出信号是模拟电流,为得到电压输出,实验电路加了

41、一个运算放大器,得到单极性的电压输出。其中,R=5k;Rfb=15k是固定的内部电阻。则,D/A转换后的输出电压,在本实验中参考电压Vref选择实验主板上的参考电压源Vr5V,其理论值为5V,则D/A转换后的输出电压就为:,本实验只用到一个端口地址:05H(2Y5):输出口,DAC0832(IC35)的地址。,编程与调试(1)程序说明 向实验主板上的DAC0832(IC35)写入不同的数字(0256),在其输出端测量其相应的电压值,因实验主板上测试点AO2与其输出端口直接相连,只要测量测试点AO2,就可获取经DAC0832的转换电压。程序中在PC机的CRT上还将显示对应的理论电压值,以便实验者

42、参考。,(2)编程思路,(3)编程步骤 1调用自定义头文件(同实验一)。2EPP接口初始化(同实验一)。3启动芯片DAC0832(实验主板上的IC35)。epp_write_data(DA2_0832,0 x00);/*启动0832(IC35)芯片*/4向0832写入数据。DAC0832是8位的D/A转换器,故写入的数据应该在0256之间。epp_write_data(DA2_0832,number);5在PC机的CRT上显示转换电压。volt=(float)(number*5.00/256);/*电压转换*/printf(n%.2f,volt);/*输出模拟电压值*/,思考和练习题 1.为什

43、么测得的电压值和理论值有区别?2.数字输入“0”时,其输出电压为什么不为0?3.测量电压时,万用表的负极分别和实验主板上的模拟地和数字地相连接,其测得的结果是不是一样?如不一样,为什么?4.测得的电压值与输入数字0时获得的电压值的差值与其相应的理论电压有什么关系?,(4)源程序清单 参考程序见实验指导书附录I-10,实验八 DAC0832在程控信号源中的应用,实验目的1.了解数字式信号波形合成的原理和方法。2.掌握程控信号源的工作原理及实现方法。,实验任务1.根据本实验的电路原理图确定各端口的地址。2.通过EPP接口控制相应端口,使之产生不同波形、不同频率和幅度的信号。,实验原理 波形的数字合

44、成原理 在波形的数字合成中,通常是向D/A转换器输入端提供特定的数据流,则在输出端便可获得相应函数波形的信号电压。,如图(a)所示的一个八位二进制的加法计数器对时钟计数过程中,计数值N按0、1、2、3255、0、1、2、3规律递增变化,得到一串8位二进制码的数据流,把它送入DAC的输入端,则DAC的输出Uo(t)呈梯形的增长,获得如图(b)所示的波形。若每步跳为0.01V,则Uo(t)从02.55V的范围变化。若采用一个可逆计数器对时钟信号交替地作加、减计数时,N的变化为0、1、2、3255、254、2533、2、1、0、1、2,则Uo将获得一个三角波的输出电压。,本实验如果采用所示的方案,在

45、计数器和DAC之间接入一个ROM,先在ROM中写入某一函数的幅值数据,根据加法(或减法)计数器提供的地址码,取出相应地址单元的内容,送至DAC输入端,则可获得任意波形的输出。如三角波、矩形波、正弦波、辛克波(sinx/x)、钟形波等。,DAC0832工作原理 程控信号源实验电路,程控的实现 在8KB 的EPROM中固化有16种波形数据,由高4位地址A8A11选择;每一种波形的一个周期由256个数据代码构成,由低8位地址A0A7寻址。EPROM高4位地址A8A11来自锁存器74LS273的高4位Q5Q8,通过对74LS273的编程可实现波形的程控。选择好波形后,该波形的256个数据点的8位地址A

46、7A0由一个8位地址计数器(二进制计数器)循环计数产生。实验主板上采用了两个4位二进制计数器74LS169级联实现。通过改变地址计数器的输入时钟频率便可控制波形数据从EPROM中读出的速率,从而改变输出频率。固定的2MHz频率通过一74LS169向地址计数器提供输入时钟。计数器74LS169采用减计数的工作方式,4位预置初值位A、B、C、D与74LS273的低4位Q1Q4相连,通过对74LS273的编程可实现频率的程控。DAC0832(IC33)的数据写入控制端WR1与74LS169的动态进位输出TC相连,同时TC又作为波形数据点地址计数器的时钟,这使得每个地址状态对应一个信号周期,从而实现地

47、址计数器、波形EPROM及DAC0832(IC33)的同步工作。将AO1作为DAC0832(IC35)的参考电压(参见实验七的图7-1),DAC0832(IC35)就构成一个8位程控衰减器。通过控制写入DAC0832(IC35)的8位数字量,可实现对电压幅度的程控。,输出电压值的计算 在本实验中,第一片DAC0832(IC33)的输出电压为:,第二片DAC0832(IC35)的输出电压为:,输出信号及其 对应的控制数据,本实验共用到二个端口地址 04H(2Y4):输出口,锁存器273地址,对程控信号源波 形、频率控制。05H(2Y5):输出口,第二片DAC0832(IC35)地址,程控信号源幅

48、度控制。,编程与调试(一)程序说明 程控信号源可输出16种波形(正弦波、方波。锯齿波(1)、锯齿波(2)、梯形波、三角波、台阶波(1)、台阶波(2)、台阶三角波、全波整流波、钟形波、辛克波、对数波、M波、调幅波、窄脉冲波),幅度范围位05V。本实验中,可在AO1和AO2口测量获得的波形。,(二)编程思路,(三)编程步骤 1调用自定义头文件(同实验一)。2EPP端口初始化(同实验一)。3选择波形和分频数。例如要选择1倍分频的方波,则高四位分别为0001,低四位分别为0001:epp_write_data(AD1_0832,0 x11);4电压幅度的控制。(四)源程序清单 参考程序见实验指导书附录

49、I-10。,思考和练习题 1.若分频器的输入数据增大,则产生的波形频率是增大还是减小?2.若DAC0832(IC35)的输入数据增大,产生的信号幅度是增大还是减小?3.本实验主板产生的信号频率范围如何?有多少个点频信号输出,其频率值分别为多少?4.本实验主板产生的信号幅度范围如何?有多少个幅度值输出,每跳步的幅度间值相同吗?,实验九 LED点阵显示技术,实验目的 1.了解LED点阵显示的原理及接口驱动方法。2.熟悉动态扫描显示方式在显示技术中的应用。3.掌握并行接口与点阵显示的硬件接口和软件编程。实验任务 1.编写使点阵块全亮和全灭的点阵显示驱动程序段。2.编写简单的点阵显示程序,在LED点阵

50、板显示汉字。3.编写在LED点阵显示上显示任意字符的点阵显示程序。,实验原理 LED点阵简介 LED点阵式显示器不仅可以显示数字,也可显示所有西文字母和符号,与由单个发光二极管连成的显示器相比,具有焊点少、连线少,所有亮点在同平面、亮度均匀、外形美观等优点,可以代替数码管、符号管和米字管。如果将多块组合,可以构成大屏幕显示屏,用于汉字、图形、图表等等的显示,因此被广泛用于机场、车站、码头、银行及许多公共场所的指示、说明、广告等场合。,88的LED点阵显示器结构,88的LED点阵显示器,是由64个LED组成,内部电路如图9-1所示。共阳极的8 8的LED点阵显示器的典型连接方式是:每一行的阳极连

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号