实验六 8255和8253可编程芯片编程实验

合集下载

并行接口8255和定时器8253综合实验

并行接口8255和定时器8253综合实验

实验五 并行接口8255和定时器8253综合实验一、实验目的1.掌握8253定时原理和初始化方法。

2.掌握8255并行输入输出原理和初始化方法。

3.掌握定时器8253和并行接口8255的综合应用设计技术。

二、实验电路三、实验内容利用8253定时1秒钟,8255端口A 的PA0检测定时时间是否到,实现每隔1秒钟循环点亮1个灯。

开关K7拨到0时,灯全部熄灭程序退出。

8255和8253的片选地址可以自己设定。

用Proteus 仿真软件搭建硬件电路,完成系统的调试运行,并讲解搭建调试全过程。

用屏幕录像软件进行全过程录像,以MP4格式保存提交,提交仿真程序文件,完成实验报告的书写。

四、实验程序和结果CODE SEGMENT ASSUME CS:CODESTART: MOV AL,90H ;8255初始化MOV DX,28BH ;间接I/O 寻址方式,8255的控制口地址 OUT DX,AL ;将8255控制字送控制端口地址 MOV AL,36H ;8253计数器0工作方式字MOV DX,283H ;间接I/O 寻址方式,8253的控制口地址 OUT DX,AL ;将8253计数器0控制字送到控制端口地址开关控制 寄存器CS计 数器计数 器CLK 0CLK 11MHZ GATE 0 GATE 1 +5v+5v OUT 0OUT 18253CSPC 0PC 7PA 0PA 7…K 78255288H280HMOV AX,1000 ;计数初值MOV DX,280H ;选中计数器0OUT DX,AL ;将计数初值低字节送8253计数器0端口地址MOV AL,AH ;先读写低字节,在读写高字节OUT DX,AL ;将计数初值高字节送8253控制端口地址MOV AL,74H ;8253计数器1工作方式字MOV DX,283H ;间接I/O寻址方式OUT DX,AL ;将8253计数器1控制字送到控制端口地址MOV AX,1000 ;计数初值MOV DX,281H ;选中计数器1OUT DX,AL ;将计数初值低字节送8253计数器1端口地址 MOV AL,AH ;先读写低字节,再读写高字节OUT DX,AL ;将计数初值高字节送8253控制口地址MOV BL,01HMOV DX,28AH ;间接I/O寻址,8255C口地址MOV AL,BLOUT DX,AL ;点亮1盏灯AGAIN: MOV DX,288H ;8255A口地址IN AL,DXTEST AL,80H ;测试PA7开关JZ STOP ;若为0则返回DOSMOV DX,288H ;8255A口地址L1: IN AL,DXTEST AL,01H ;测试PA0,若是1则继续测PA0(高电平表示1S时间没到)JNZ L1ROL BL,1 ;若是0则准备点亮下一盏灯MOV AL,BLMOV DX,28AH ;8255C口地址OUT DX,AL ;点亮下一盏灯MOV DX,288H ;8255A口地址L2: IN AL,DXTEST AL,01H ;测PA0,若是0则继续测PA0(定时到out输出低电平并维持一个CLK周期)JZ L2JMP AGAIN ;若为1,则跳转至AGAIN(下一个定时段开始,高电平表示定时中)STOP: MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START。

可编程定时器计数器(8253)(微机实验报告)

可编程定时器计数器(8253)(微机实验报告)

可编程定时器/计数器(8253)一、实验目的 1)学会8253芯片和微机接口原理和方法。

芯片和微机接口原理和方法。

2)掌握8253定时器定时器//计数器的基本工作原理、工作方式和编程原理。

二、实验内容按图6虚线连接电路,将计数器0设置为方式0,计数器初值为N (N ≤0FH 0FH)),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

图 6按图7连接电路,连接电路,将计数器将计数器0、计数器1分别设置为方式3,计数初值设为10001000,用逻辑笔观察,用逻辑笔观察OUT1输出电平的变化(频率1HZ 1HZ))。

