




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2010-2011学年度第一学期微机原理实验教案陈善荣物理科学与信息工程学院微机原理与接口技术实验安排表实验时间班级第一组第二组第三组08电科1星期一 5、6节星期三 1、2节08电科2星期三 3、4节08电子1星期一 3、4节星期一 7、8节星期二 7、8节08电子2星期四 1、2节星期二 7、8节08通信1星期三 7、8节星期三 9、10节星期二 9、10节08通信2星期二 1、2节星期二 9、10节实验项目教学周次实验项目名称对应的实验指导书的内容汇编语言程序设计指导书(电子文档)微机原理与接口实验指导书(2006.7)41、熟悉汇编语言的编程环境实验一 熟悉汇编语言的编程过程52、循环程序设计实验实验五 循环程序设计63、子程序设计实验实验七 子程序设计74、中断程序设计实验P39实验八85、数字钟设计实验P41实验九95、数字钟设计实验P41实验九106、8253定时计数器实验P30实验六117、8255并口可编程实验P24实验四128、模数转换ADC0809P17实验一139、数模转换DAC0832P20实验二1410、小型直流电机调速实验P57实验十三1511、双机通信实验P44实验十注意事项:1、实验室位置:第三教学楼3607(商学院办公室楼上);2、中午实验的同学12:30分开始,其它按照学校作习时间表;3、每次实验前写好预习报告,进入实验室时指导老师检查合格后方可进行实验,实验过程中认真记录实验结果和出现的问题,各组独立完成实验,并按规定交实验报告(每个实验做完当堂交报告)。4、分组:08电科1(1)=学号前36,08电科1(2)=余下的37人;08电科2=全班37人08电子1(1)=学号前32,08电子1(2)=学号前33-64,08电子1(3)=余下的18人,08电子2(1)=学号前32,08电子2(2)=余下的12人08通信1(1)=学号前30,08通信1(2)=学号前31-60,08通信1(3)=余下的9人08通信2(1)=学号前30,08通信2(2)=余下的20人实验1熟悉汇编语言的编程环境实验目的1学习并掌握Visual ASM软件的使用;2学习在MSDOS方式下的手工汇编方式;3. 学习Debug.exe软件的使用方法;实验重点和难点1Debug命令实验课时2学时实验仪器联想启天2400微型计算机。实验原理1 80X86微处理的编程结构1.1 8086/8088微处理器的内部编程结构1.2 8086/8088的内部寄存器2 Visual ASM的使用方法选择工作目录;编写源程序保存源程序汇编源程序链接目标码运行/调试程序;3 手工汇编运行“cmd.exe”进入MSDOS方式,用记事本等文本编辑工具软件编写源程序并以“.asm”扩展名存盘进入到工作目录汇编源文件,运行“masm 文件名”链接目标文件,运行“link 文件名”运行可执行文件,“文件名.exe”4.DEBUG命令常用命令:汇编A;反汇编U;查看内存D;修改寄存器R;修改内存命令:E;单步命令:T;单步命令:P;运行命令:G等实验内容与步骤1 用VISUALASM的建立一个汇编语言程序;输入如下程序并存盘。data segment message db Hello World!,$data endscode segment assume cs:code,ds:databegin:mov ax,data mov ds,ax mov dx,offset message mov ah,9 int 21h ;显示字符串 mov ah,0 int 16h ;等待键盘输入,暂停程序运行 mov ah,4ch int 21h ;退出程序code endsend begin汇编、链接、运行该程序,记录运行结果:2 将上述程序复制到记事本,另存为a1.asm。然后手工编译运行程序。2.1“另存为”对话框的选择保存路径“C:dvcc8086”;“保存类型”选择“所有文件”,文件名填“a1.asm”;2.2 “开始”菜单“运行。”执行命令“cmd”,进入MSDOS方式,执行“cddvcc8086”转换到工作目录“c:dvcc8086”下;2.3 执行“masm a1.asm”将a1.asm汇编成目标代码;2.4 执行“link a1.obj”将a1.obj连接生成可执行文件“a1.exe”2.5 执行“a1.exe”或“a1”可以得到程序的执行结果。3 用DEBUG命令调试运行上述程序3.1 同2.23.2 执行“debug a1.exe”,显示“”号提示符3.3 执行“u”并按“enter”键,可以看到从“begin”行开始的程序代码,该命令为反汇编命令;3.4 连续按“p”+“enter”,可以一步一步、执行程序,并显示每一步的执行结果;也可以按“t”+“enter”,但二者不同的是:后者会进行中断子程序中去,之后就看不懂了。3.5 按“g”+“enter”执行程序,可以得到2中的运行结果,按 “q ”+“enter”退出。4 其它DEBUG 命令使用,记录命令执行前和执行后的结果()键入 DEBUG 进入 DEBUG 控制状态,显示提示符 - 。(2)用命令 F100 10F A 将A的ASCII码填入内存。(3)用命令 D100 10F 观察内存中的十六进制码及屏幕右边的ASCII字符。(4)用命令 F110 11F 41 重复上二项实验,观察结果并比较。(5)用命令 E100 30 31 32 3F将30H-3FH写入地址为100开始的内存单元中,再用D命令观察结果,看键入的十六进制数是什么字符的ASCII码?(6)用H命令检查下列各组十六进制数加减结果并和你的手算结果比较:A)34H,22HB)56H,78HC)A5,79HD)1284H,5678HE)A758H,347FH(7)用R命令检查各寄存器内容,特别注意AX,BX,CX,DX,IP及标志位中ZF,CF和AF的内容。(8)用R命令将AX,BX内容改写为1050H及23A8H。5 用DEBUG 调试指令,输入以下程序段MOVBX,1000MOVCX,10SUBAX,AXLOP: ADDAL,BXADCAH,0INCBXJ:LOOPLOPINT3记录每一个步骤的执行执行结果。(1)用A命令将程序键入到100H开始的内存中,在键入时记下标号LOP和J的实际地址,在键入LOOP指令时LOP用实际地址值代替。(2)用命令N AA将此程序命名为文件AA(文件名可任取)。(3)用R命令将BX:CX改为程序长度值(即最后一条指令后面的地址减去开始地址)。(4)用命令W 100将此程序存到AA命名的磁盘文件中。(5)用命令Q退出DEBUG。(6)用命令DEBUG AA再次调入DEBUG和文件AA,可用U命令检查调入程序。若调入DEBUG时忘了加AA文件名,可用N命令和L命令将文件调入。(7)用E命令在内存地址1000H处键入16个数字(8)用命令G=100 J(J用实际地址代替),使程序运行并停在断点J上,检查AX,BX的值是否符合你的预计值。(9)用T命令运行一步,观察程序方向(IP值)和CX值是否与你的估计一样,若不一样,检查程序是否有错。(10)重复G J与T,再检查AX是否正确。(11)用G命令使程序运行到结束,检查AX值是否正确。本实验注意事项1第一次实验,请仔细按照指导书操作,以免出现莫名其妙的错误实验总结1 2 附实验参考程序1 2 实验循环程序设计实验实验目的1掌握循环程序和排序程序设计方法。2掌握带符号数的比较转移指令:JL,JLE,JG,JGE;3. 伪指令 EQU 及操作符 $的使用;实验重点和难点1 转移指令的使用实验课时2学时实验仪器联想启天2400微型计算机。实验原理1 参考教材的汇编语言程序设计 实验内容与步骤1简单的循环程序。data segment string db “Hello world”code segment assume cs:code,ds:data begin:mov ax,ds mov ds,ax mov cx,7 mov bx,offset stringnext: mov dl,bx mov ah,2 int 21h inc bx loop next mov ah,0 int 16h mov ah,4ch int 21hcode ends end begin编译上面的程序。指出其中的错误并改正错误。2多重循环CODESEGMENTORG100HASSUMECS:CODE,DS:CODEMAIN:JMPSTARTARRAYDW1234H,5673H,7FFFH,8000H,0DFFHDW0AB5H,0369H,005FH,5634H,9069HCOUNTEQU$-ARRAYSTART:MOVCX,COUNTSHRCX,1DECCXMOVBL,-1AGAIN:MOVDX,CXANDBL,BLJEEXITXORBL,BLXORSI,SIAGAIN1:MOVAX,ARRAYSICMPAX,ARRAYSI+2JLENCHGXCHGARRAYSI+2,AXMOVARRAYSI,AXMOVBL,-1NCHG:INCSIINCSIDECDXJNZAGAIN1LOOPAGAINEXIT:INT20HCODEENDSENDMAIN输入,汇编并连接此程序。忽略连接时的无堆栈告警。在DEBUG下运行此程序,记录运行结果。将转移指令JLE改为JBE,JGE和JAE,分别运行并记录排序结果。本实验注意事项1 2 实验总结1 2 附实验参考程序1 2 实验子程序设计实验 实验目的1掌握利用堆栈传递参数的子程序调用方法。2掌握子程序递归调用方法。3过程调用伪指令: PROC,ENDP,NEAR和FAR。48088指令: CALL,RET,RET n。5利用RET指令退出EXE文件的方法。实验重点和难点1利用堆栈传递参数的子程序调用方法;实验课时2学时实验仪器联想启天2400微型计算机。实验原理1参考教材的汇编语言程序设计2 实验内容与步骤1利用堆栈传递参数的子程序调用(求累加和)程序内容:STACKSEGMENT STACKDB256 DUP(0)STACKENDSDATASEGMENTARY1DB1,2,3,4,5,6,7,8,9,10COUNT1EQU$-ARY1SUM1DW?ARY2 DB10,11,12,13,14,15,16,17,18COUNT2EQU$-ARY2SUM2DW?DATAENDSMAINSEGMENTASSUME CS:MAIN,DS:DATA,SS:STACKSTARTPROCFARPUSH DSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVAX,COUNT1PUSHAXLEAAX,ARY1PUSHAXCALLFAR PTR SUMMOVAX,COUNT2PUSHAXLEAAX,ARY2PUSHAXCALLFAR PTR SUMRETSTARTENDPMAINENDSPROCESEGMENTASSUMECS: PROCESUM PROC FARMOVBP,SPMOVCX,BP+6MOVBX,BP+4XORAX,AXADN:ADDAL,BXADCAH,0INCBXLOOPADNMOVBX,AXRET4SUMENDPPROCEENDSENDSTART操作步骤:(1)输入,汇编并将此程序连接成EXE文件。(2)用DEBUG的断点命令和T命令运行此程序,观察并记录每次过程调用及进出栈指令前后(带;的语句)的SP和堆栈内容。(3)记录最后结果:SUM1,SUM2的段及偏移地址和它们的内容。2.子程序递归调用(求阶乘)程序内容:STACKSEGMENT STACKDB100H DUP(?)STACKENDSDATASEGMENTRESULDW?DATAENDSCODESEGMENTMAINPROCFARASSUME CS:CODE,DS:DATA,SS:STACKSTART:PUSHDSSUBAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVAX,5CALLFACTMOVRESUL,AXRETFACTPROCANDAL,ALJNEIIAMOVAL,1RETIIA:PUSHAXDECALCALLFACTX2:POPCXMULCLRETFACTENDPMAINENDPCODEENDSENDSTART操作步骤:(1)将程序输入,汇编并连接成EXE文件。(2)用DEBUG的断点和T命令检查并记录每层递归嵌套过程的堆栈和AL内容。(3)修改源程序,将阶乘数 5 改为本程序的最大允许值(是多少?),重新汇编连接之。用DEBUG运行并记录RESUL单元内容。(4)若要在DOS命令下直接运行并显示阶乘结果(十六进制形式),试修改程序并调试运行。(机动)本实验注意事项1 2 实验总结1 2 附实验参考程序1 2 实验4中断程序设计实验实验目的1熟悉PC机系列从中断请求到中断响应处理、中断返回的整个中断过程和详细流程;2. 熟悉掌握中断有关概念3. 了解8259的原理及使用方法4. 学会中断服务程序的编写、入口地址的设置和将用户中断源引入的方法实验重点和难点1中断服务程序的编写实验课时2学时实验仪器联想启天2400微型计算机。实验原理1中断向量的装入中断向量并非常驻内存,而是开机上电时,由程序装入内存指定的中断向量表中。(1)用MOV指令,假设中断类型号为60H,中断服务程序的段基址是SEG_INTR,偏移是OFFSET_INTR,则填写中断向量表的程序为:CLI;关中断CLD;内存地址加1MOV AX,0MOV ES,AX;给ES赋值MOV DI,4*60H;中断向量指针DIMOV AX,OFFSET_INTR;中断服务程序偏移值AXSTOSW;AX-DIDI+1MOV AX,SEG_INTR;中断服务程序段基址-AXSTOSW;AX-DI+2DI+3STI;开中断(2)将中断服务程序的入口地址直接写入中断向量表MOV AX,00HMOV ES,AXMOV BX,60H*4;中断号*4-BXMOV AX,006DH;中断服务程序偏移地址MOV ES:BX,AX;装入偏移地址PUSH CSPOP AX;获取中断服务程序的段基址MOV ES:BX+2,AX;装入段基址 2.中断向量的修改(1)保存原中断向量(例1CH)的入口地址MOV AL,NMOV AH,35HINT 21HMOV OLD_INT_SEG,AXMOV OLD_INT_OFF,BX;取原中断向量的入口地址并保存(2)设置新的中断向量N的入口地址MOV AL,NMOV AH,25HMOV DX,SEG INT_PRMOV DS,DXMOV DX,OFFSET INT_PRINT 21H(3)恢复原中断向量MOV AL,NMOV AH,25HMOV DX,OLD_INT_PRMOV DS,DXMOV DX,OLD_INT_PRINT 21H3主程序结构CLI;关中断;初始化部分,保存原中断向量N的入口地址;设置新的中断入口地址STI;开中断;主程序的其它处理INT N ;(调用中断);主程序的其它处理CLI;关中断;恢复原来的借用的中断向量STI;开中断MOV AX,4C00H ;退出程序,回到DOSINT 21H 4.中断程序结构INT-PR PROC FARCLI保护现场SETI (中断主程序)CLI恢复现场SETIIRETINT-PR ENDP 实验内容与步骤1结合前几次实验的内容,编写一个简单的显示字符串的小程序,并调试运行;显示字符串的简单程序d_seg segment msg db Hello World!,$d_seg endsc_seg segmentassume cs:c_seg,ds:d_segstart:mov ax,d_segmov ds,axmov cx,4l1:mov dx,offset msgmov ah,9hint 21hdec cxjz exit1jmp l1exit1:mov ax,4c00hint 21hc_seg endsend start2.将上述显示部分功能写成子程序调用的方式,再调试运行;用子程序的方式实现显示字符串d_seg segment msg db Hello World!,$d_seg endsc_seg segmentassume cs:c_seg,ds:d_segmainproc farcall dispcall dispexit1:mov ax,4c00hint 21hmainendpdisp proc nearmov ax,d_segmov ds,axmov dx,offset msgmov ah,9hint 21hretdisp endpc_seg endsend main3.将上述子程序写成中断程序如67H中断(系统为用户预留),并调试运行;用中段的方式实现显示字符串d_seg segment msg db Hello World!,$ old_int_seg dw 0 old_int_off dw 0d_seg endss_seg segment stack db 250 dup(0)s_seg endsc_seg segmentassume cs:c_seg,ds:d_seg,ss:s_segmainproc farmov ax,d_segmov ds,axcall init_intint 67hint 67hint 67hcall restore_intexit1:mov ax,4c00hint 21hmainendpinit_int proc nearclimov al,67hmov ah,35hint 21hmov old_int_off,bxmov old_int_seg,esmov ax,seg dispmov ds,axmov dx,offset dispmov ah,25hmov al,67hint 21hstiretinit_int endprestore_int proc nearcli;mov ax,d_seg;mov ds,ax mov dx,old_int_offmov ax,old_int_segmov ds,axmov ah,25hmov al,67hint 21hstiretrestore_int endpdisp proc nearmov ax,d_segmov ds,axmov dx,offset msgmov ah,9hint 21hiretdisp endpc_seg endsend main4.修改系统的时钟中断1CH,编一中断处理程序,让系统每秒钟次显示一个字符串进行提示,共显示20次参考源程序;用1CH定时中段的方式实现每秒一个,显示10个字符串d_seg segment;数据段 msg db Hello World!,$ old_int_seg dw 0 ;存储1ch中断入口的段地址 old_int_off dw 0;存储1ch中断入口的偏移地址 count db 0;次数,全局变量,在主程序和; 中断子程序间通信 count1 db 0 ;18次为1秒d_seg endss_seg segment stack;堆栈段 db 250 dup(0)s_seg endsc_seg segment;代码段assume cs:c_seg,ds:d_seg,ss:s_segmainproc far;主程序开始mov ax,d_segmov ds,ax;数据段初始化call init_int;初始化中断l1:cmp count,10;50次jne l1call restore_int;恢复原1ch中断入口exit1:mov ax,4c00h;退出,回到DOSint 21hmainendp;主程序结束init_int proc near;初始化中断子程序开始clipush ds;保存DS,因程序中修改了它mov al,1chmov ah,35hint 21hmov old_int_off,bx;保存原1ch的偏移地址mov old_int_seg,es;保存原1ch的段地址mov ax,seg disp;安装新中断程序入口地址mov ds,axmov dx,offset dispmov ah,25hmov al,1chint 21hpop ds;恢复DSstiretinit_int endp;初始化中断子程序结束restore_int proc near;恢复原中断子程序开始cli mov dx,old_int_offmov ax,old_int_segmov ds,axmov ah,25hmov al,1chint 21hstiretrestore_int endp;恢复原中断子程序结束disp proc near;新的1ch中段程序开始 climov ax,d_seg;为确保访问到字符串,重新指定DSmov ds,axmov dx,offset msgmov ah,9h;显示字符串inc count1cmp count1,18jne lessthen1secinc countmov count1,0int 21hlessthen1sec:stiiretdisp endp;新的1ch中段程序结束c_seg ends;代码段结束end main;程序结束本实验注意事项1实验内容和步骤3、4为学生必做,1、2选做实验总结1 2 附实验参考程序1 2 实验5 8279键盘显示接口实验实验目的1学习8279A与微机8088系统的接口方法;2了解8279A用在译码扫描和编码扫描方式时的编程方法;3. 8088CPU用查询方式和中断方式对8279A进行控制的编程方法。实验重点和难点18279A的结构和用在译码扫描和编码扫描方式时的编程方法实验课时2学时实验仪器DVCC8086JH十六位微机仿真实验系统、联想启天2400微型计算机。实验原理18279的功能与结构8279A是一种通用的可编程键盘/显示器接口器件,可对64个开关矩阵组成的键盘进行自动扫描,接收键盘上的输入信息,存入内部的FIFO寄存器,并在有键输入时,CPU请求中断。8279A内部还有一个168的显示缓冲器,能对8位或16位LED自动扫描,使显示缓冲器的内容在LED上显示出来。内部结构(1)8279A内部具有时序控制逻辑,通过控制和时序寄存器存放键盘和显示器的工作方式和其他状态信息。内部还包含有N分频器,分频系数为N,由231之间任一数可编程确定,对CLK上时钟进行N分频以产生基本的100KHZ的内部计数信号(扫描时间为5.1ms,去抖动时间为10.3ms)。(2)8279A内部的扫描计数器有两种工作方式:一是编码方式,计数器以二进制计数,4位计数器的状态直接从SL0SL3译码产生键盘和显示的扫描信号,高电平有效;二是译码方式,对计数器的低二位译码后从SL0SL3上输出,作为48键盘和4位显示器的扫描信号,低电平有效。(3)8279A在键盘工作时,由输入缓冲区锁存RL0RL7上的信息,以确定键入情况,其内部有去抖动电路(10ms)。(4)FIFO/传感器RAM:它是一个双功能88RAM,在键盘和选通输入方式中,它是一个先进的数据缓冲器。当/CS=0,A0=1,/RD=0时,读出FIFO的内容,FIFO中有数据时,由控制电路发IRQ信号,在传感方式中,88RAM用作传感器RAM,当检测到某个传感器发生变化时,IRQ上升为高电平。(5)显示地址寄存器和显示RAM:用于存放CPU当前正在读写的显示RAM单元地址,以及正在显示的两个4位半字节地址。在选定了工作方式和地址后,CPU可直接读出显示RAM中的内容。28279的编程(1)键盘显示器方式设置命令 *RESET后,设定为该种方式。(2)扫描频率控制命令(3)读FIFO前设置的读地址命令FIFO中的数据格式(键盘数据格式):D7D6D5D4D3D2D1D0CNTLSHIFTSL2SL1SL0R2R1R0控制移位行编码列编码(4)读显示RAM前设置的读地址命令(5)写显示RAM前设置的写地址命令(6)显示RAM写入禁止/消隐命令(BCD码显示用)显示RAM的位与输出引脚的对应关系:(7)清除FIFO状态字、显示RAM清除命令说明:清除显示RAM约需160us,此时FIFO状态字最高位Du=1,表示显示无效,CPU不能向显示RAM写入数据。(8)中断结束/出错方式设置命令4、FIFO状态字 FIFO状态字由控制字口读入FIFO中的数据格式:实验内容与步骤1 采用系统默认的工作方式和时钟分频模式,编写程序,将键盘的输入转换成显示字形码从8个LED上显示出来.code segmentassume cs:code cmd8279 equ 00dfh data8279 equ 00deh org 01000hstart: jmp scankeyled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h ;0-F的字形码 ;初始化工作方式,时钟分频的步骤省略,采用系统初始化好的方式 ;检测是否有键按下,如果有则读取之scankey:mov dx,cmd8279 in al,dx test al,07h jz scankey mov dx,cmd8279 mov al,40h;读键值命令 out dx,al mov dx,data8279 in al,dx;得到的是什么格式?cntl,shift,sl2,sl1,sl0,r2,r1,r0 mov bx,offset ledxlat ;查表得字形almov bl,al ;bl字形 mov dx,cmd8279 mov al,90h ;自增 out dx,al mov dx,data8279 mov al,bl mov cx,08hl1: out dx,al loopnz l1 jmp scankeycode ends end start2按照实验原理中所述,修改工作方式和执行其它命令,运行修改后的程序并记录实验结果.本实验注意事项1如果采用单步调试运行,程序不能正确执行.2 实验总结1 2 附实验参考程序1 2 实验6 8253定时计数器实验 实验目的1.学习8253A可编程定时/计数器与8088CPU的接口方法;2.了解8253A的工作方式;3.掌握8253A在各种方式下的编程方法。实验重点和难点18253A在各种方式下的编程方法 实验课时2学时实验仪器DVCC8086JH十六位微机仿真实验系统、联想启天2400微型计算机。实验原理18253A内部结构8253A定时/计数器具有定时、计数双功能。 它具有三个相同且相互独立的16位减法计数器,分别称为计数器0、计数器1、计数器2。每个计数器计数频率为02MHz,其内部结构如图6-10所示。 由于其内部数据总线缓冲器为双向三态,故可直接连接在系统数据总线上,通过CPU写入计数初值,也可由CPU读出计数当前值;其工作方式通过控制字确定;读写控制逻辑用于当选中该芯片时, 根据读/写命令及送来的地址信息控制整个芯片工作; 控制字寄存器用于接收数据总线缓冲器的信息; 当写入控制字时,控制计数器的工作方式,当写入数据时则装入计数初值(控制寄存器为8位,只写不能读)。图6-10 图6-112. 计数器内部结构如图6-11所示,每个计数器由一个16位可预置的减1计数器组成,计数初值可保存在16位的锁存器中,该锁存器只写不能读。在计数器工作时,初值不受影响,以便进行重复计数。图中每个计数器有一个时钟输入端CLK作为计数脉冲源,计数方式可以是二进制,计数范围110000H,也可以是十进制,计数范围165536。门控端GATE用于控制计数开始和停止。当计数器计数值减到零时,OUT端输出标志信号。3. 8253A端口地址选择 /CS /RD /WR A1 A2 寄存器选择与操作00001111000000110101 写入计数器#0 写入计数器#1 写入计数器#2 写入控制寄存器000000111001010 读计数器#0 读计数器#1 读计数器#2010011111 无操作(三态) 禁止(三态) 无操作(三态)表5-2 8253A端口地址选择4. 8253A功能 8253A既可作定时器又可作计数器: (1)计数:计数器装入初值后, 当GATE为高电平时, 可用外部事件作为CLK脉冲对计数值进行减1计数,每来一个脉冲减1,当计数值减至0时,由OUT端输出一个标志信号。 (2)定时:计数器装入初值后, 当GATE为高电平时, 由CLK脉冲触发开始自动计数,当计数到零时,发计数结束定时信号。除上述典型应用外,8253A还可作频率发生器、分频器、实时钟、单脉冲发生器等。5. 8253A控制字说明: (1)8253A每个通道对输入CLK按二进制或二十进制从预置值开始减1计数,减到0时从OUT输入一个信号。 (2)8253A编程时先写控制字,再写时间常数。6、 8253A工作方式(1)方式0:计数结束产生中断方式当写入控制字后, OUT变成低电平, 当写入初值后立即开始计数, 当计数结束时,变成高电平。 (2)方式1:可编程单次脉冲方式当初值装入后且GATE由低变高时,OUT变为低电平,计数结束变为高电平。(3)方式2:频率发生器方式 当初值装入时,OUT变为高, 计数结束, OUT变为低。 该方式下如果计数未结束,但GATE为低时,立即停止计数,强逼OUT变高,当GATE再变高时,便启动一次新的计数周期。 (4)方式3:方波发生器 当装入初值后, 在GATE上升沿启动计数, OUT输出高电平; 当计数完成一半时,OUT输出低电平。 (5)方式4:软件触发选通 当写入控制字后, OUT输出为高, 装入初值且GATE为高时开始计数, 当计数结束,OUT端输出一个宽度等于一个时钟周期的负脉冲。 (6)方式5:硬件触发选通在GATE上升沿启动计数器, OUT一直保持高电平; 计数结束, OUT端输出一个宽度等于一个时钟周期的负脉冲。实验内容与步骤1.电路连接本实验原理图如图5-12所示, 8253A的A0、A1接系统地址总线A0、A1, 故8253A有四个端口地址,如端口地址表5-2所示。8253A的片选地址为48H4FH。 因此, 本实验仪中的8253A四个端口地址为48H、49H、4AH、4BH, 分别对应通道0、通道1、通道2和控制字。四、实验线路连接1、8253A芯片的CLK2引出插孔连分频输出插孔1MHZ。2、8253A的GATE2接开关K1。2为各种工作方式编写测试程序,并用软件示波器观察输出波形,记录波形。2.1 方式0测试程序和所观察到的波形,修改置入T2定时器的初值,观察负脉冲的宽度如何变化。2.2 方式1测试程序和所观察到的波形,读取信号周期或脉冲宽度。2.3 方式2测试程序和所观察到的波形,读取信号周期或脉冲宽度。2.4 方式3测试程序和所观察到的波形,读取信号周期或脉冲宽度。2.5 方式4测试程序和所观察到的波形,读取信号周期或脉冲宽度。2.6 方式6测试程序和所观察到的波形,读取信号周期或脉冲宽度。本实验注意事项1软件示波器的使用:用专用串行线将另一个串口连接到实验箱的J10,电源开关处的粗白线连接到WAVE插座,表笔一端插入电源指示灯处的红色插孔,另一端接触OUT2。(实验指导书中有点错,不使用0通道!)2根据工作方式不同,测试波形时操作方法略有不同。 实验总结1 2 附实验参考程序11 方式0测试程序CODE SEGMENTASSUME CS:CODECON8253 EQU 004BHT2_8253 EQU 004AH org 1000hSTART:JMP fs0fs0: MOV DX,CON8253;方式0 10110000MOV AL,10110000B;方式0 10110000OUT DX,ALMOV DX,T2_8253MOV AL,0hOUT DX,AL ;低8位初值MOV AL,0fHOUT DX,AL ;高8位初值 call delay ;为了看到循环的波形,添加循环功能 jmp fs0delay:MOV CX,08fffHl1:LOOP l1 retCODE ENDSEND START修改置入T2定时器的初值,观察负脉冲的宽度如何变化。2 实验78255并口可编程实验实验目的1掌握并行接口芯片8255A和微机接口的连接方法。2掌握并行接口芯片8255A的工作方式及其编程方法。实验重点和难点18255A的工作方式及其编程方法。2 实验课时2学时实验仪器DVCC8086JH十六位微机仿真实验系统、联想启天2400微型计算机。实验原理18255A结构8255A是可编程并行接口芯片, 双列直插式封装, 用+5V单电源供电, 如图5-6是8255A的逻辑框图, 内部有3个8位I/O端口:A口、B口、C口;也可以分为各有12位的两组:A和B组,A组包含A口8位和C口的高四位,B组包含B口8位和C口的低4位;A组控制和B组控制用于实现方式选择操作; 读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。 由于8255A数据总线缓冲器是双向三态8位驱动器, 因此可以直接和8088系统数据总线相连。图5-6 8255A结构引脚图如下所示:28255A端口地址见表5-1A1AO/RD/WR/CS操作类型操作方向001010000111000PA数据总线PB数据总线PC数据总线输入(读)00110101111100000000数据总线PA数据总线PB数据总线PC数据总线控制字输出(写)110111100数据总线三态非法状态数据总线三态断开38255A工作方式 8255A芯片有三种工作方式: 方式0、方式1、方式2。 它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。 方式0: 基本输入/输出 图5-7(a) 图5-7(d)如图5-7(a)所示。 该方式下的A口8位和B口8位可以由输入的控制字决定为输入或输出, C口分为高4位(PC7PC4)和低4位(PC3PC0)两组, 也有控制字决定其输入或输出。 需注意的是: 该方式下, 只能将C口其中一组的四位全部置为输入或输出。 方式1: 选通输入/输出图5-7 (b) 图5-7 (c)如图5-7 (b)、(c)所示。 该方式又叫单向输入输出方式, 它分为A、B组, A组由 数据口A和控制口C的高4位组成, B组由数据口B和控制口C的底4位组成。数据口的输入/输出都是锁存的,与方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 橡胶树种植资源保护与利用创新创业项目商业计划书
- 小龙虾智能养殖设备融资租赁创新创业项目商业计划书
- 小麦深加工精准扶贫计划实施创新创业项目商业计划书
- 棉花产业人力资源服务创新创业项目商业计划书
- 2025年宁波合同范本
- 2025年地产项目居间合同范本
- 2025年物业管理费收缴合同范本
- 2025年农产品买卖合同范本
- 2025石子供货合同范本
- 2025年农药常识题库及答案
- 车间外包工管理制度
- 个人理财(第2版) 宋蔚蔚全套教案课件
- 项目三技术站调车任务3简易驼峰作业60课件
- 基础教育改革理论与热点 课件 第1-4章 绪论-基础教育教学改革
- 养老护理员四级考试题库及答案
- 化工安全工程概论-第五章
- 机械工程控制基础课后答案(华科版)
- 建筑工程质量控制体系
- 中国电子科技集团公司第三十六研究所新能源、电子项目(二期)环评报告
- 工艺验证检查指南2025
- 临床教学中的情感教育PBL教学法的探索与实践
评论
0/150
提交评论