版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理与接口技术接口技术实验一.实验目的:1.掌握8253A与微机的接口和编程方法
2.掌握8255A与微机的接口和编程方法二.实验要求:
正确连接硬件线路,掌握编程方法。三.实验仪器设备:微机1台,TPC-USB实验箱
TTC-2实验系统(USB)构成:该系统由一块USB总线接口模块、一个扩展实验台及软件集成实验环境组成。USB总线模块通过USB总线电缆与PC机相连,模块与实验台之间由一条50芯扁平电缆连接。
安装步骤如下:1.关上实验台电源。2.50线扁平电缆一端接USB模块的50芯插座,另一端接实验台50线插座。3.USB电缆的一端接模块的USB口,另一端接主机USB口。4.打开实验台电源。5.系统将自行检测到模块的接入。微机TPC-2(USB)集成开发环境软件包实验项目的查看和演示:实验三可编程定时器/计数器-1(8253)一、实验目的掌握8253的基本工作原理和编程方法。二、实验内容
1.按图3-1虚线连接电路,
2.将计数器0设置为方式0,计数器初值为N(N≤0FH),
3.用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化
(当输入N+1个脉冲后OUT0变高电平)。三、编程提示8253
控制寄存器地址283H
计数器0地址 280H
计数器1地址 281HCLK0连接时钟1MHZ;*************************;;*8253方式0计数器实验*;;*************************;io8253aequ283hio8253bequ280hcodesegmentassumecs:codestart:moval,14h;设置8253通道0为工作方式2,
;二进制计数
movdx,io8253aoutdx,almovdx,io8253b;送计数初值为0FHmoval,0fhoutdx,allll:inal,dx;读计数初值
calldisp;调显示子程序
pushdx
movah,06hmovdl,0ffhint21hpopdxjzlllmovah,4chint21h;退出dispprocnear;显示子程序
pushdxandal,0fh;首先取低四位
movdl,alcmpdl,9;判断是否<=9jlenum;若是则为'0'-'9',ASCII码加30Hadddl,7;否则为'A'-'F',ASCII码加37Hnum:adddl,30hmovah,02h;显示
int21hmovdl,0dh;加回车符
int21hmovdl,0ah;加换行符
int21hpopdxret;子程序返回dispendpcodeendsendstart实验三可编程定时器/计数器-2(8253)二、实验内容按图3-2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。三、编程提示1、8253控制寄存器地址283H计数器0地址 280H计数器1地址 281HCLK0连接时钟1MHZ;*******************;*8253分频*;*******************io8253aequ280hio8253bequ281hio8253cequ283hcodesegmentassumecs:codestart:movdx,io8253c;向8253写控制字
moval,36h;使0通道为工作方式3outdx,almovax,1000;写入循环计数初值1000movdx,io8253aoutdx,al;先写入低字节
moval,ahoutdx,al;后写入高字节movdx,io8253cmoval,76h;设8253通道1工作方式2outdx,almovax,1000;写入循环计数初值1000movdx,io8253boutdx,al;先写低字节
moval,ahoutdx,al;后写高字节
movah,4ch;程序退出
int21hcodeendsendstart实验三可编程定时器/计数器(8253)(选作)一、实验目的掌握8253的基本工作原理和编程方法,用示波器观察不同方式下的波形。二、实验原理和内容
1、按图3-3连接电路,将计数器0设置为方式3(方波),计数器设置为方式2(分频)。
2、实现计数器0的输出为方波,计数器1的输出是计数器0输出的分频波形。
3、人机交互界面设计:实现在显示屏幕上提示输入计数器0(方波)的参数和计数器1(分频信号)的参数。如下所示:
counter0:____counter1:____continue?(y/n)____4、实现用键盘直接输入修改程序中方波的参数和分频信号的参数,以改变方波的宽度,分频信号的周期和分频数,不需重新修改源代码。
5、用示波器观察计数器0和计数器1的输出波形及其关系,并在纸上画出CLK0、OUT0、OUT1的波形。;*************************;;*8253program*;;*************************;datasegmentmesg0db13,10,'*******************************8253progam*******************************',13,10,'$'mesg1db13,10,'counter0:','$'mesg2db13,10,'counter1:','$'
mesg3db13,10,'continue?(y/n)','$'
mesg4db13,10,13,10,'ThankYou!',13,10,'$'errormdb13,10,'InputError!','$'counter0dw0counter1dw0dataendscodesegmentassumecs:code,ds:datamainprocfarstart:movdx,segdatamovds,dxmovdx,offsetmesg0movah,09hint21hdo:subbx,bxsubax,axmovcounter0,0movcounter1,0;initl1:movdx,offsetmesg1movah,09hint21hrd1:;readcounter0movah,01;readacharint21hcmpal,13;ifenterjefdone1jmptdone1fdone1:jmpdone1tdone1:cmpal,10jefdone1cmpal,'0';ifinput<0orinput>9error
jberrorcmpal,'9'jaerrorpushaxmovax,10
mulcounter0movcounter0,ax;counter0=counter0*10popaxsubbx,bxmovbl,alsubbl,30haddcounter0,bx;counter0=counter0+inputjmprd1error:movdx,offseterrormmovah,09hint21hmovdl,7movah,2int21hjmpdone3tr:;forjmpdo
movdl,almovah,02h
int21hmovdl,10int21hmovdl,13int21hjmpdol2:movdx,offsetmesg2movah,09hint21hrd2:;readcounter1movah,01int21hcmpal,13;ifenter
jefdone2cmpal,10jefdone2
jmptdone2fdone2:jmpdone2tdone2:cmpal,10jefdone2cmpal,'0'jberrorcmpal,'9'jaerror
pushaxmovax,10mulcounter1movcounter1,ax;counter1=counter1*10
popaxsubbx,bxmovbl,alsubbl,30h;bh=0addcounter1,bx;counter1=counter1+inputjmprd2
done1:jmpl2done2:jmpout8253;afterentertwocounters;set8253anddoitdone3:movdx,offsetmesg3movah,09hint21hl3:movah,07h
int21hcmpal,'Y'jetrcmpal,'y'jetrcmpal,'N'
jequitcmpal,'n'jequitmovdl,7movah,02hint21hjmpl3out8253:;workcodemoval,00110110bmovdx,283houtdx,almovax,counter0movdx,280houtdx,almoval,ahoutdx,almoval,01110100bmovdx,283houtdx,almovax,counter1movdx,281houtdx,almoval,ahoutdx,almovcx,2801delay:loopdelay
jmpdone3quit:;returntoDOS
movdx,offsetmesg4movah,9int21hmovax,4c00hint21hmainendpcodeendsendstart实验四可编程并行接口(一)(8255方式0)一、实验目的掌握8255方式0的工作原理及使用方法。二、实验内容1、实验电路如图4-1,C口接逻辑电平开关K0~K7,A口接LED显示电路L0~L7。2、编程从8255C口输入数据,再从A口输出。三、编程提示1、8255控制寄存器地址 28BH A口的地址 288H C口的地址 28AHio8255aequ288hio8255bequ28bhio8255cequ28ahcodesegmentassumecs:codestart:movdx,io8255b;设8255为C口输入,A口输出
moval,8bhoutdx,alinout:movdx,io8255c;从C口输入一数据
inal,dxmovdx,io8255a;从A口输出刚才自C口
outdx,al;所输入的数据
movdl,0ffh;判断是否有按键
movah,06h
int21hjzinout;若无,则继续自C口输入,A口输出
movah,4ch;否则返回
int21hcodeendsendstart实验四可编程并行接口(二)(8255方式0)(选作)一、实验目的
1、通过实验,掌握8255工作方式0以及设置A口为输出口,C口为输入口的方法。
2、掌握8255三个数据端口与被测IC芯片的硬件连接方法。
3、通过实验掌握用8255并行口模拟集成电路测试仪,对集成电路进行逻辑测试的方法。二、实验内容
1、按图4-2连接硬件电路,以测试3-8译码器74LS138为例。
2、人机交互界面设计:按照集成电路74LS138芯片的引脚图显示在屏幕上,如下所示:+------------------------------+|Y0Y1Y2Y3Y4Y5Y6Y7||||74LS138||||ABCG1G2A+G2B|+------------------------------+TestAgain?(Y/N)三、编程提示
8255控制寄存器端口地址 28BH A口的地址 288H C口的地址 28AHdatasegmentchipdb13,10db13,10db'Programtotestthechipof74LS138',13,10
db13,10db13,10db'+------------------------------+',13,10db'|Y0Y1Y2Y3Y4Y5Y6Y7|',13,10db'||',13,10db'|74LS138|',13,10
db'||',13,10db'|ABCG1G2A+G2B|',13,10db'+------------------------------+',13,10,'$'messdb'Afteryouhaveready,Pleasepressanykey!','$'mes2db'TestAgain?(Y/N)','$'InAdb0OutCdb0clldb'','$'dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axagain:callclscallInputB;OutputCTRLcode(write)to28Bhmovdx,28bhmoval,10001011boutdx,al;OutputInto288hmovdx,288hmoval,InAoutdx,alcallOutputCjmp1:movah,2movdh,15movdl,20int10hmovah,09
leadx,mes2int21h
movah,1int21hcmpal,'y'jeagaincmpal,'n'jeexitmovah,2movdh,15movdl,0int10hleadx,cllmovah,9int21hjmpjmp1exit:movah,4chint21h;********************************************InputBprocnearmovah,2movbh,0movdx,0int10hmovah,09leadx,chipint21hmovah,2movbh,0movdh,15movdl,10int10hmovah,09hleadx,messint21hmovah,0chmoval,08hint21hwait1:movah,0Bhint21hcmpal,0jnewait1movah,2movbh,0movdh,15movdl,10int10hleadx,cllmovah,9int21hmovdh,12movdl,18jmp3:pushdxmovah,2movbh,0int10hjmp4:movah,7int21h
cmpal,'1'jnejmp2
movah,2xchgal,dlint21hmovcl,1movbl,InAsalbl,claddbl,1movInA,bljmpjmp5jmp2:cmpal,'0'jnejmp4movah,2xchgal,dlint21hmovcl,1movbl,InAsalbl,clmovInA,bljmp5:popdxadddl,5cmpdl,43jbjmp3movcl,3movbl,InAsalbl,clmovInA,blretInputBendp;********************************************clsprocnearmovah,6moval,0movch,0movcl,0movdh,24movdl,79movbh,7int10hretclsendp;********************************************OutputCprocnearmovdx,28ah
inal,dxmovOutC,al
movdh,4movdl,16j:pushdxmovah,2movbh,0int10hmoval,OutCmovbl,01handbl,almovcl,1shral,clmovOutC,aladdbl,30hxchgbl,dlmovah,2int21hpopdxadddl,4cmpdl,46jbjretOutputCendp;********************************************codeendsendstart实验五七段数码管(一)一、实验目的掌握数码管显示数字的原理二、实验内容1、静态显示:按图5-1连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。三、编程提示1、实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。+5V;**************************************;*键盘输入数据(0-9)控制LED数码管显示*;**************************************datasegmentio8255aequ288hio8255bequ28bhleddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1db0dh,0ah,'Inputanum(0--9),otherkeyisexit:',0dh,0ah,'$'dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,io8255b;使8255的A口为输出方式
movax,80houtdx,alsss:movdx,offsetmesg1;显示提示信息
movah,09hint21hmovah,01;从键盘接收字符
int21hcmpal,'0';是否小于0jlexit;若是则退出
cmpal,'9';是否大于9jgexit;若是则退出
subal,30h;将所得字符的ASCII码减30Hmovbx,offsetled;bx为数码表的起始地址
xlat;求出相应的段码
movdx,io8255a;从8255的A口输出
outdx,aljmpsss;转SSSexit:movah,4ch;返回
int21hcodeendsendstart实验五七段数码管(二)一、实验目的掌握数码管显示数字的原理二、实验内容
动态显示:按图5-2连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255C口的PC1,PC0。编程在两个数码管上显示“56”三、编程提示实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。;**************************************;*LED数码管实验*;*动态显示"56"*;**************************************datasegmentio8255aequ28ahio8255bequ28bhio8255cequ288hleddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段码buffer1db6,5;存放要显示的个位和十位bzdw?;位码dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,io8255b;将8255设为A口输出
moval,80houtdx,almovdi,offsetbuffer1;设di为显示缓冲区loop2:movbh,02lll:movbyteptrbz,bh
pushdidecdiadddi,bzmovbl,[di];bl为要显示的数
popdimoval,0movdx,io8255aoutdx,almovbh,0movsi,offsetled;置led数码表偏移地址为SIaddsi,bx;求出对应的led数码
moval,byteptr[si]movdx,io8255c;自8255A的口输出
outdx,almoval,byteptrbz;使相应的数码管亮
movdx,io8255aoutdx,almovcx,3000delay:loopdelay;延时
movbh,byteptrbz
shrbh,1jnzlllmovdx,0ffhmovah,06int21hjeloop2;有键按下则退出
movdx,io8255amoval,0;关掉数码管显示
outdx,almovah,4ch;返回
int21hcodeendsendstart实验五七段数码管(三)一、实验目的掌握数码管显示数字的原理二、实验内容
动态显示(选作):使用图5-2的电路,编程在两个数码管上循环显示“00-99”。三、编程提示实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中;**************************************;*LED数码管实验*;*动态循环显示“00-99”*;**************************************datasegmentio8255aequ28ahio8255bequ28bhio8255cequ288hleddb3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh;段码buffer1db0,0;存放要显示的十位和个位bzdw?;位码dataendscodesegmentassumecs:code,ds:datastart:movax,datamovds,axmovdx,io8255b;将8255设为A口输出
moval,80houtdx,almovdi,offsetbuffer1;设di为显示缓冲区;loop1:movcx,0300h;循环次数loop1:movcx,030h;循环次数loop2:movbh,02lll:movbyteptrbz,bhpushdi
decdiadddi,bzmovbl,[di];bl为要显示的数
popdimovbh,0movsi,offsetled;置led数码表偏移地址为SIaddsi,bx;求出对应的led数码
moval,byteptr[si]movdx,io8255c;自8255A的口输出
outdx,almoval,byteptrbz;使相应的数码管亮
movdx,io8255aoutdx,alpushcxmovcx,100delay:loopdelay;延时
popcxmoval,00houtdx,almovbh,byteptrbzshrbh,1jnzllllooploop2;循环延时
movax,wordptr[di]cmpah,09jnzsetcmpal,09jnzsetmovax,0000mov[di],al
mov[di+1],ahjmploop1set:movah,01int16hjneexit;有键按
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- AI换脸效果处理技巧课程设计
- 博文课程设计
- 超声波测距报警装置分享课程设计
- 冲压模课程设计指导
- 生物特征身份认证系统实现案例课程设计
- 财务会计课程设计模本
- 北京小学思维课程设计
- 机器人视觉测量课程课程设计
- 生物信息学DNA序列比对工具指南课程设计
- Snort安全事件检测方案课程设计
- DL-T1069-2016架空输电线路导地线补修导则
- 腔镜下甲状腺切除手术配合
- 注册安全工程师考试真题及答案
- GB/T 15587-2023能源管理体系分阶段实施指南
- 发电机总调试报告
- 中国古代兵器
- 软件开发(IT行业)程序文件清单
- GB/T 21475-2008造船指示灯颜色
- GB/T 1981.2-2009电气绝缘用漆第2部分:试验方法
- GB/T 15544.5-2017三相交流系统短路电流计算第5部分:算例
- 物权法案例分析
评论
0/150
提交评论