图 7三、编程提示1 1、、8253控制寄存器地址控制寄存器地址283H计数器0地址地址 280H 计数器1地址地址 281HCLK0连接时钟连接时钟 1MHZ2 2、参考流程图(见图、参考流程图(见图8、9): 开 始读计数器值显示计数值有键按下吗?开 始送计数器初值N Y结 束结 束设计数器0为工作方式0向计数器0送初值1000先送低字节后送高字节向计数器1送初值1000先送低字节后送高字节设计数器0为工作方式3设计数器1为工作方式3图 8 图图 9四、实验代码1、图6电路的实验代码电路的实验代码CODE SEGMENT ;CODE SEGMENT ;段定义开始(段定义开始(段定义开始(CODE CODE 段)段)ASSUME CS:CODE ; ASSUME CS:CODE ;规定规定CODE 为代码段为代码段START:MOV START:MOV AL,10H ;AL,10H ;AL,10H ;设置控制字设置控制字0001000000010000(计数器(计数器0,方式0,写两个字节,二进制计数)二进制计数)MOV DX,283H ; MOV DX,283H ;把控制寄存器地址放在把控制寄存器地址放在DX 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV DX,280H ; MOV DX,280H ;把计数器把计数器0地址放在DX 寄存器中寄存器中MOV AL,0FH ; MOV AL,0FH ;将将0FH 存入AL 寄存器寄存器OUT DX,AL ; OUT DX,AL ;将此时将此时AL 的值送入DX 端口端口LP1: IN AL,DX ;LP1: IN AL,DX ;从从DX 端口读入8位,放在AL 寄存器中寄存器中CALL DISP ; CALL DISP ;调用调用DISP PUSH DX ; PUSH DX ;将将DX 内容保存到堆栈段内容保存到堆栈段MOV AH,06H ; MOV AH,06H ;将将06H 存入AH AH,为了下句调用,为了下句调用21中断中断MOV DL,0FFH ; MOV DL,0FFH ;将将0FFH 存入DLINT 21H ; INT 21H ;调用调用21中断中断POP DX ; POP DX ;将将DX 的内容推出栈段的内容推出栈段JZ LP1 ; JZ LP1 ;如果如果DX 的内容是0,就跳转到LP1MOV AH,4CH ; MOV AH,4CH ;将将4CH 存入AH AH,为了下句调用,为了下句调用21中断中断INT 21H ; INT 21H ;调用调用21中断中断DISP PROC NEAR ;DISP PROC NEAR ;定义一个名为定义一个名为DISP 的子程序的子程序PUSH DX ; PUSH DX ;把把DX 的内容保存到堆栈段中的内容保存到堆栈段中AND AL,0FH ;AL,0FH ;将将AL 寄存器的内容与0FH 进行“与”运算,再把结果存入AL 中MOV DL,AL ; MOV DL,AL ;将将AL 的值送入DL 寄存器寄存器CMP DL,9 ; CMP DL,9 ;比较比较DL 中的值与9的大小的大小JLE NUM ; JLE NUM ;如果如果DL 的值小于或等于9时,则跳转到NUM ADD DL,7 ; ADD DL,7 ;将将DL 的值与7进行相加后,再送入DL 中NUM: ADD DL,30H ;NUM: ADD DL,30H ;将将DL 的值与30H 进行相加后,再送入DL 中 MOV AH,02H ; MOV AH,02H ;将将02H 存入AHINT 21H ; INT 21H ;调用调用DOS21中断中断MOV DL,0DH ; MOV DL,0DH ;结合“结合“结合“MOV AH,02H MOV AH,02H MOV AH,02H”就是说输出”就是说输出0DHINT 21H ; INT 21H ;调用中断指令调用中断指令调用中断指令MOV DL,0AH ; MOV DL,0AH ;结合“结合“结合“MOV AH,02H MOV AH,02H MOV AH,02H”就是说输出”就是说输出0AHINT 21H ; INT 21H ;调用调用DOS21中断中断POP DX ; POP DX ;将将DX 的内容推出栈段的内容推出栈段RET ; RET ;子程序在功能完成后返回调用程序继续执行子程序在功能完成后返回调用程序继续执行 DISP ENDP ; DISP ENDP ;子程序结束子程序结束子程序结束CODE ENDS ; CODE ENDS ;代码段结束代码段结束代码段结束END START ; END START ;程序结束程序结束程序结束2、图7电路的实验代码电路的实验代码CODE SEGMENT ;CODE SEGMENT ;段定义开始(段定义开始(段定义开始(CODE CODE 段)段)ASSUME CS:CODE ; ASSUME CS:CODE ;规定规定CODE 为代码段为代码段START:MOV DX,283H ;START:MOV DX,283H ;把控制寄存器地址放在把控制寄存器地址放在DX 寄存器中寄存器中MOV AL,36H ; MOV AL,36H ;设置控制字设置控制字0011011000110110(计数器(计数器0,方式3,写两个字节,二进制计数)二进制计数)OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV AX,1000H ; MOV AX,1000H ;该语句是立即寻址方式,就是把该语句是立即寻址方式,就是把1000H 这个数赋给AX MOV DX,280H ; MOV DX,280H ;把计数器把计数器0地址放在DX 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV AL,AH ; MOV AL,AH ;将将AX 的高8位存入AL 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将此时将此时AL 的值送入DX 端口端口MOV DX,283H ; MOV DX,283H ;把端口地址放在把端口地址放在DX 寄存器中寄存器中MOV AL,76H ; MOV AL,76H ;设置控制字设置控制字0111011001110110(计数器(计数器1,方式3,写两个字节,二进制计数)二进制计数) OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV AX,1000H ; MOV AX,1000H ;把把1000H 赋给AXMOV DX,281H ; MOV DX,281H ;把端口地址放在把端口地址放在DX 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将将AX 的低8位送入DX 端口端口MOV AL,AH ; MOV AL,AH ;将将AX 的高8位存入AL 寄存器中寄存器中OUT DX,AL ; OUT DX,AL ;将将AL 的值送入DX 端口端口MOV AH,4CH ; MOV AH,4CH ;将将4CH 存入AHINT 21H ; INT 21H ;调用调用DOS21中断中断CODE ENDS ;CODE ENDS ;代码段结束代码段结束代码段结束END START ; END START ;程序结束程序结束程序结束五、实验总结通过实验,学会通过实验,学会8253芯片和微机接口原理和方法,掌握8253定时器定时器//计数。

用8255和8253使发光二极管按一定规律轮流点亮

用8255和8253使发光二极管按一定规律轮流点亮

《微机原理与接口技术》课程设计课题用8255和8253使发光二极管轮流点亮学院计算机与信息学院班级物联网工程10-1班姓名吴超学号指导老师石磊高妍妍日期2013.1.5微机原理与接口技术课程设计班级:物联网工程姓名:吴超学号:课程设计名称用8255和8253使发光二极管按一定规律轮流点亮课程设计要求发光二极管点亮方式:将发光二极管分为n组,每组12/n个灯管,从左到右依次点亮这些灯管,每组灯管发光时间为t。

设有4种发光组合:(1)n=12,t=1s:每个灯管间隔1s循环点亮。

(2)n=12,t=2s:每个灯管间隔2s循环点亮。

(3)n=6,t=1s:每两个灯管间隔1s循环点亮。

(4)n=6,t=2s:每两个灯管间隔2s循环点亮。

这四种方式分别对应按键“A”、“B”、“C”、“D”。

按对应按键后进入对应方式。

退出:按“E”键后,所有灯管灭,七段数码管显示初始“P.”状态。

课程设计目的1掌握《微机原理与接口技术》的内容2掌握可编程并行接口8255A,可编程定时/计数器8253,及数码管的用法和原理3掌握汇编语言程序的设计硬件设计一.系统所选用的个芯片介绍1.Intel8253可编程定时/计数器2.可编程并行接口芯片82553.八段数码管显示二.系统选用各芯片的工作方式1.Intel8253可编程定时/计数器工作方式2.可编程并行接口芯片8255工作方式总体设计一.基本的工作原理二.硬件总体的设计1.系统总的方案2.键盘及其功能的定义3.系统所实现的功能三.软件总体设计1.程序代码(带注释)2程序分析系统连线说明PB0-L8PB1-L7PB2-L6PB3-L5PB4-L4PB5-L3PB6-L2 PB7-L1PC0-L12PC1-L11PC2-L10PC3-L9程序代码见第7页课程设计感想见第20页参考文献见第20页前言《微机原理与接口技术》是计算机,电子等专业的一门专业基础课程。

在课程体系中占有重要的地位课程设计的内容不仅很好的配合了所学习的内容及实验,而且通过课程设计将平时所学的内容运用到实际应用中。

8253可编程定时计数器应用实验

8253可编程定时计数器应用实验

8253可编程定时计数器应用实验一、实验要求:按照电路图连接好电路,利用8253定时计数器0产生500Hz,250Hz,125Hz 的方波信号,显示在示波器上;然后用8253定时计数器1制作一个频率计以检测4060和定时计数器0输出方波的频率。

二、实验目的:1、了解如何利用计数器(以4060为例)制作分频器2、熟悉8253在系统中的典型接法。

3、掌握8253的工作方式及应用编程。

三、实验电路及连线:输入时钟产生模块YQNQLQJQIQHQGQFQEQD图1,分频器4060就是一个纯粹的计数器,当作分频用,QD-DN就是对输入频率的4分频-8192分频,直接接到8253相应的定时器计数器时钟输入端口即可8253接口模块X图2,定时器计数器8位数据线和单片机的P0口相连;片选信号CS和P1.0相连;WR/RD分别和单片机相应的WR/RD相连;A0,A1分别和单片机的P3.4、P3.5相连;CLK0直接和4060的QD时钟输出相连;OUT0接示波器和CLK1。

四、实验说明:8253是一款拥有3个完全相同的16位定时器计数器的定时器计数器芯片,三个通道完全独立,其引脚功能为D0-D7:8位数据双向I/O口WR/RD:写/读信号,低电平有效CS:片选信号,低电平有效GATE0-2:三个定时器计数器的门信号CLK0-2:三个定时器计数器的时钟输入信号OUT0-2:三个定时器计数器的输出信号A0,A1:定时器计数器读写地址选择,00 定时器计数器0;01定时器计数器1;10 定时器计数器2;11 控制寄存器定时器计数器采用倒计数,即每输入一个时钟脉冲自减1,当计数寄存器减为0时OUT输出一个脉冲信号,但输出受工作方式和GATE引脚控制。

定时时间=时钟脉冲周期×预置的计数初值8253的定时器计数器有6种工作模式,具体工作模式由状态寄存器决定,如下SC1,SC0:计数器选择 00:选择计数器001:选择计数器110:选择计数器2RW1,RW0:读/写指示 00:计数器锁存命令01:只读/写低 8位10:只读/写高 8位11:先读/写低8位,再读/写高 8位M2,M1,M0:定时器计数器工作方式选择:000-101,方式0-5BCD:计数寄存器数制选择,1:BCD码;0:二进制码8253每个定时器计数器都有6种工作方式,具体如下所述方式0:计数结果中断方式8253工作于方式0时,在写入初始值n后,GATE为高电平时开始计数,OUT 为输出低电平,直到计数器为0,OUT变为高电平直到下次计数开始再变为低电平。

微机原理与接口技术82558253初始化编程原

微机原理与接口技术82558253初始化编程原

微机原理与接口技术8255 8253初始化编程原微机原理与接口技术--8255|8253初始化编程原理解析000微机原理与接口技术研究方向:指令数据在计算机中是如何传输的;(1)控制总线(2)地址总线(3)数据总线在计算机中要研究数据是如何传输的,就是知道计算机是如何寻址的(地址译码)、CPU与外设是如何进行数据交互的、CPU中的控制器是如何控制外设进行数据传输的;一、8253芯片74LS138芯片的工作原理:当一个选通端(G1)为高电平,另外选通端G2A、G2B为低电平时,可将地址端(A、B、C)的二进制编码在一个对应的输出端一低电平译出;(1)8253与8086CPU的连接方式注意:z如果8253与8位数据总线的微机相连,只要将A1A0分别与地址总线的最低两位A1A0相连即可。

z如果系统采用的是8086CPU,则数据总线为16位。

CPU在传送数据时,总是将低8位数据送往偶地址端口,将高8位数据送到奇地址端口。

偶地址端口的数据总是通过低8位数据总线送到CPU,奇地址端口的数据总是通过高8位数据总线送到CPU。

当仅具有8位数据总线的存储器或I/O接口芯片与8086的16位数据总线相连时,既可以连到高8位数据总线,也可以接在低8位数据总线上。

在实际设计系统时,常将这些芯片的数据线D7~D0接到系统数据总线的低8位,这样,CPU就要求芯片内部的各个端口为偶地址(地址总线的A0=0)。

应改用地址总线中的A2A1实现端口选择,即将A2连到8253的A1引脚,而将A1与8253的A0引脚相连。

(如上如所示)例题解析:5.若8253的地址为:04H-07H,要使计数器2工作于方式2,按二进制计数,计数值为02F0H,写出初始化程序。

若要读取通道1的16位计数值,写出其程序。

(1)初始化程序的步骤二、初始化编程步骤和门控信号的功能1.8253的初始化编程步骤接通电源时,8253处于未定义状态,在使用之前,必须用程序把它们初始化为所需的特定模式,这个过程称为初始化编程。

单片机可编程8255接口实验报告

单片机可编程8255接口实验报告

可编程8255接口实验报告㈠实验目的1.掌握可编程并行接口芯片的基本工作原理及其使用方,熟悉8255可编程并行I/O扩展接口。

2.掌握8255可编程并行I/O扩展接口方法,能够利用8255可编程并行接口芯片设计简单应用系统。

㈡实验器材1. G6W仿真器一台2. MCS-51实验板一台3. PC机一台4.电源一台㈢实验内容及要求1.声光报警器实验8255是可编程的通用并行输入输出扩展接口。

8255芯片的片选信号CS4 及口地址选择线AA0、AA1分别由8051的地址线提供。

8255的A口设置为输入数据端口,B口设置为输出数据端口,通过控制位操作控制字将C口某一位置位或复位,B口与发光二极管LED相连,C口与蜂鸣器相连,读取A 口数据,只要有一位为“1”,则点亮发光二极管LED(B口输出为低,LED 亮,反之,LED 灭),同时蜂鸣器响(若 C口某一位置1,蜂鸣器不响)。

2.交通灯控制实验通过并行接口8255实现十字路nb 口交通灯的模拟控制。

L6~L8与PC5~PC7相连,作为南北路口的交通灯,L1~L3与PC0~PC2相连,作为东西路口的交通等。

编程使六个灯按以下规律变化:南北路口的“绿”灯(L8)、东西路口的“红”灯(L1)同时亮30秒(要求有倒计时显示);南北路口的“黄”灯(L7)闪烁若干次,同时东西路口“红”灯(L1)继续亮;南北路口的“红”灯(L6)、东西路口的“绿”灯(L3)同时亮30秒(要求有倒计时显示);东西路口的“黄”灯(L2)闪烁若干次,南北路口的“红”灯(L6)继续亮;重复以上步骤。

㈣实验步骤1.连接8255芯片的片选信号CS4及口地址选择线AA0、AA1,并根据片选信号及口地址选择线确定8255的各I/O口地址和控制字寄存器的地址。

2.声光报警器实验的连线①8255的A口的8位根据需要接入高低电平。

②8255的B口中任一口与TEST相连,运行程序,即可观察L9发光二极管。

③在实验板上接入蜂鸣器,并且8255的PC7与BEEP相连,运行程序,即可听到蜂鸣器鸣响声。

北理工微机原理与接口技术之8255,8253实验报告

北理工微机原理与接口技术之8255,8253实验报告

北理工微机原理与接口技术之8255,8253实验报告微机原理与接口技术实验报告———8253可编程定时器8255并行接口实验实验一8255并行接口实验一,实验内容8255的A口作为输入口,与逻辑电平开关相连。

8255的B口作为输出口,与发光二极管相连。

编写程序,使得逻辑电平开关的变化在发光二极管上显示出来。

二,实验目的(1)掌握8255的工作原理。

(2)掌握编写8255并行接口初始化及编程实现的方法。

三,实验仪器微机实验教学系统实验箱、8086CPU模块四,实验步骤(1)连线8255的PA0—PA7分别与逻辑电平开关的K1—K8相连?PB0—PB7分别与发光二极管电路的LED1—LED8相连?CS0与8255的片选CS8255相连其它线路均已连好具体如图所示:(2)编辑程序,编译链接后,单步运行,调试程序。

(3)调试通过后,全速运行,观察实验结果。

(4)撰写实验报告。

五,实验源程序如下CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04A6HMOV AX,90H ;写8255的控制字,A组工作在方式0,A口输入,C口高4位输出,B组工作在方式0,B口及C口的低4位均工作在输出OUT DX,AXSTART1:MOV DX,04A0HIN AX,DX ;读取A口数据MOV DX,04A2HOUT DX,AX ;将从A口读取的数据从B口输出,控制LED灯JMP START1CODE ENDSEND START六,实验现象LED灯低电平有效。

当某一开关拨到低电平时,对应的LED灯点亮。

当某一开关拨到高电平时,对应的LED灯熄灭七,思考题1.将片选线接到CS1—CS7;重新编写程序。

CS0对应地址是04A0---O4AF, CS1对应地址是04B0---O4BF.现将片选线接到CS1,重新编程:CODE SEGMENT PUBLICASSUME CS:CODEORG 100HSTART:MOV DX,04B6H ;CS1对应的地址MOV AX,90HOUT DX,AXSTART1:MOV DX,04B0HIN AX,DXMOV DX,04B2HOUT DX,AXJMP START1CODE ENDSEND START实验现象:如同片选线接到CS02.交换A B接线,A口输出、B口输入;重新编写程序。

微机原理实验 可编程定时器计数器82548253实验

微机原理实验 可编程定时器计数器82548253实验
具体连线如图2所示:
图2 8253/8254定时器/计数器实验连线图
六、实验源程序清单
CODE SEGMENT
ASSUME CS:CODE
ORG 100H
START:MOV AL, 00010110B;控制字00-计数器0,01-低8位,011-方式3,0-二进制
OUT 03H,AL;将控制字写入控制寄存器
实验报告(45)
总分
指导教师签字:
年月日
备注:
注:1、报告内的项目或内容设置,可根据实际情况加以调整和补充。
2、教师批改学生实验报告时间应在学生提交实验报告时间后10日内。
图1可编程定时器/计数器8253/8254原理图
(2).计数器都有6种工作方式:
方式0—计数过程结束时中断;
方式1—可编程的单拍脉冲;
方式2—频率发生器;
方式3—方波发生器;
方式4—软件触发;
方式5—硬件触发。
(3)6种工作方式主要有5点不同:
一是启动计数器的触发方式和时刻不同;二是计数过程中门控信号GATE对计数操作的影响不同;三是OUT输出的波形不同;四是在计数过程中重新写入计数初值对计数过程的影响不同;五是计数过程结束,减法计数器是否恢复计数初值并自动重复计数过程的不同。
九、实验总结
硬件实验相对来说趣味性大了很多,同时也使得程序没那么复杂不过存在的问题突出表现于受到硬件实验条件的制约,硬件上的小问题就有可能导致不能出显预想的结果这也就使得在硬件连接上要很小心。
十、思考题
1.若8254模块选通线CS连到MCU主模块的地址A12,则应如何修改程序?
答:改变了存储芯片的地址范围所以将程序对应的地址范围改过即可。接A12对应地址范围是6800~6FFFH;接A14对应地址范围是3800~3FFFH。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验六 8255/8253可编程芯片综合实验
一、实验目的
1.了解8255、8253芯片结构及接口方式。

2.掌握8255、8253的编程方法。

二、实验内容
1、以8253的计数器1,通过CLK1对300Hz的信号进行计数定时,采用方式2,要求定时时间为2S;
2、将计数器1的输出OUT1接到计数器2的CLK2上,用计数器2对其计数4次,采用方式3产生方波信号;
3、利用8255的A口工作于方式0输出控制LED灯、B口工作于方式0的输入, OUT2接到PB0上,查询PB0的状态,若PB0==0,则从A口输出00001111,若PB1==1,则从A口输出11110000。

三、实验预习要求
学习教材的相关内容,根据实验要求画出程序流程图,写出实验程序。

四、实验步骤
1)系统各跳线器处在初始设置状态。

将8位LED灯接到8255的A口,CS_8255接200H,则8255 状态/命令口地址为203H,PA口地址为200H,PB口地址为201H。

将CS-8253接208H,则8253计数器0地址为208H,计数器1地址为209H,计数器2地址为20AH,控制口地址为20BH。

CLK1接时钟信号源上的300Hz信号,OUT1接到CLK2上,OUT2接到8255的PB0上,GATE1和GATE2都接到+5V上。

2)启动PC机,打开THGMW-88软件,输入源程序,并编译源程序。

编译无误后,下载程序运行。

五、实验要求
1)根据实验内容编写一个程序,并在实验仪上调试和验证,记录程序。

