欢迎来到天天文库
浏览记录
ID:23116655
大小:191.37 KB
页数:9页
时间:2018-11-04
《计算机接口技术--实验一》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、数学与计算机学院《计算机接口技术实验报告专业:网络工程班级:1202学号:1205110121姓名:吴天亮郭峰林实验1定时与中断接口程序设计一实验目的1.丫解定时器/计数器8253、并行I/O接LI8255A在PC机中的电路连接方法;2.学川吏用TURBOC++对8253、8255进行编程操作;3.熟悉拦截PC机中断向;W;的TC++编程方法。二实验内容1.8253、8255在PC/XT机中的电路连接介绍2OH~21HA9...A2CZJ)腿湖CPUD7...D0INTI0R丽AO8088a1IO
2、MA9...A240H〜43H1.♦♦CSINTAINTIR0IR18253D7...D0OUTORDGATE0A0OUT1A1GATE1CSOVT2GATE2A8259A至8259IRQO,中断类型=8+5V至DM刷新请求+5VA9…60H〜19MHz」8255PBOCSPB1CLK0丄2PC机启动P,系统设置的初始状态为:芯片有关工作方式初值运行情况8253通道0#:方式3(方波发生器)计数初值:0000HOUT输出55ms方波至8259的1RQ0通道2#:?(IKHz)计数初位:?(1190
3、)?(1KHz方波)8255PBO、PB1:方式0(简单输出)控制蜂鸣器发声。0:不发声,1:发声8259IRQ0:允许中断中断类型号:8CPU响应8号中断表中,8253的通道2#的工作方忒和计数初值未知,要求自己设置。2.程序要求利用TURBOC++开发环境设计程序,实现如卜功能:(1)程序启动时,要求输入定时时间,以秒为单位。(2)按秒计时,每秒到达时,在屝幕上显示:当前为第几秒,同时蜂鸣器发出短促叫声;(3)当定时吋间到,则显示“TimeUp!”,结朿程序。三实验环境硬件环境:PC机一台;软
4、件环境:操作系统不限,TURBOC++3.0cUS实验步骤1.建立源文件启动TURBOC++3.0,建立Timer.CPP。保存到DAXXX(学号)Timer.CPP;2.设置TC工作目录选菜单Optkms/Directories,第1、2栏保持不变,第3、4栏填写您的文件存放R录,注意目录名不能超过8个英文字符,且所设目录要事先逑立好。如此,TC生成的可执行文件等将会存放到此工作目录下。样例如下:五核心代码#include#includeinclude5、IB.H>#ifdef_cplusplus#define_CPPARGS...#else#define_CPPARGS#endifintnTick=O,sec=O,flag=O;unsignedcharsys_PB,my_PB;voidinterruptfar(*sys_int_08)(_CPPARGS);voidinterruptfarmy_int_08(_CPPARGS){++nTick;if(nTick==1)outportb(0x61,my_PB);elseif(nTick==3)outp6、ortb(0x61,0x01);elseif(nTick>18)flag=l;nTick=O;sec++;}sysJnt_08();}//===========二=======voidmain(){unsignedintTime_up;printf(’’PleaseinputUpTime(5—30):scanf(n%d’’,&Time_up);printf(*’n);if(Time_up<57、8、Time_up〉30){printf(’’InputError!’’);exit(l);sys_PB9、=inportb(0x61);my_PB=sys_PB10、0x03;outportb(0x43,0xb6);outportb(0x42,0xa6);outportb(0x42,0x04);sys_int_O8=getvect(OxO8);setvect(OxO8,my_int_O8);while(l){if(flag=l){flag=O;printf(n%d”,sec);if(sec==Time_up)break;}}printf(’’TimerUp!’’);outportb(0x61,sy11、s_PB);setvect(OxO8,sys_int_O8);}六实验结果VnWgVSy(卜3B》:InputErrorfPleaseinputUpT1鷗》<5.-30》••Il234S6PleaseinputUp•-30》:■七实验总结通过本次实验使我进一步了解了可编程并行接口8253和8255的工作方式及编程原理,可以编写简单的c语言程序控制8255A实现一些基本功能,了解了定时器/计数器8253、并行I/O接口8255A在PC机屮的电路连接方法熟悉Y拦截PC机屮断向量的TC+
5、IB.H>#ifdef_cplusplus#define_CPPARGS...#else#define_CPPARGS#endifintnTick=O,sec=O,flag=O;unsignedcharsys_PB,my_PB;voidinterruptfar(*sys_int_08)(_CPPARGS);voidinterruptfarmy_int_08(_CPPARGS){++nTick;if(nTick==1)outportb(0x61,my_PB);elseif(nTick==3)outp
6、ortb(0x61,0x01);elseif(nTick>18)flag=l;nTick=O;sec++;}sysJnt_08();}//===========二=======voidmain(){unsignedintTime_up;printf(’’PleaseinputUpTime(5—30):scanf(n%d’’,&Time_up);printf(*’n);if(Time_up<5
7、
8、Time_up〉30){printf(’’InputError!’’);exit(l);sys_PB
9、=inportb(0x61);my_PB=sys_PB
10、0x03;outportb(0x43,0xb6);outportb(0x42,0xa6);outportb(0x42,0x04);sys_int_O8=getvect(OxO8);setvect(OxO8,my_int_O8);while(l){if(flag=l){flag=O;printf(n%d”,sec);if(sec==Time_up)break;}}printf(’’TimerUp!’’);outportb(0x61,sy
11、s_PB);setvect(OxO8,sys_int_O8);}六实验结果VnWgVSy(卜3B》:InputErrorfPleaseinputUpT1鷗》<5.-30》••Il234S6PleaseinputUp•-30》:■七实验总结通过本次实验使我进一步了解了可编程并行接口8253和8255的工作方式及编程原理,可以编写简单的c语言程序控制8255A实现一些基本功能,了解了定时器/计数器8253、并行I/O接口8255A在PC机屮的电路连接方法熟悉Y拦截PC机屮断向量的TC+
此文档下载收益归作者所有