微机原理与接口技术实验讲稿(PPT).ppt
《微机原理与接口技术实验讲稿(PPT).ppt》由会员分享,可在线阅读,更多相关《微机原理与接口技术实验讲稿(PPT).ppt(183页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、微机原理与接口技术微机原理与接口技术实验讲稿(PPT)实验项目w实验箱简介 w基于 EPP接口的LED显示w8255并行接口原理及编程w8253计数器原理及分频实验w8253计数器在测频中的应用w双积分式A/D 转换器7109 的原理及编程w逐次比较式A/D转换器0809的原理及编程wD/A转换器0832的原理实验wDAC0832在程控信号源中的应用wLED点阵显示w基本并行输入/输出口在键盘接口中的应用w8250串行通信w电子称实验 实验箱简介w实验箱的组成原理 实验主板的原理 实验主板是由并行I/O、定时器/计数器、A/D转换器、D/A转换器及LED显示器等接口部件构成,采用了总线结构,各
2、功能部件均通过内部总线进行连接,如下图所示。实验主板的内总线结构 实验主板的布局wEPP接口原理 EPP信号特性,其引脚定义如下图 EPP端口寄存器 端口地址如表下图所示。表中BASE为并口基地址,状态寄存器和控制寄存器各位具体定义如下图所示。EPP接口初始化 在使用EPP之前应将并口置于正向传输模式(输出),即将控制寄存器的方向位(Bit5)置0。可编写EPP初始化函数epp_init()如下:void epp_init(void)outportb(0 x37a,0 x04);EPP时序 数据/地址写周期时序 数据/地址读周期时序 EPP端口读写 计算机要同外设实验箱通信,就要通过EPP接口
3、来读写数据,因此,首先应向EPP地址端口(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,uns
4、igned char*data)outportb(0 x37b,paddr);epp_check_clear();*data=inportb(0 x37c);epp_check_clear();wEPP接口与本实验平台的连接,如下w扩展接口扩展接口的原理及管脚定义如下图所示。w键盘、点阵实验扩展板,原理框图如下:w串口实验扩展板,原理框图如下:w端口地址 为了方便同学们的在实验中更快,更方便的找到实验板上各个芯片的端口地址,在实验指导书上详细列出了各个端口的地址及其简要的功能描叙。w头文件 在本实验指导书的附录里,列举了部分实验的参考源程序,以便同学们在学习的过程中参考。为了使程序更简化、直观
5、,将常用的地址端口和函数定义成头文件的形式,其头文件有:paddr.h 对实验板内地址进行了宏定义。eppinit.h EPP接口初始化。epprw.h EPP端口的读/写。displed.h LED数字显示函数。实验一实验一 EPP接口驱动LED显示 w实验目的1熟悉EPP接口的输入/输出及读/写操作。2掌握七段LED显示驱动原理及接口方法。3熟悉C语言。w实验任务 1分析实验主板电路,指出输入/输出口地址。2编写LED显示程序,使实验主板上的四个LED显示任意四位数字和任意一位的小数点,并通过调试。w实验原理 LED显示器原理 7段LED显示器的结构和8位字节数的对应关系如下图:LED显示
6、实验电路 实验箱主板上带有的四位LED显示器采用四片CD4511(BCD七段锁存译码器)来驱动。其原理图如下:4位LED显示的端口操作为:w本实验共用到的端口地址及其功能介绍00H(2Y0):输出口,用作后两位显示译码驱动器4511 的锁存使能信号。01H(2Y1):输出口,用作前两位显示译码驱动器4511 的锁存使能信号。03H(2Y3):输出口,用作4位小数点锁存器74LS273的 控制CLK信号。w编程与调试 程序说明 该程序设计功能为:先从最高位开始依次显示1,2,3,4,显示时只有一位显示,其它位熄灭。从高到低轮流点亮小数点。依 次 显 示 0000,1111,2222,3333,.
7、一直到9999。编程思路 编程步骤 调用自定义头文件#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的任意一个数。程序中利用此方法循环
8、点亮LED。w思考和练习题 1.若不对EPP接口进行初始化,会发生什么现象?为什么?2.编写循环点亮四位小数点的程序。3.可以同时点亮四位的小数点吗?如果可以,应怎样设置其端口控制字?实验二 8255并行接口原理及编程 w实验目的 1.熟悉8255内部结构和外部引脚定义。2.熟悉8255并行接口的原理和接口方法。3.掌握8255的简单应用编程。w实验任务 1编写出8255的初始化程序。2编写出循环控制发光二极管的显示程序,并运行通过 3编写出交通灯控制模拟程序。4理清8255的一些与实验板上其他芯片相连接的I/O端口电路。5掌握对8255PC口的位操作。w实验原理 8255工作原理 8255有
9、8条数据引脚D0D7,它们全部是双向、三态,用来与数据总线相连接;另外,还有6条输入控制引脚,分别是:RESET:复位输入信号,高电平有效。当RESET有效时,将梭鱼哦内部寄存器,包括控制寄存器清零,而且把A、B、C三个都设为输入方式,对应的PA7PA0、PB7PB0、PC7PC0引脚均为高阻态。CS:芯片选中信号,输入低电平有效。只有当它为低电平时,8255才被CPU选中。A0和A1:芯片内部寄存器的选中信号。当有效时,8255被选中,再由A0、A1的编码决定选中通道A、B、C,还是控制寄存器。RD:读信号。输入低电平有效。当它为低电平时,由CPU读出8255的数据或者状态信息。WR:写信号
10、。输入低电平有效当它为低电平时,由CPU将数据或命令写到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):输入口,
11、8255B端口B的地址22H(1Y1):输入/输出口,8255端口C的地址 w编程与调试(一)交通灯实验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口的输
12、出。8255的片选由1Y1来控制,其控制寄存器的地址为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);/*点亮绿
13、色指示灯*/delay(10000);epp_write_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程序说明 该
14、程序为通过操作与8255的B口相连的开关键,来控制与8255的A口相连的发光二极管的亮和灭。2编程思路3编程步骤 调用自定义头文件(同上)。EPP端口初始化(同上)。初始化8255(同上)。读取8255的B端口的数据 与8255的B端口相连接的是8个开关控制器,通过操作这些开关可以使与其相连的B端口呈现高电平“1”或者低电平“0”。epp_read_data(PB_8255,&data);向A端口写数据 epp_write_data(PA_8255,data)4源程序清单 参考实验指导书附录I-3。w思考和练习 1交通灯实验中如何同时点亮多个指示灯。2.能否从A口输出C口的获取量。3在不同的工
15、作方式下,考虑I/O口的外设连接。实验三 8253计数器原理及分频实验 w实验目的1.熟悉8253定时器/计数器的功能及接口方法。2.熟悉8253的分频原理。3.掌握8253的分频应用编程。w实验任务 1分析本实验主板上8253的硬件电路原理。2熟悉8253的工作原理后,编写出8253的 初始化程序。3编写出8253分频程序,观察实验显现。w实验原理 8253的引脚 8253有3个独立的16位减计器通道,每一个通道有三条引线:CLK、GATE和OUT。CLK:输入时钟,8253规定,加在CLK引脚的输入时钟周期不能小于380ns。GATE:门控信号输入引脚。这是控制计数器工作的一个外部信号。当
16、GATE引脚为低时,通常都是禁止计数器工作的;只有 GATE为高时,才允许计数器工作。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):输
17、出端口,8253的控制寄存器的端口 w编程与调试1.1.程序说明 对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);
18、初始化8253。8253的计数器0、计数器1,工作方式分别为方式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_dat
19、a(CT1_8253,0 x10);PC3置“1”,允许脉冲输入。epp_write_data(CW_8255,0X07);4.4.源程序清单 参考实验指导书附录I-4。w思考和练习题 1向计数器0和计数器1写入不通的值,指示灯 会出现什么现象?2计数器0和1采用不同的工作方式,指示灯有 什么现象。38253的初始化要在一个脉冲的作用下才能完 成,这对实验中计数器输出信号的频率有没 有影响?实验四 8253计数器在测频中的应用 w实验目的 1了解频率测量原理。2.掌握8253的应用编程。w实验任务 1.进一步理解8253的硬件电路原理。2.根据测频原理,编写出8253的测频程序,并运行通过。w
20、实验原理 频率测量原理 所谓“频率”,就是周期性信号在单位时间变化的次数。若在一定时间间隔T内,计得这个周期信号得重复变化次数为N,则其频率可表达为:fN/T。电子计数器就是严格按照该定义进行测频得。其原理方框图和工作时间波形下图所示。8253的工作原理。自激振荡电路 图中将滑动变阻器Rw左边的阻值设为Rx,令R=RxR1。当R=R2时,当R8)-0 xa1;/*寻找字符在汉字库中的区*/qu=(point_quwei&0 x00ff)-0 xa1;rec=(qu*94+wei)*32L;ASC码与相应区位码的转换 ASC码的所有符号全在区位码的第三区,位码的偏移量为0 x21H。ASC码在字
21、库中的偏移量为:(区码*94+(位码-21H)*32L由此可编辑偏移量的源代码为:inter_code.ed0=charactercount;point_quwei=inter_code.ed;/*寻找字符咱汉字库中的位*/wei=(point_quwei&0 x00ff)-0 x21;qu=0 x03-0 x01;/*寻找字符在汉字库中的区*/rec=(qu*94+wei)*32L;LED点阵式显示器实验电路 w本实验共用到的端口地址(地址跳线选择1Y6):C1H(Y0):输出口,行扫描码锁存器地址C2H(Y2):输出口,字形行码左锁存器地址C3H(Y3):输出口,字形行码右锁存器地址 w编
22、程与调试(一)简单的汉字显示 1程序说明 该程序为根据每个字符的点阵码(1616),直接在LED点阵上显示汉字“电子科大”。2编程思路 3编程步骤 根据需要选择自定义头文件(同实验一)。EPP端口初始化(同实验一)。选择点亮行。要点亮某行的LED,先要向行地址端口写入行数,例如要点亮第一行:epp_write_out(ROW_DOT,0 x00);写入每列的点阵码。要点亮某行的LED,向行地址写入数据后,先向左边列写数据再向右边列写数据。例如我们要点亮第一行的第一、三、五、七、九、十一、十三、十五列:epp_write_out(ROW_DOT,0 x00);/*选择第几行*/epp_write
23、_out(L_DOT,0 xaa);/*向左边列写入数据*/epp_write_out(H_DOT,0 xaa);/*向右边列写入数据*/4源程序清单 参考程序见实验指导书附录I-12。(二)在点阵上显示任意字符 1程序说明 点阵不仅可以显示汉字,任意字符它都可以显示。可以根据字库的存储原理,在字库中查找要显示字符的点阵码,再将这些点阵码写到的实验板子上,就可以在LED点阵上显示任意想要的字符。2编程思路 3编程步骤 根据需要选择自定义头文件(同实验一)。EPP端口初始化(同实验一)。输入字符显示速度。printf(Please input the speed within range of
24、50 and 1000 n);scanf(%d,&speed);打开文件。例如:当文件Hzk16j.dot和hz.txt都存放在F盘win98文件中的dot子文件中,则:fpk=fopen(F:win98dotHzk16j.dot,rb)fpt=fopen(F:win98dothz.txt,r);读取将要显示的字符。word=fgetc(fpt);获取字符的区位码。如果的字符是为数字或者特殊符号:inter_code.ed1=wordcount1;point_quwei=(unsigned short*)inter_code.ed;wei=(*point_quwei)&0 x00ff)-0 x
25、21;qu=0 x03-0 x01;rec=qu*94+wei;addr_dot=rec*32L;如果字符是为汉字:inter_code.ed1=wordcount1;point_quwei=(unsigned short*)inter_code.ed;wei=(*point_quwei)&0 xff00)8)-0 xa1;qu=(*point_quwei)&0 x00ff)-0 xa1;rec=qu*94+wei;addr_dot=rec*32L;根据区位码读取字符的点阵码。/*将指针指向字库中将要显示的字符的点阵码的位置*/fseek(fpk,addr_dot,0);/*读取所要显示的字符
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 实验 讲稿 PPT
限制150内