2)观察发光二极管的亮灭变化情况和时间的关系。

3)不改程序,将CLK1接到150Hz信号源上观察有什么变化,接到900Hz信号源上又有什么变化,想想为什么?
例如:CS=800H,8255A1、A0与CPU的A1、A0对应相连,设置8255为A口输出、B口输入,均工作于方式0,则控制字为1 00 0 * 0 1 *B,*为“0”,也可为“1”。

编程: MOV DX,803H ;地址送到DX中
MOV AL,10000010B ;控制字送到AL中
OUT DX,AL ;执行指令实现8255初始化
2、输入
MOV DX,801H ;输入口B口地址送到DX中
IN AL,DX ;外设数据通过B口送到AL中
3、输出
MOV DX,800H ;地址送到DX中
MOV AL,10000010B ;待输出的数据送到AL中
OUT DX,AL ;执行指令实现8255的A口输出数据
TIM_CTL EQU 20BH
TIMER0 EQU 208H
TIMER1 EQU 209H
TIMER2 EQU 20AH
C8255 EQU 203H ;8255 状态/命令口地址
P8255A EQU 200H ;8255 PA 口地址
P8255B EQU 201H ;8255 PC 口地址
P8255C EQU 202H ;8255 PC 口地址
DA TA SEGMENT
DA TA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
CLI ;关中断
MOV DX, 20BH ;定时器1工作在方式2
MOV AL ,01110101B
OUT DX,AL
MOV DX, 209H
MOV AL, 00H
OUT DX,AL
MOV AL, 06H
OUT DX,AL
MOV DX, 20BH ;定时器2工作在方式3
MOV AL, 10010111B
OUT DX,AL
MOV DX, 20AH
MOV AL, 04H
OUT DX,AL
MOV DX, 203H ; ;设置为8255的A口输出,B口输入,方式0
MOV AL ,10000010B
OUT DX,AL
BG: MOV DX, 201H ;B口输入
IN AL,DX
AND AL, 01H ;判断PB0口输入是否为0,不为0则跳转CMP AL,0
JZ ZERO
MOV AL , 0F
JMP EXIT
ZERO: MOV AL ,0F0H
EXIT : MOV DX, 200H ;A口输出OuT DX, AL
JMP BG
STI
JMP $
CODE ENDS
END START。

相关文档
最新文档