ImageVerifierCode 换一换
格式:DOCX , 页数:36 ,大小:616.06KB ,
资源ID:4723912      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4723912.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(东南大学计算机系接口实验报告样板.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

东南大学计算机系接口实验报告样板.docx

1、东南大学计算机系接口实验报告样板东南大学接口实验报告09006110 090061112008-12-17实验2-11将8253计数器0设置为方式0,计数器初值设置为N(N0FH)。将实验台上单脉冲接到CLK0 上,用手动逐个输入单脉冲,编程使计数值在计算机屏幕上显示(查询方式),并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。2.实验电路3.实验程序流程图及代码#include #include #include ApiEx.h #pragma comment(lib,ApiEx.lib) void main() BYTE data; printf(-EXP2_1

2、-n); printf(Press any key to begin!nn); getch(); printf(Press any key to exit!n); if(!Startup() printf(ERROR:Open Device Error!n); return; /8253片选地址为0x280 PortWriteByte(0x283,0x10); /给计算器0写控制字00010000 B = 10 H PortWriteByte(0x280,0x0A); /计算器0置初值0A H while(!kbhit() /判断是否有键按下 PortReadByte(0x280,&data)

3、; /读计数器0的值 Sleep(1000); /延迟一秒钟 printf(%dn,data); Cleanup();实验2-21. 将计数器0,计数器1分别设置为方式3,利用这两个计数器,将实验台上的一个1MHz的方波信号分频为1Hz的方波(做好8253初始化工作),并将此方波接到L7上,观察L7 以周期为1秒的频率闪烁。2.实验电路3.实验程序流程图及代码#include#include#includeApiEx.h#pragma comment(lib,ApiEx.lib)void main() printf(-EXP2_2-n); printf(Press any key to beg

4、in!n); getch(); printf(Press any key to exit!n); if(!Startup() printf(ERROR:Open Device Error!n); return; /8253片选地址280 H PortWriteByte(0x283,0x36); /计算器0初始化,控制字00110110 B = 36 H PortWriteByte(0x280,0xE8); /计数初值1000 = 03E8 H PortWriteByte(0x280,0x03); PortWriteByte(0x283,0x76); /计数器1初始化,控制字01110110 B

5、 = 76 H PortWriteByte(0x281,0xE8); /计数器初值1000 = 03E8 H PortWriteByte(0x281,0x03); Cleanup();实验3-1-11. 用查询方式将8255的A 口设为输出,接指示灯L0L7,C 口设为输入并将PC0接正脉冲输入,CS 接到实验台的138译码的8组I/O地址中的任意一组上,通过程序不断地查询PC0的输入值.为高电平的时候让指示灯显示一秒钟的0x55(软件延时),否则让指示灯显示0xAA。2.实验电路3实验程序流程图及代码#include#include#includeApiEx.h#pragma comment

6、(lib,ApiEx.lib)void main() BYTE data; printf(-EXP3_1_1-n); printf(Press any key to begin!n); getch(); printf(Press any key to exit!n); if(!Startup() printf(ERROR:Open Device Error!n); return; /8255片选地址280 H PortWriteByte(0x283,0x89); /控制字10001001 B = 89H while(!kbhit() PortReadByte(0x282,&data); /读P

7、C口 if(data%2=0) PortWriteByte(0x280,0xaa); else PortWriteByte(0x280,0x55); Sleep(1000); Cleanup();实验3-1-21. 用中断方式 将8255的A 口设为输出,接指示灯L0L7,CS接到实验台的138译码的8组I/O地址中的任意一组上,IRQ直接接到实验台上的单脉冲,要求直接用手动产生的单脉冲作为中断请求信号,每按一次单脉冲产生一次中断让指示灯显示一秒钟的0x55,否则让指示灯显示0xAA。2.实验电路3.实验程序流程图及代码#include #include #include ApiEx.h #p

8、ragma comment(lib,ApiEx.lib) int i; void MyISR() PortWriteByte(0x288,0x55); Sleep(1*1000); printf(%dn,i+); void main() printf(-EXP3_INT2-n); printf(Press any key to begin!n); getch(); if(!Startup() printf(ERROR: Open Device Error!n); return; printf(Please Press DMC! Press any key to exit!n); PortWri

9、teByte(0x28b,0xa0); RegisterLocalISR(MyISR); /*注册中断程序*/ EnableIntr(); /*开中断*/ while(!kbhit() PortWriteByte(0x288,0xaa); Sleep(100); DisableIntr(); /*关中断*/ Cleanup();实验3-21.利用实验二的第二个实验产生一个周期为1秒的中断,编程在中断处理程序中打印中断的次数到计算机屏幕上。2.实验电路3.实验程序流程图及代码#include#include#includeApiEx.h#pragma comment(lib,ApiEx.h)in

10、t i;void MyISR() PortWriteByte(0x288,0x55); printf(%dn,i+);void main() printf(-EXP3_2-n); printf(Press any key to begin!nn); getch(); printf(Press any key to exit!n); if(Startup() printf(ERROR:Open Device Error!n); return; /8255片选地址288 H PortWriteByte(0x28b,0xa0); /控制字0A0 H /8253片选地址280H PortWriteBy

11、te(0x283,0x36); /计数器0工作方式3,控制字00110110 B = 36 H PortWriteByte(0x280,0xE8); /初值1000 = 03E8 H PortWriteByte(0x280,0x03); PortWriteByte(0x283,0x76); /计数器1工作方式3,控制字01110110 B = 76 H PortWriteByte(0x281,0xE8); /初值1000 = 03E8 H PortWriteByte(0x281,0x03); RegisterLocalISR(MyISR); EnableIntr(); while(!kbhit

12、() PortWriteByte(0x288,0xaa); DisableIntr(); Cleanup();实验4-11. 8255的C口 接逻辑电平开关K0K7,A 口 接LED显示电路L0L7,CS接到实验台的138译码的8组I/O地址中的任意一组上,编程采用查询方式从8255C 口输入数据再从A 口输出。2.实验电路3.实验程序流程图及代码#include#include#includeApiEx.h#pragma comment(lib,ApiEx.lib)void main() byte data; printf(-EXP4_1-n); printf(Press any key t

13、o begin!n); getch(); if(!Startup() printf(ERROR:Open Device Error!n); return; /8255片选地址280 H PortWriteByte(0x283,0x89); /控制字10001001 B=89 H printf(Press any key to exit!n); while(!kbhit() /读PC口 PortReadByte(0x282,&data); /PA输出 PortWriteByte(0x280,data); Cleanup();实验4-21. 将8255的A 口设置为方式1输出,接LED显示电路L0

14、L7。将单脉冲接到8255的PC6上,每按 一次单脉冲按钮产生一个脉冲,该脉冲使8255通过PC3产生一次中断请求到IRQ。CS接到实验 台的138译码的8组I/O地址中的任意一组上,编程在中断处理程序中依次输出01H、02H、04H、08H、10H、20H、40H、80H,使L0L7依次发光,中断8次结束。2.实验电路3.实验程序流程图及代码#include#include#includeApiEx.h#pragma comment(lib,ApiEx.lib)byte data8 = 0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80;int i=0;void

15、MyISR() PortWriteByte(0x280,datai); i+;void main() printf(-EXP4_2-n); printf(Press any key to begin!n); getch(); if(!Startup() printf(ERROR:Open Device Error!n); return; /8255片选地址为280H PortWriteByte(0x283,0xA0); /控制字为10100000B = 0A0H /PC6 INTE 置1 PortWriteByte(0x283,0x0D); RegisterLocalISR(MyISR); E

16、nableIntr(); printf(Press any key to exit!n); while(i 8 & !kbhit() ) DisableIntr(); Cleanup();实验4-31. 将8255的A 口设置为方式1输入,接逻辑电平开关K0K7。将单脉冲接到8255的PC4上,每按 一次单脉冲按钮产生一个脉冲,该脉冲使8255通过PC3产生一次中断请求到IRQ。CS接到实验 台的138译码的8组I/O地址中的任意一组上,编程在中断处理程序中读取逻辑电平开关预置的ASCII码,在屏幕上现实其对应的字符,中断8次结束。2.实验电路3.实验程序流程图及代码#include#incl

17、ude#includeApiEx.h#pragma comment(lib,ApiEx.lib)int i = 0;void MyISR() byte data; PortReadByte(0x280,&data); printf(%cn,data); i+;void main() printf(-EXP4_3-n); printf(Press any key to begin!n); getch(); if(!Startup() printf(ERROR:Open Device Error!n); return; /8255片选地址为280H /控制字为 10110000B = 0B0H P

18、ortWriteByte(0x283,0xB0); /PC4 INTE 置1 PortWriteByte(0x283,0x09); RegisterLocalISR(MyISR); EnableIntr(); printf(Press any key to exit!n); while(i 8 & !kbhit() ) DisableIntr(); Cleanup();实验5-11.静态显示。将8255的A 口PA0PA6分别与七段数码管的段码驱动输入端ag相连(方式 0),位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从PC键盘输入一位十进制数字09,在七段数码管上显示出来

19、。数组 data10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f2.实验电路3.实验程序流程图及代码#include#include#includeApiEx.h#pragma comment(lib,ApiEx.lib)void main() int i; byte data10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; printf(-EXP5_1-n); printf(Press any key to begin!nn); getch(); if(!Startup() pr

20、intf(ERROR:Open Device Error!n); return; /8255片选地址280H /控制字10000000B = 80 H PortWriteByte(0x283,0x80); printf(Enter a number between 0 and 9 :); scanf(%d,&i); while(i 9) printf(ERROR:Wrong number!nEnter a number between 0 and 9 :); scanf(%d,&i); PortWriteByte(0x280,datai); Cleanup();实验5-21. 动态显示。七段数

21、码管段码连接不变,位码驱动输入端S1、S0接8255 C 口的PC1、PC0。编程在两个数码管上循环显示00-99。2.实验电路3.实验程序流程图及代码#include#include#includeApiEx.h#pragma comment(lib,ApiEx.lib)void main() byte data10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; printf(-EXP5_2-n); printf(Press any key to begin!nn); getch(); if(!Startup() printf(ERRO

22、R:Open Device Error!n); return; /8255片选地址为280H /控制字为10000000B = 80H PortWriteByte(0x283,0x80); printf(Press any key to exit!n); while(!kbhit() for(int i = 0; i = 9; i+) for(int j = 0; j = 9; j+) for(int k = 0; k 200 ; k+) PortWriteByte(0x282,0x02); PortWriteByte(0x280,datai); Sleep(1); PortWriteByte

23、(0x282,0x01); PortWriteByte(0x280,dataj); Sleep(1); Cleanup();实验5-31. 中断显式,将8255的A 口设置成方式1输出,连接七段数码管的段码驱动输入端ag,数码管位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。8255的C 口下半部分设置为输入方式,PC0、PC1、PC2分别接逻辑电平开关K0K2,单脉冲接到8255的PC6上,通过 8255的PC3发中断,中断处理程序中读取PC0PC2,根据输入的值,在数码管中输出07(选作) 2.实验电路3.实验程序流程图及代码#include#include#includeAp

24、iEx.h#pragma comment(lib,ApiEx.lib)void MyISR() byte data10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; byte i; PortReadByte(0x282,&i); /读PC口 i = i & 0x07; /取PC口低3位,PC0,PC1,PC2 PortWriteByte(0x280,datai);void main() printf(-EXP5_3-n); printf(Press any key to begin!n); getch(); if(!Startup() p

25、rintf(ERROR:Open Device Error!n); return; /8255片选地址为280H /控制字为10100001B = 0A1H PortWriteByte(0x283,0xA1); /PC6 INTE 置1 PortWriteByte(0x283,0x0D); RegisterLocalISR(MyISR); EnableIntr(); printf(Press any key to exit!n); while(!kbhit() DisableIntr(); Cleanup();实验7-11. 1. 带倒计时的交通灯控制:将L7、L6、L5作为南北路口的交通灯与

26、PC7、PC6、PC5相连;L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连(方式0)。PA 口的PA0PA6作为输出 口(方式0输出)连接7段数码管的段码,PC3、PC4连接数码管的S0,S1来选择显示的位。利用8253产生1秒的中断信号,在中断处理程序中用程序处理10秒延迟和三次黄灯闪烁的问题。编程使六个灯按交通灯变化规律燃灭,同时数码管显示倒计时的值(100,40)。 2.实验电路3.实验程序流程图及代码#include#include#includeApiEx.h#pragma comment(lib,ApiEx.lib)int count = 10;enum Status S1, S2, S3, S4 ;Status LightStatus = S1;byte data10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;void MyISR();void main() printf(-EXP7_1-n); printf(Press any key to start!nn); getch(); if(!Startup() printf(ERROR:Open Device Error!n); return; /8255片选地址

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1