实验讲解-硬件_第1页
实验讲解-硬件_第2页
实验讲解-硬件_第3页
实验讲解-硬件_第4页
实验讲解-硬件_第5页
已阅读5页,还剩98页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验安排实验安排实验地点实验地点:6320要求要求:实验后书写实验报告,交电子版。实验后书写实验报告,交电子版。打包,命名打包,命名为为“学号学号+ +姓名姓名.rar.rar” ,发至邮箱:,发至邮箱: 。上交纸质实验报告:上交纸质实验报告:1 1、可编程定时器计数器(、可编程定时器计数器(82538253)- -(1 1)、()、(2 2)和)和思考题思考题2 2、电子琴、电子琴最后两次实验安排 12月9日(周三)下午2:306:00 12月10日(周四)上午8:3010:10 12月10日(周四)下午4:306:00 课程考试时间:12月15日(周二)下午2:004:00 课程设计时间:

2、16-17周,具体安排看邮箱 1、存储器、存储器6116读写实验读写实验 2、可编程定时器计数器(、可编程定时器计数器(8253) 3、中断(、中断(8259).49 4、可编程并行接口(、可编程并行接口(8255方式)方式) 5、七段数码管、七段数码管.75 6、电子琴、电子琴.92TPC-USB通用微机接口实验系统通用微机接口实验系统 8255实验区8253实验区0832实验区0809实验区电源开关USB连接槽总线信号输出区直流电机步进电机喇叭保护电路直流信号继电器七段数码管点阵逻辑电平开关LED显示灯通用插座通用插座逻辑笔I/O地址译码区单脉冲源单脉冲源整机复位与或非门电路及D触发器 扩

3、展插槽USB2.0连接线5 0 芯连 接线USB总线接口模块TPC-USB通用微机接口实验系统通用微机接口实验系统 USB模块功能模块功能1.实验系统中的实验系统中的USB模块使用模块使用PHILIHPS的的ISP1581 USB2.0高速接口芯片高速接口芯片,符合,符合USB2.0接口规范,提供了接口规范,提供了高速高速USB下的通信能力。下的通信能力。2.支持支持ISP下载,通过模块上的下载,通过模块上的RS-232接口,可以对接口,可以对模块模块内部的内部的MCU进行在线编程,对软件进行修改或在线升级。进行在线编程,对软件进行修改或在线升级。也可以通过也可以通过RS-232接口下载实验程

4、序到接口下载实验程序到USB模块,进行模块,进行实验。实验。3.模块内扩展有模块内扩展有DMA控制器控制器8237及存储器及存储器,可以完成微,可以完成微机机DMA传送和传送和USB的的DMA传送实验。传送实验。4.该模块提供一个该模块提供一个50线扁平电缆,通过该电缆将模块产线扁平电缆,通过该电缆将模块产生的生的仿仿ISA总线信号总线信号连到实验台上。连到实验台上。 扩展实验台结构及主要电路扩展实验台结构及主要电路 50芯总线信号插座及总线信号插孔芯总线信号插座及总线信号插孔(各总各总线信号采用线信号采用“自锁紧自锁紧”插孔插孔 )微机接口微机接口I/O地址译码电路地址译码电路 时钟电路时钟

5、电路(输出输出1MHZ、2MHZ两种信号两种信号 )逻辑电平开关电路逻辑电平开关电路 8个开关个开关K0-K7,开关拨到开关拨到“1”位置时开关断开,输出高位置时开关断开,输出高电平。拨到电平。拨到“0”位置时开关接通输出低电平。位置时开关接通输出低电平。 扩展实验台结构及主要电路扩展实验台结构及主要电路 LED显示电路显示电路 8个发光二极管及相关驱动电路个发光二极管及相关驱动电路(输入端输入端L7L0),当输,当输入信号为入信号为“1”时发光,为时发光,为“0”时灭。时灭。6. 七段数码管显示电路七段数码管显示电路 两个共阴极数码管及驱动电路两个共阴极数码管及驱动电路 7. 单脉冲电路单脉

6、冲电路采用采用RS触发器产生,实验者每按一次开关即可以从两触发器产生,实验者每按一次开关即可以从两个插座上分别输出一个正脉冲及负脉冲,供个插座上分别输出一个正脉冲及负脉冲,供“中断中断”、“DMA”、“定时器定时器/计数器计数器”等实验使用。等实验使用。 扩展实验台结构及主要电路扩展实验台结构及主要电路 LED显示电路显示电路 8个发光二极管及相关驱动电路个发光二极管及相关驱动电路(输入端输入端L7L0),当输,当输入信号为入信号为“1”时发光,为时发光,为“0”时灭。时灭。6. 七段数码管显示电路七段数码管显示电路 两个共阴极数码管及驱动电路两个共阴极数码管及驱动电路 7. 单脉冲电路单脉冲

7、电路采用采用RS触发器产生,实验者每按一次开关即可以从两触发器产生,实验者每按一次开关即可以从两个插座上分别输出一个正脉冲及负脉冲,供个插座上分别输出一个正脉冲及负脉冲,供“中断中断”、“DMA”、“定时器定时器/计数器计数器”等实验使用。等实验使用。 扩展实验台结构及主要电路扩展实验台结构及主要电路 8、逻辑笔、逻辑笔当输入端当输入端Ui接高电平时红灯接高电平时红灯(H)亮,接低电平时绿灯亮,接低电平时绿灯(L)亮。亮。6. 七段七段数码管显示电路数码管显示电路9、继电器及驱动电路、继电器及驱动电路 10、复位电路、复位电路11、步进电机驱动电路、步进电机驱动电路 12、接口集成电路、接口集

8、成电路13、逻辑门电路、逻辑门电路 实验台上设有几个逻辑门电路,包括实验台上设有几个逻辑门电路,包括“与门与门”、“或门或门”、“非非门门”、“触发器触发器”, 供实验时选择使用。供实验时选择使用。用户扩展实验区用户扩展实验区 实验台上设有实验台上设有4个通用数字集成电路插座,其中个通用数字集成电路插座,其中 “通用插座通用插座”为为40芯活动插座以方便插拔器件。芯活动插座以方便插拔器件。插座的每个引脚都用自锁紧插孔引出。部分实验插座的每个引脚都用自锁紧插孔引出。部分实验(简单并行接口、串行通信、集成电路测试等)(简单并行接口、串行通信、集成电路测试等)电路就是利用这些插座搭试的。利用这些插座

9、可电路就是利用这些插座搭试的。利用这些插座可以进行数字电路实验,也可以设计开发新的接口以进行数字电路实验,也可以设计开发新的接口实验或让学生做课程设计、毕业设计等项目。实验或让学生做课程设计、毕业设计等项目。 TPC-USB集成软件开发环境集成软件开发环境 USB模块连接测试模块连接测试 一、实验目的一、实验目的 熟悉熟悉61166116静态静态RAMRAM的使用方法,掌握的使用方法,掌握PCPC机外存扩充的手段。机外存扩充的手段。二、实验内容二、实验内容 编制程序,将字符编制程序,将字符A-ZA-Z循环写入扩展的循环写入扩展的6116RAM6116RAM中,然后再中,然后再将将6116611

10、6的内容读出来显示在主机屏幕上。的内容读出来显示在主机屏幕上。实验实验1 存储器存储器6116读写实验读写实验实验指导实验指导书的实验二十一书的实验二十一 TPC-USB通用微机接口实验系统通用微机接口实验系统 8255实验区8253实验区0832实验区0809实验区电源开关USB连接槽总线信号输出区直流电机步进电机喇叭保护电路直流信号继电器七段数码管点阵逻辑电平开关LED显示灯通用插座通用插座逻辑笔I/O地址译码区单脉冲源单脉冲源整机复位与或非门电路及D触发器 扩展插槽开关状态是开关状态是on,off,off,on时,对应时,对应A15A12取取0110,输出端(,输出端(19)才为低电平,

11、从而选中该片)才为低电平,从而选中该片6116硬件电路如下硬件电路如下: :三、编程提示三、编程提示1、注意、注意:TPC-USB已为扩展的已为扩展的6116(2K*8)指定了段地址)指定了段地址:0d4000H。2、TPC-USB模块外扩存储器的地址范围为模块外扩存储器的地址范围为0D4000H-0D7fffH(共(共16K)。)。3、通过片选信号的产生方式,确定、通过片选信号的产生方式,确定6116RAM在在PC机系统中的地址范围。因机系统中的地址范围。因为段地址已指定,所以其地址为为段地址已指定,所以其地址为CS=A15 and A14 and A13 and A12,实验,实验台上设有

12、台上设有地址选择微动开关地址选择微动开关K2,拨动开关,可以选择,拨动开关,可以选择4000-7fff的地址范围。的地址范围。 编制程序,编制程序,从从0d6000H开始循环写入开始循环写入100h个个A-Z。 开关状态如下开关状态如下:1234地址地址ON OFFON OFFd5000hONOFFOFFONd6000h data segment message db please enter a key to show the contents!,0dh,0ah,$data endscode segment assume cs:code,ds:data,es:datastart: mov a

13、x,data mov ds,ax mov ax,0d000h mov es,ax mov bx,06000h mov cx,100h mov dx,40h ;A的的ASCII码是码是41H rep1: inc dl mov es:bx,dl ;dl的值写入的值写入6116(地址(地址0d6000h)储存)储存 inc bx cmp dl,5ah ;看是否加到了;看是否加到了Z jnz ss1 mov dl,40h ;加到;加到Z了,再从了,再从A开始写开始写ss1: loop rep1 mov dx,offset message ;以下开始读出以下开始读出 mov ah,09 int 21h

14、mov ah,01h ;等待键入等待键入 int 21h mov ax,0d000h mov es,ax mov bx,06000h mov cx,0100hrep2: mov dl,es:bx ;输出输出0d6000h开始的开始的100h单元内容单元内容 mov ah,02h int 21h inc bx loop rep2 mov ax,4c00h int 21h code ends end start思考题:思考题:如果想将数据写入如果想将数据写入0d7000h,应如何调整电路应如何调整电路及程序?及程序?将写入的顺序改为将写入的顺序改为Z到到A,写入字母个数仍保,写入字母个数仍保持持2

15、56个,应如何修改程序?个,应如何修改程序?1. 将写入并读出显示在屏幕上的内容改为将写入并读出显示在屏幕上的内容改为将将“Assemble”重复重复5次。次。一、实验目的一、实验目的 掌握掌握82538253的基本工作原理和编程方法,观察不同方式下的的基本工作原理和编程方法,观察不同方式下的波形。波形。 二、实验内容二、实验内容 1 1、按图、按图1 1虚线连接电路,将计数器虚线连接电路,将计数器0 0设置为方式设置为方式0 0,计数器初,计数器初值为值为N(N15)N(N15),用手动逐个输入单脉冲,用手动逐个输入单脉冲,编程使计数值在屏编程使计数值在屏幕上显示幕上显示,并同时用逻辑笔观察

16、,并同时用逻辑笔观察OUT0OUT0电平变化电平变化( (当输入当输入N+1N+1个个脉冲后脉冲后OUT0OUT0变高电平变高电平) )。 实验实验2 可编程定时器计数器(可编程定时器计数器(8253) 图 1 8.1可编程定时器可编程定时器/计数器芯片计数器芯片8253/8254 方式0 计数结束中断GATEOUTCLK 031244方式方式0WR设设定定工工作作方方式式设设定定计计数数初初值值计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束 软件启动,不自动重复计数 装入初值后OUT端变低电平 计数结束OUT输出高电平。io8253aequ 283hio8253bequ 2

17、80hcode segmentassume cs:codestart: mov al,14h ;设置设置8253通道通道0为工作方式为工作方式0,二进制计数二进制计数 mov dx,io8253a out dx,al mov dx,io8253b ;送计数初值为送计数初值为0FH mov al,0fh out dx,allll: in al,dx ;读计数初值读计数初值 call disp ;调显示子程序调显示子程序 push dx mov ah,06h mov dl,0ffh int 21h ;直接控制台直接控制台I/O, DL=FF(输入输入),DL=字符字符(输出输出) pop dx j

18、z lll mov ah,4ch ;退出退出 int 21hdisp proc near ;显示子程序显示子程序 push dx and al,0fh ;首先取低四位首先取低四位 mov dl,al cmp dl,9 ;判断是否判断是否=9 jle num ;若是则为若是则为0-9,ASCII码加码加30H add dl,7 ;否则为否则为A-F,ASCII码加码加37Hnum: add dl,30h mov ah,02h ;显示显示 int 21h mov dl,0dh ;加回车符加回车符 int 21h mov dl,0ah ;加换行符加换行符 int 21h pop dx ret ;子程

19、序返回子程序返回disp endpcode endsend start 2 2、按图、按图2 2连接电路,将计数器连接电路,将计数器0 0、计数器、计数器1 1分别设置为方分别设置为方式式3 3,计数初值设为,计数初值设为10001000,用逻辑笔观察,用逻辑笔观察OUT1OUT1输出电平的变输出电平的变化化( (频率频率1HZ)1HZ)。图 2 io8253aequ 280hio8253bequ 281hio8253cequ 283hcode segmentassume cs:codestart:mov dx,io8253c ;向向8253写控制字写控制字mov al,36h ;使使0通道为

20、工作方式通道为工作方式3out dx,almov ax,1000 ;写入循环计数初值写入循环计数初值1000mov dx,io8253aout dx,al ;先写入低字节先写入低字节mov al,ahout dx,al ;后写入高字节后写入高字节mov dx,io8253cmov al,76h ;设设8253通道通道1工作方式工作方式2out dx,almov ax,1000 ;写入循环计数初值写入循环计数初值1000mov dx,io8253bout dx,al ;先写低字节先写低字节mov al,ahout dx,al ;后写高字节后写高字节mov ah,4ch ;程序退出程序退出int

21、21hcode endsend start 按图按图3 3连接电路,将计数器连接电路,将计数器0 0设置为方式设置为方式3 3(方波),计(方波),计数器设置为方式数器设置为方式2 2(分频)。实现计数器(分频)。实现计数器0 0的输出为方波,计的输出为方波,计数器数器1 1的输出是计数器的输出是计数器0 0输出的分频波形。人机交互界面设计:输出的分频波形。人机交互界面设计:实现在显示屏幕上提示输入计数器实现在显示屏幕上提示输入计数器0 0(方波)的参数和计数(方波)的参数和计数器器1 1(分频信号)的参数。如下所示:(分频信号)的参数。如下所示: counter1:_counter1:_ c

22、ounter2:_ counter2:_ continue?(y/n)_ continue?(y/n)_ 实现用键盘直接输入修改程序中方波的参数和分频信号实现用键盘直接输入修改程序中方波的参数和分频信号的参数,以改变方波的宽度,分频信号的周期和分频数,不的参数,以改变方波的宽度,分频信号的周期和分频数,不需重新修改源代码。观察计数器需重新修改源代码。观察计数器0 0和计数器和计数器1 1的输出波形及其的输出波形及其关系,并在纸上画出关系,并在纸上画出CLK0CLK0、OUT0OUT0、OUT1OUT1的波形。的波形。 ;*;* 8253 program *;*;data segment mes

23、g0 db 13,10,* 8253 program *,13,10,$ mesg1 db 13,10,Counter1:,$ mesg2 db 13,10,Counter2:,$ mesg3 db 13,10,Continue?(Y/N),$ mesg4 db 13,10,13,10,Thank You ! ,13,10,$ errorm db 13,10,Input Error ! ,$ counter1 dw 0 counter2 dw 0data endscode segment assume cs:code,ds:datamain proc farstart: mov dx,seg

24、data mov ds,dx mov dx,offset mesg0 mov ah,09h int 21hdo: sub bx,bx sub ax,ax mov counter1,0 mov counter2,0 ;initl1: mov dx,offset mesg1 mov ah,09h int 21hrd1 : ;read counter1 mov al,0 ;判断有无输入判断有无输入 mov ah,01 ;read a char int 21h cmp al,0 jz rd1 cmp al,13 ;if enter je fdone1 jmp tdone1fdone1: jmp don

25、e1tdone1: cmp al,10 je fdone1 cmp al,0 ;if input9 error jb error cmp al,9 ja error push ax mov ax,10 mul counter1 mov counter1,ax ;counter1=counter*10 pop ax sub bx,bx mov bl,al sub bl,30h add counter1,bx ;counter=counter+input jmp rd1error: mov dx,offset errorm mov ah,09h int 21h mov dl,7 mov ah,2

26、int 21h jmp done3tr: ;for jmp do mov dl,al mov ah,02h int 21h mov dl,10 int 21h mov dl,13 int 21h jmp dol2: mov dx,offset mesg2 mov ah,09h int 21h rd2: mov al,0 ;判断有无输入判断有无输入 mov ah,01 ;read counter2 int 21h cmp al,0 jz rd2 cmp al,13 ;if enter je fdone2 cmp al,10 je fdone2 jmp tdone2 fdone2: jmp don

27、e2 tdone2: cmp al,10 je fdone2 cmp al,0 jb error cmp al,9 ja error push ax mov ax,10 mul counter2 mov counter2,ax ;counter2=counter2*10 pop ax sub bx,bx mov bl,al sub bl,30h ;bh=0 add counter2,bx ;counter2=counter2+input jmp rd2done1: jmp l2done2: jmp out8253 ;after enter two counters ; set 8253 and

28、 do itdone3: mov dx,offset mesg3 mov ah,09h int 21hl3: mov ah,07h int 21h cmp al,Y je tr cmp al,y je tr cmp al,N je quit cmp al,n je quit mov dl,7 mov ah,02h int 21h jmp l3 out8253: ;work code mov al,00110110b mov dx,283h out dx,al mov ax, counter1 mov dx,280h out dx,al mov al,ah out dx,al mov al,01

29、110110b mov dx,283h out dx,al mov ax,counter2 mov dx,281h out dx,al mov al,ah out dx,al mov cx,2801delay: loop delay jmp done3quit: ;return to DOS mov dx,offset mesg4 mov ah,9 int 21h mov ax,4c00h int 21hmain endpcode endsend start 思考:思考:1、模仿实验内容、模仿实验内容2,令,令通道通道1工作于方式工作于方式3(方波发方波发生器),其输出接通道生器),其输出接通

30、道2输入。令输入。令通道通道2工作于单工作于单稳负脉冲输出方式(方式稳负脉冲输出方式(方式1),用单脉冲电路触),用单脉冲电路触发该通道输出发该通道输出500ms宽的负脉冲宽的负脉冲,将通道,将通道2的输的输出送发光二极管进行显示。出送发光二极管进行显示。2、改变实验参数(计数器的计数初值),加快和、改变实验参数(计数器的计数初值),加快和减慢二极管的闪烁速度。减慢二极管的闪烁速度。提示:输入脉冲频率为提示:输入脉冲频率为1MHz,设通道,设通道1计数初值计数初值为为1000,则其输出方波频率为,则其输出方波频率为1000Hz。要想在。要想在通道通道2产生产生500ms的信号,则计数初值计算方

31、法的信号,则计数初值计算方法为:为:(1/1000)*x=0.5, 得得:x=500一、实验目的一、实验目的 、掌握、掌握PCPC机中断处理系统的基本原理。机中断处理系统的基本原理。 、学会编写中断服务程序。、学会编写中断服务程序。二、实验内容二、实验内容 用手动产单脉冲作为中断请求信号用手动产单脉冲作为中断请求信号( (只需连接一根导线只需连接一根导线) )。要求每按一次开关产生一次中断,在屏幕上显示一次要求每按一次开关产生一次中断,在屏幕上显示一次“TPCA TPCA Interrupt!Interrupt!”,中断,中断1010次后程序退出。次后程序退出。 实验实验3 中断中断 三、实验

32、原理三、实验原理 PC机用户可使用的硬件中断只有可屏蔽中断,由机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向理后向CPU发出可屏蔽中断请求。发出可屏蔽中断请求。IBMPC、PC/XT机内有一片机内有一片8259中断中断控制器对外可以提供控制器对外可以提供8个中断源:个中断源:中断源中断源中断类型号中断类型号中断功能中断功能IRQ0 08H时钟时钟IRQ1 09H键盘键盘IRQ2 0AH保留保留IRQ30BH串行口串行口2IRQ40CH串行口串行

33、口1IRQ50DH硬盘硬盘IRQ60EH软盘软盘IRQ70FH并行打印机并行打印机 8个中断源的中断请求信号线个中断源的中断请求信号线IRQ0IRQ7在主机的在主机的62线线ISA总线插座总线插座中可以引出,中可以引出,系统已设定中断请求信号为系统已设定中断请求信号为“边沿触发边沿触发”,普通结束方式,普通结束方式,8259的地址已经设定为的地址已经设定为20h和和21h。对于对于PC/AT及及286以上微机内又扩展了以上微机内又扩展了一片一片8259中断控制,中断控制,IRQ2用于两片用于两片8259之间级连,一共可对外可以提供之间级连,一共可对外可以提供15个个中断源:中断源:中断源中断源

34、中断类型号中断类型号中断功能中断功能IRQ8070H实时时钟实时时钟IRQ9071H用户中断用户中断IRQ10072H保留保留IRQ11073H保留保留IRQ12074H保留保留IRQ13075H协处理器协处理器IRQ14076H硬盘硬盘IRQ15077H保留保留 TPC-USB实验板上,固定地接到了实验板上,固定地接到了3号中断号中断IRQ3上,即进行中断实验上,即进行中断实验时,所用中断类型号为时,所用中断类型号为0BH。流程图流程图可编程中断控制器可编程中断控制器Intel8259A A0 RD* WR* CS*功能功能 0 1 0 0 1 1 0 0 0 0 1 0 1 0 1 0 1

35、 1 0 1写入写入ICW1、OCW2和和OCW3写入写入ICW2ICW4和和OCW1读出读出IRR、ISR和查询字和查询字读出读出IMR数据总线高阻状态数据总线高阻状态数据总线高阻状态数据总线高阻状态data segmentmess db TPCA interrupt!,0dh,0ah,$data endscode segmentassume cs:code,ds:datastart:mov ax,csmov ds,axmov dx,offset int3mov ax,250bhint 21h ;设置设置IRQ3的中断矢量的中断矢量in al,21h ;读中断屏蔽寄存器读中断屏蔽寄存器and

36、 al,0f7h out 21h,al ;写写IMR,开放,开放IRQ3中断中断mov cx,10 ;记中断循环次数为记中断循环次数为10次次still:jmp llint3: ;中断服务程序中断服务程序mov ax,datamov ds,axmov dx,offset messmov ah,09 ;显示每次中断的提示信息显示每次中断的提示信息int 21hmov al,20hout 20h,al ;发出发出EOI结束中断(写入结束中断(写入ocw2)loop nextin al,21hor al,08h out 21h,al;关闭关闭IRQ3中断中断(ocw1)sti ;置中断标志位置中断标

37、志位mov ah,4ch ;返回返回DOSint 21hnext: iretcode endsend start D5:EOI位,中断结束命令位。为位,中断结束命令位。为1时,时,OCW2用做结束中断命令;为用做结束中断命令;为0时,时,OCW2用做设定优先级循环方式的命令字。用做设定优先级循环方式的命令字。 四、思考题 修改中断服务程序,在屏幕上显示修改中断服务程序,在屏幕上显示0、1、2、3、,触发一次,显示一个。程序触发一次,显示一个。程序设成死循环,显示到设成死循环,显示到5程序退出。程序退出。MOV BL,0 IRQ1: CLI ;以下是中服程序,开中断以下是中服程序,开中断 INC

38、 BL ;下一个输出字符下一个输出字符 MOV AL,BL MOV AH,1 INT 21H;输出字符输出字符 MOV AL,20H; OUT 20H,AL;中断结束字中断结束字 STI;开中断开中断 IRET;中断返回中断返回实验实验4 可编程并行接口可编程并行接口(8255方式)方式)指导书实验指导书实验10一、实验目的一、实验目的 1、掌握、掌握8255工作方式时的使用及编程。工作方式时的使用及编程。 2、进一步掌握中断处理程序的编写。、进一步掌握中断处理程序的编写。 二、实验内容二、实验内容11、按图、按图1,8255方式方式1的输出电路连好线路。的输出电路连好线路。2、编程、编程:每

39、按一次单脉冲按钮产生一个正脉冲使每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让产生一次中断请求,让CPU进行一次中断服务进行一次中断服务:依次输依次输出出01H、02H,04H,08H,10H,20H,40H,80H使使L0L7依次发光,中断次结束。依次发光,中断次结束。TPC-USB通用微机接口实验系统通用微机接口实验系统 图图 1 8255控制输出控制输出 12月3日,周三,上午1、2节,实验4 12月3日,周三,中午12:50,实验5 12月10日,周三,中午12:50,实验6流程图流程图主程序主程序中断服务程序中断服务程序code segmentassume cs:co

40、destart:mov ax,csmov ds,ax mov dx,offset int_procmov ax,250bh ;设外部中断设外部中断int_proc类型号为类型号为0BHint 21hmov dx,21hin al,dxand al,0f7h ;开放开放IRQ3中断中断out dx,almov dx,28bh ;置置8255为为A口方式口方式1输出输出mov al,0a0hout dx,almov al,0dh ;将将PC6置位置位out dx,almov bl,1 ll:jmp ll ;循环等待循环等待程序:程序:int_proc:mov al,blmov dx,288h ;将

41、将AL从从8255的的A口输出口输出out dx,al mov al,20hout 20h,alshl bl,1jnc next ;中断次数小于中断次数小于8,返回主程序,返回主程序in al,21hor al,08h ;关闭关闭IRQ7中断中断out 21h,alsti ;开中断开中断mov ah,4ch ;返回返回DOSint 21hnext: iretcode endsend start三、实验内容三、实验内容21、按图、按图2,8255方式方式1输入电路,连好线路。输入电路,连好线路。2、编程、编程:每按一次单脉冲按钮产生一个正脉冲使每按一次单脉冲按钮产生一个正脉冲使8255产生一次中

42、断请求,让产生一次中断请求,让CPU进行一次中断服务进行一次中断服务:读取逻读取逻辑电平开关预置的辑电平开关预置的ASCII码,在屏幕上显示其对应的字码,在屏幕上显示其对应的字符,中断次结束。符,中断次结束。 图图 2 8255控制输入控制输入流程图流程图主程序主程序中断服务程序中断服务程序code segmentassume cs:codestart:mov ax,csmov ds,ax mov dx,offset int_proc ;设置设置IRQ3中断矢量中断矢量mov ax,250bhint 21hmov dx,21hin al,dxand al,0f7h ;开放开放IRQ7中断中断o

43、ut dx,almov dx,28bh ;设设8255为为A口方式口方式1输入输入mov al,0b8hout dx,almov al,09hout dx,almov bl,8 ;BL为中断次数计数器为中断次数计数器ll:jmp ll程序:程序:int_proc: ;中断服务程序中断服务程序mov dx,288h ;自自8255A口输入一数据口输入一数据in al,dxmov dl,al ;将所输入的数据保存到将所输入的数据保存到DLmov ah,02h;显示显示ASCII码为码为DL的字符的字符int 21hmov dl,0dh ;回车回车int 21hmov dl,0ah ;换行换行int

44、 21hmov dx,20h ;发出发出EOI结束命令结束命令mov al,20hout dx,aldec bl ;计数器减计数器减1jnz next ;不为不为0则返回主程序则返回主程序in al,21hor al,08hout 21h,al ;关关IRQ3中断中断sti ;开中断开中断mov ah,4ch ;返回返回DOSint 21hnext: iretcode endsend start思考题:思考题: 以以8255的的B口作输入口口作输入口、连接逻辑电平开关;以、连接逻辑电平开关;以8255的的A口作输出口口作输出口、连接发光二极管电路。要求:当输入不是全、连接发光二极管电路。要求:

45、当输入不是全0时,输出与输入保持一致(即高电平时点亮);当输入时,输出与输入保持一致(即高电平时点亮);当输入是全是全0时,令发光二极管时,令发光二极管循环点亮循环点亮(或闪烁告警)。(或闪烁告警)。begin: mov dx,portc ; 8255 初始化初始化 mov al,82h ; A组方式组方式0,A口出,口出,; B组方式组方式0,B口入口入 out dx,al mov ah,0ffh mov bl,0lp: mov dx,portb ; B 口读入开关状态口读入开关状态 in al,dx test al,ah ;与;与ffh比较,看是否比较,看是否8个开关全闭合(个开关全闭合(

46、0信号)信号) jz shift mov dx,porta ; A 口输出开关状态口输出开关状态not al out dx,al jmp lpshift: mov al,bl ;bl初值为初值为0 mov dx,porta not al out dx,al call delay ; 延时延时shl bl,1 ; 移位移位 test bl,ah ;ah初值为初值为ffh jnz lp mov bl,1 jmp lp一、实验目的一、实验目的 掌握数码管显示数字的原理掌握数码管显示数字的原理实验实验5 七段数码管(七段数码管(指导书实验指导书实验5)hgfedcbaLED数码管及其接口数码管及其接口

47、 发光二极管发光二极管LED(Light Emitting Diode)是是最简单的最简单的显示设备显示设备 由由8段段LED组成的组成的LED数码管数码管 LED数码管广泛用于单片机、数码管广泛用于单片机、微型机控制系统及数字化仪器微型机控制系统及数字化仪器中中1. LED数码管的工作原理数码管的工作原理 主要部分是主要部分是7(8)段段LED发光管发光管 各段顺时针排列,分别称为各段顺时针排列,分别称为a、b、c、d、e、f、g、 dp (或(或h,即小即小数点,有时不用)数点,有时不用) 通过通过7个发光段的不同组合可显个发光段的不同组合可显示不同内容。示不同内容。可显示可显示09十个数

48、码十个数码也可以显示也可以显示AF(实现实现16进制数的进制数的显示)显示)还可以显示个别特殊字符,如、还可以显示个别特殊字符,如、P、H 等等abcdefgLED数码管的结构共阳极共阳极共阳极共阳极+5Vabcdefgh共阴极共阴极abcdefgh共阴极共阴极实验台实验台七段数码管显示电路七段数码管显示电路 实验台设有实验台设有两个共阴极数码管两个共阴极数码管及驱动电路,电路图及驱动电路,电路图如图。段码输入端:如图。段码输入端:a、b、c、d、e、f、g、dp,位码,位码输入端:输入端:S0、S1。显示字形显示字形gefdcba段码段码001111113fh1000011006h21010

49、115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fh二、实验内容二、实验内容 1、静态显示静态显示:按图按图5-1连接好电路,将连接好电路,将8255的的A口口PA0PA6分别与七段数码管的段码驱动输入端分别与七段数码管的段码驱动输入端a相相连,位码驱动输入端连,位码驱动输入端S1接接+5V(选选),S0、dp接地接地(关闭关闭)。编程从键盘输入一位十进制数字编程从键盘输入一位十进制数字(09),在七段数码管,在七段数码管上显示出来。上显示出来。图图5-1data segmentio

50、8255a equ 288hio8255b equ 28bhled db3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fhmesg1 db 0dh,0ah,Input a num (0-9),other key will exit:,0dh,0ah,$data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8255b ;使使8255的的A口为方式口为方式0,输出方式,输出方式mov ax,80hout dx,alsss: mov dx,offset mesg1 ;显

51、示提示信息显示提示信息 mov ah,09hint 21hmov ah,01 ;从键盘接收字符从键盘接收字符int 21hcmp al,0 ;是否小于是否小于0jl exit ;若是则退出若是则退出cmp al,9 ;是否大于是否大于9jg exit ;若是则退出若是则退出sub al,30h ;将所得字符的将所得字符的ASCII码减码减30Hmov bx,offset led ;bx为数码表的起始地址为数码表的起始地址xlat ;求出相应的段码求出相应的段码alds:bxalmov dx,io8255a ;从从8255的的A口输出口输出out dx,aljmp sss ;转转sssexit:

52、 mov ah,4ch ;返回返回int 21hcode endsend start二、实验内容二、实验内容动态显示动态显示:按图按图5-2连接好电路,七段数码管段码连接连接好电路,七段数码管段码连接不变,位码驱动输入端不变,位码驱动输入端S1,S0接接8255 C口的口的PC1,PC0。编程在两个数码管上显示。编程在两个数码管上显示“56”。动态显示动态显示(选作选作):使用图使用图5-2的电路,编程在两个数码管的电路,编程在两个数码管上循环显示上循环显示“00-99”。图图5-2; LED2.ASMdata segmentio8255a equ 28ah ;C口口io8255b equ 2

53、8bh ;控制口控制口io8255c equ 288h ;A口口led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码段码buffer1 db 6,5 ;存放要显示的个位和十位存放要显示的个位和十位bz dw ? ;位码位码data endscode segmentassume cs:code,ds:datastart:mov ax,datamov ds,axmov dx,io8255b ;将将8255设为设为A口方式口方式0输出输出mov al,80hout dx,almov di,offset buffer1 ;设设di为显示缓冲区为显示缓冲区

54、loop2: mov bh,02lll: mov byte ptr bz,bhpush di ;di指向要显示的数,为什么要指向要显示的数,为什么要push?dec diadd di, bzmov bl,di ;bl取得要显示的数取得要显示的数pop di mov al,0 mov dx,io8255a out dx,al ;C口口送送0h,即关掉数码管显示即关掉数码管显示mov bh,0mov si,offset led ;置置led数码表偏移地址为数码表偏移地址为SIadd si,bx ;求出对应的求出对应的led数码数码mov al,byte ptr simov dx,io8255c ;

55、自自8255的的A口口输出输出out dx,al ;使相应的数码管亮使相应的数码管亮mov al,byte ptr bz mov dx,io8255aout dx,al ;C口送口送2,即,即pc1=1mov cx,3000delay: loop delay ;延时延时mov bh,byte ptr bzshr bh,1 ; bh内容右移内容右移1位,即变成了位,即变成了01h,控制个位,控制个位jnz lllmov dx,0ffhmov ah,06int 21h ;直接控制台直接控制台I/O, DL=FF(输入输入),DL=字符字符(输出输出) ;DL0FFH时,执行键盘输入操作。若标志时,

56、执行键盘输入操作。若标志ZF0,AL中放入字符的中放入字符的;ASCII码;若标志码;若标志ZF1,表示无键按下。,表示无键按下。je loop2 ;无无键按下则继续显示键按下则继续显示mov dx,io8255amov al,0 out dx,al ;有键按下,关掉数码管显示有键按下,关掉数码管显示mov ah,4ch int 21h ;程序终止,退出程序终止,退出code endsend start思考题编程实现以下功能:编程实现以下功能: 按下数字按下数字1,在数码管上显示,在数码管上显示23按下数字按下数字2,在数码管上显示,在数码管上显示45实验实验6 电子琴电子琴实验指导书上的实验

57、十六实验指导书上的实验十六一、实验目的一、实验目的 1、通过、通过8253产生不同的频率信号,使产生不同的频率信号,使PC机成为简易电机成为简易电 子琴。子琴。2、了解利用、了解利用8255和和8253产生音乐的基本方法。产生音乐的基本方法。二、实验内容二、实验内容 实验电路如图实验电路如图6,8253的的CLK0接接1MHZ时钟,时钟,GATE0接接8255的的PA1,OUT0和和8255的的PA0接到与门的接到与门的两个输入端,两个输入端,K8跳线连接喇叭,编程使计算机的数字键跳线连接喇叭,编程使计算机的数字键1、2、3、4、5、6、7作为电子琴按键,按下即发出相作为电子琴按键,按下即发出相应的音阶。应的音阶。图图6 电子琴电路电子琴电路三、编程提示三、编程提示: 利用利用8255的的PA0口来施加控制信号给与门,用来控制口来施加控制信号给与门,用来控制扬声器的开关状态。再利用设置不同的计数值,使扬声器的开关状态。再利用设置不同的计数值,使8253产生不同频率的波形,使扬声器产生不同频率的音调,达产生不同频率的波形,使扬声器产生不同频率的音调,达到类似与音阶的高低音变换。对于音乐,每个音阶都有确到类似与音阶的高低音变换。对于音乐,每个音阶都

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论