8255控制打印机完整版

合集下载

8086cpu 8255 打印机接口

8086cpu 8255 打印机接口

与打印机接口在某一8086cpu系统中接有一台打印机,8255A作为输出接口,工作在方式0下。

编写一程序将缓冲区BUFF内的400H个字节的ASSC11码送打印机打印。

工作过程如下:数据线D7~D0出现有效数据。

STB有效,通知打印机,接口给打印机一个数据,数据从数据线进入打印机。

BUSY有效,告诉接口,打印机正在打印数据。

打印完毕,BUSY变为无效,表示打印结束转步骤1相关打印程序比较简单,过程如下:1首先检测BUSY是否有效,是,则循环检测;否则执行第2步。

cpu写有效数据到A口,发STB(应上划线)信号,把A口数据输出给打印机。

A_PORT EQU 80HB_PORT EQU 82HC_PORT EQU 84HCTRL_PORT EQU 86H.......MOV AL,10001010BOUT CTRL)PORT,ALMOV AL,00000001BOUT CTRL_PORT,ALMOV CX,400MOV BX,OFFSET BUFF LOOP1:MOV DL,[BX]CALL PRINT_DATEINC BXLOOP LOOP1......PRINT_DATA PROCPRINT1:IN AL,C_PORTTEST AL,00010000BJNZ PRINT1MOV AL,DLOUT A_PORT,ALMOV AL,00000000BOUT CTRL_PORT,ALMOV AL,00000001BOUT CTRL_PORT,ALRETPRINT_DATA ENDP可以看出,上述程序通过对C口的无条件读取方式,也就是测试打印机的状态线BUSY,实现把A口的数据有条件传输给打印机。

现有一个高精密晶体振荡电路,输出信号时脉冲波,频率为1MHz。

要求利用8253做一个秒信号发生器,其输出接一个发光二级管,以0.5秒点亮、0.5秒熄灭的方法闪烁指示。

设8253的通道地址为80H~86H(偶地址)。

8255功能与应用

8255功能与应用


8255A具有三个相互独立的输入/输出通道:
通道A、通道B、通道C。
A组控制逻辑控制端口A及端口C的上半部;
A组有0,1,2 三种工作方式。
B组控制逻辑控制端口B及端口C的下半部,
B组只能工作于方式0,1。
二、8255A的结构框图(如图8-1所示) 从功能上来分,8255A的结构可分为:总 线接口电路、内部控制逻辑和输入 / 输出 接口电路。 (1)总线接口电路 数据总线缓冲器和读/写控制逻辑。 (2)内部控制逻辑 (3)输入/输出接口电路
MOV AL, 0DH OUT 83H, AL ;设按位置位/复位控制字 ;置PC6=1,使选通无效
具体程序段如下:
MOV AL, 81H OUT 83H, AL MOV AL, 0DH OUT 83H, AL WAIT:IN AL, 82H TEST AL, 04H JNZ WAIT MOV AL, BL OUT 80H, AL MOV AL,0CH OUT 83H, AL INC AL OUT 83H, AL
; (控制字若为83H也对) ;送控制字 ;设按位置位/复位控制字 ;置PC6=1,使选通无效 ;读C口状态 ;测试BUSY状态(PC2) ;忙,循环测试 ;不忙,取打印字符 ;送A口 ;设按位置位/复位控制字 ;置PC6=0,选通打印机
;置PC6=1


掌握可编程输入/输出接口芯片8255A的应用 及编程方法(方式0,硬件电路,程序)。
8255A作为打印机接口的示意图如下:
A0 A1 IOR IOW 译 码 器
A0 A1
RD
WR CS
工作过程:


8255A不断查询打 印机的状态,当 打印机为忙状态, 8255A处于查询等 待状态。 当打印机为空闲 状态时,CPU通过 8255A向打印机输 出一个字符。

8255并口控制器应用实验

8255并口控制器应用实验

8255并口控制器应用实验1.实验目的(1)掌握8255的工作方式及应用编程。

(2)掌握8255的典型应用电路接法。

2.实验设备PC微机一台、TD-PIT+ 实验系统一套。

3.实验内容(1)基本输入输出实验。

编写程序,使8255的A口为输出,B口为输入,完成拨动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就改变。

(2)流水灯显示实验。

编写程序,使8255的A口和B口均为输出,实现16位数据灯的相对循环显示。

4.实验原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位、32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/出方式、方式1--选通输入/出方式、方式2--双向选通工作方式。

8255的内部结构及引脚如图1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图2所示。

图1 8255的内部结构及引脚(a)工作方式控制字(b)C口按位置位/复位控制字图2 8255控制字格式5.实验说明及步骤(1)基本输入输出实验本实验使8255端口A工作在方式0并作为输出口,端口B工作在方式0并作为输入口。

用一组开关信号接入端口B,端口A输出线接至一组数据灯上,然后通过对8255芯片编程来实现输入输出功能。

参考程序流程如图3所示。

图3 8255并口应用实验(1)参考程序流程图图4 8255并口应用实验(1)参考接线图实验步骤:a)确认从PC机引出的两根扁平电缆已经连接在实验平台上。

b)参考图4所示连接实验线路。

c)首先运行CHECK程序,查看I/O空间始地址。

d)利用查出的地址编写程序,然后编译链接。

e)运行程序,拨动开关,看数据灯显示是否正确。

;8255基本输入输出实验代码;***********根据查看端口资源修改下列符号值**************** IOY0 EQU 9C00H ;片选IOY0对应的端口始地址;********************************************************* MY8255_A EQU IOY0+00H*4 ;8255的A口地址MY8255_B EQU IOY0+01H*4 ;8255的B口地址MY8255_C EQU IOY0+02H*4 ;8255的C口地址MY8255_MODE EQU IOY0+03H*4 ;8255的控制寄存器地址STACK1 SEGMENT STACKDW 256 DUP(?)STACK1 ENDSCODE SEGMENTASSUME CS:CODESTART: MOV DX,MY8255_MODE ;初始化8255工作方式MOV AL,82H ;工作方式0,A口输出,B口输入OUT DX,ALLOOP1: MOV DX,MY8255_B ;读B口IN AL,DXMOV DX,MY8255_A ;写A口OUT DX,ALMOV AH,1 ;判断是否有按键按下INT 16HJZ LOOP1 ;无按键则跳回继续循环,有则退出QUIT: MOV AX,4C00H ;结束程序退出INT 21HCODE ENDSEND START(2)流水灯显示实验首先分别向A口和B口写入80H和01H,然后分别将该数右移和左移一位,再送到端口上,这样循环下去,从而实现流水灯的显示。

实验5(8255并行接口键盘及显示实验)

实验5(8255并行接口键盘及显示实验)

8255接口键盘及显示综合设计实验(曹建文2009年10月10日)一、实验目的1、掌握8255的工作方式及应用编程。

2、自行设计、制作和连接基于8255并行接口的键盘及显示实验电路。

3、实现扫描式矩阵键盘的功能和作用。

二、实验设备PC机1台,TD-PIT实验台1台,实验元器件若干。

三、实验内容1、使用8255实现键盘按键和七段LED数码显示管显示功能。

2、根据实验要求自行设计实验线路图,制作和焊接实验电路板和实验元器件。

3、按照实验要求和实验电路图编写实验程序,使得按下不同的数字按键后数码管显示相应的数字值(4位数码管)。

4、按照实验要求设计和编写实验程序,实现普通计算器的加/减法功能。

四、实验原理1、8255结构及原理并行接口是以数据的字节为单位与I/O设备或被控制对象之间传递信息。

CPU和接口之间的数据传送总是并行的,即可以同时传递8位、16位或32位等。

8255可编程外围接口芯片是Intel公司生产的通用并行I/O接口芯片,它具有A、B、C三个并行接口,用+5V单电源供电,能在以下三种方式下工作:方式0--基本输入/输出方式、方式1--选通输入/输出方式、方式2--双向选通工作方式。

8255的内部结构及引脚如图-1所示,8255工作方式控制字和C口按位置位/复位控制字格式如图-2所示。

图-1:8255内部结构及引脚图(a)工作方式控制字(b)c口按位置位/复位控制字图-2:8255控制字格式(1)8255的内部结构如图-1所示,8255的内部结构由以下4个部分组成:(1)输入/输出端口A、B、C 。

这三个端口均可看作是I/O端口,但它们的结构和功能也稍有不同。

A口和B口是一个独立的8位I/O口。

C口可以看作是一个独立的8位I/O口;也可以看作是两个独立的4位I/O口。

(2)A组和B组控制电路。

这是两组根据CPU命令控制8255工作方式的电路,这些控制电路内部设有控制寄存器,可以根据CPU送来的编程命令来控制8255的工作方式,也可以根据编程命令来对C口的指定位进行置位/复位的操作。

8255工作方式

8255工作方式

INTRA
I/O
图 端口A方式 1 输入
STB:选通信号输入,外设 发出 IBF:输入缓冲器满,8255 发出 INTE:内部中断触发器 INTR:中断请求
① 当外设数据准备好,将数据送至 端口线PA7~PA0 ② 外设发出选通信号STB: (1) 将数据锁存在输入端口内。 (2) STB的下降沿使IBF变高,表 示输入端口满,用于阻止外设输入 新数据。 (3) STB的上升沿使INTE=1, 从而 INTR变高,发出中断请求。 ③ 中断处理程序中CPU 读取数据, 发出RD信号: (1) RD 的下降沿清除INTR (2) RD 的上升沿清除IBF (3) 端口内的数据进入CPU
PC3
INTRA
中断允许触发器
中断请求信号,高电平有效,当输出设备已接受 数据后,8255A输出此信号向CPU提出中断请求, 要求CPU继续提供数据
B端口方式1输出:
输出缓冲器满信号,低电平有效 8255A输出给外设的一个控制信号, 当其有效时,表示CPU已把数据输 出给指定的端口,外设可以取走
PB7~PB0 INTEB PC1 PC2
组合,具体情况应如表7.2所示。P262
7.1.3
8255的工作方式
2.方式1—选通输入/输出方式 端口A或端口B仍作为数据的输入/输出口,但同时规定端口C的某 些位作为控制或状态信息。 适用于查询和中断方式的接口电路
方式1的特点 端口A、B可分别工作在方式1。 端口C配合方式1工作。
2.工作方式1:被称作选通输入/输出方式,在这种工 作方式下,数据输入/输出操作要在选通信号控制下 完成。(部分PC线作为选通控制信号线) 采用工作方式1进行输入操作(外设→接口→ CPU)时, 需要使用的控制信号如下: ① STB——选通信号。由外部输入,低电平有效。 STB有效时,将外部输入的数据锁存到所选端口的 输入锁存器中。对A组来说,指定端口C的第4位 (PC4)用来接收向端口A输入的STB信号;对B组来说, 指定端口C的第2位(PC2)用来接收向端口B输入的 STB信号。 ② IBF——输入缓冲存储器满信号。向外部输出,高 电平有效。

微型计算机及接口技术8255举例

微型计算机及接口技术8255举例
若是,无键按下, 若是,无键按下,转b; 如果不全为1 表明有键按下,执行下步; 如果不全为1,表明有键按下,执行下步;
key _ num = 4i + j
d、 、 e、 、 f、 、 g、 、 h、 、 i、 、
延时10ms,消除抖动。 延时 ,消除抖动。 逐列检测,找出为0的列信号 的列信号j; 逐列检测,找出为 的列信号 ; 设定列为输出,行为输入; 设定列为输出,行为输入; 列输出为0,输入行信号; 列输出为 ,输入行信号; 逐行检测,找出为0的行信号 的行信号i; 逐行检测,找出为 的行信号 ; 计算键号key_num 计算键号
8253应用举例 应用举例
例1:现有一个高精密晶体振荡电路, 现有一个高精密晶体振荡电路, 输出信号是脉冲波,频率为1MHz 1MHz。 输出信号是脉冲波,频率为1MHz。要求 利用8253做一个秒信号发生器, 8253做一个秒信号发生器 利用8253做一个秒信号发生器,其输出 接一发光二极管, 0.5秒点亮 0.5秒 秒点亮, 接一发光二极管,以0.5秒点亮,0.5秒 熄灭的方式闪烁指示。 8253的通道地 熄灭的方式闪烁指示。设8253的通道地 址为80H 86H(偶地址) 80H~ 址为80H~86H(偶地址)
8255
PC0
8253 OUT0 CLK0 GATE0 1KHz +5V
2、时间常数计算 如果8253 CLK输入1KHz信号, 如果8253的CLK输入1KHz信号,延时 8253的 输入1KHz信号 时间为1S 1S, 时间为1S,则时间常数为 N=1/0.001=1000D=03E8H 3、工作方式选择 4、程序
;通道1控制字 通道1 ;通道1初始计数值,03E8H=1000BCD 通道1初始计数值,03E H=1000BCD

实验六---8255并行输入输出

实验六---8255并行输入输出

实验六---8255并行输入输出一、实验目的1.了解并熟悉8255并行输入输出控制器的功能和工作原理;二、实验原理1.8255芯片介绍8255是一种常用的并行输入/输出接口芯片,可用于微处理机系统中的输入/输出控制输出,根据中文名可以看出,8255有三种工作方式即口A、口B和控制口。

8255所有的输入/输出都是双向的,它可以通过输入输出口的命令字来在不同的模式下工作。

在输出模式下,82555可以通过端口A、B控制外围设备的输出操作,在输入模式下,8255可以通过端口A、B实现对外围设备的输入操作。

控制口是用来控制8255写作模式或读作状态字,并对端口进行初始化操作。

8255在不同的模式下有不同的编程方法和操作方法,因此需要在实际应用中选择不同的工作模式。

8255有三个I/O端口A、B、C,每个端口都有8位。

这里解释一下控制端口的意义,地址为0B4H的控制端口是连续读或写8255内部状态寄存器的地址,而后面的一个读或写就表示读或写操作的类型,如果该端口被写入了“控制字”则8255按照控制字工作,否则会在该端口读出输入状态字。

在读或写操作的时候向控制端口写入的二进制数在图3-8中给出了。

表3-2:8255访问口定义地址口分类名称端口A0B0H输出Port A输入ControlCout端口Cin端口2.8255的编程方式方式0:即I/O挂接方式,这种方式下A、B、C三个端口为并行I/O口时,其与MCU的接线和编程方式与单片机内部I/O端口的连接和编程方式相同。

方式1:即输入输出口不一样。

在这种片内Ram中的地址空间0~7地址单元内写入相应的端口或方式的控制字后,该8255工作在相应的方式。

即:方式0:读出的是8位端口A的状态,写操作为将数据送到端口A;方式2:是把C口分配为两部分——高4位为输入,低4位为输出,它与方式1类似。

端口C的所有状态和很多控制功能都由C口寄存器存储。

方式2:“端口C字符型输入输出方式”,在这种方式下,端口C的8个位分成两部分,4个位作为输入的,4个位作为输出的。

汤荣胜8255控制微型打印机

汤荣胜8255控制微型打印机

摘要单片微型计算机(简称单片机)作为微型计算机的一个很重要的分支,自它诞生以来,以其极高的性价比以及一系列的优点,受到越来越多的工程技术人员的重视。

现在,单片机已广泛地应用在智能仪器仪表、机电设备过程控制、自动检测、家用电器和数据处理等各个方面。

随着单片机的发展以及它在各种复杂的控制系统、智能化系统中的广泛应用,它将渗透到生产和生活的各个领域。

单片机控制品质卓越,基于单片机的微型打印机运行可靠,操作方便。

微型打印机是一种及其常用的人机交换工具,他在人们的日常生活中起着非常重要的作用。

比如银行ATM自动取款机打印取款凭证、超市打印消费小票、出租车打印路费、再比如某些不利于人工控制的高压环境,在设备控制里面我们可以设计一故障打印模块,及时打印故障,控制微型打印机和启动打印机尤为重要。

传统上启动打印机都是靠人工手动操作完成,但是在上面所举例子中,对于人工操作带有一定的风险性,并且从经济领域考虑,我们提出并设计了由89S51、8255、红外接收芯片M5046控制微型打印机这一系统。

关键词:单片机;8255;微型打印机;M5046Based on SCM micro-printerABSTRACTSingle-chip micro-computer (SCM) as a mini-computer is a very important branch, since its birth, its high price and a series of advantages, by the growing number of engineering and technical personnel attention. Now, SCM has been widely used in smart instrumentation, process control electrical and mechanical equipment, automatic detection, household appliances and data processing, and other various aspects. With the development of SCM and its complex control systems, a wide range of applications in intelligent system, it will penetrate into the production and in all areas of life.The Single-chip microcomputer has a excellence to control something, based on single-chip micro-printer run reliably, and it is easy to be operated. mini-printers is a common exchanging tool between people and machines ,it plays a very important role in people's daily lives . For example, ATM prints receipts, the staff of supermarket prints the consumption of small votes, taxi drivers print fare, and then for example, to some of the high-pressure environment which is not conducive to manual control,we could design a print module inside the device and printing the fault of the machine in time, it is very important to contral and run the printer .. Traditionally, printers operated by manual, but in the example above, manual operation exists a certain degree of risk, and from the economic sphere, we proposed and designed the system of micro-printer controled by the 80C51, 8255, infrared receiver chip M5046 .Key words: SCM;8255;Micro-printer;M5046目录前言 (1)第一章概述 (2)1.1单片机的发展 (2)1.2单片机的应用模式和应用领域 (2)第二章本设计所用芯片介绍 (4)2.18255A可编程接口芯片 (4)2.1.18255A的内部结构与引脚 (4)2.1.28255A的工作方式 (7)2.1.38255A的控制字及初始化 (11)2.2AT89S51单片机 (13)2.2.1AT89S51单片机引脚及功能 (13)2.2.2AT89S51单片机硬件结构特点 (15)2.374LS373芯片 (15)第三章系统设计 (19)3.1系统设计思路 (19)3.2系统硬件电路设计 (19)3.2.1设计原理 (19)3.2.2复位电路 (19)3.2.3振荡电路 (21)3.2.4红外接收电路 (22)3.2.5硬件电路总体设计 (22)3.3软件程序设计 (22)3.3.1软件设计思路 (22)3.3.2软件设计流程图 (23)3.3.3软件设计源程序 (24)第四章遇到问题及其解决方案 (25)第五章总结 (26)5.1设计总结 (26)5.2系统成果 (27)5.3下一步工作 (27)致谢 (28)参考文献 (29)附录A:硬件原理图 (30)附录B:8255控制微型打印机的软件源程序 (31)附录C:设计成品展示 (35)前言微型打印机是一种及其常用的人机交换工具,他在人们的日常生活中起着非常重要的作用。

8255a中断方式控制打印机

8255a中断方式控制打印机
PC6置位:00001101即 0DH
允许8255A的A口输出中断,8255A的A端口作为数据通道,可工作在上述3中方式,端口B只可工作于两种方式,端口C 只可工作于方式0。端口C常常分为高四位和低四位两部分,分别用来传送数据或控制信息。用户可以通过编辑来分别定义每一个端口的工作方式,使用的控制字有工作方式控制字和置位控制字。
关键词:8255A、接口、中断、并行
1
本次课设采用8255A工作方式1,其A口充当打印机数据线,C 口的 PC0 接打印机选通信号线 STB ,C口的PC6接打印机的ACK,处理器以中断方式控制输出数据到打印机。为了用键盘来设定打印内容,可以 先定义一个数据段,然后调用 DOS 的 1 号功能完成数据存储.在满足一定的条 件下,CPU 现将打印内容依次送到8255A,然后再送到打印机打印,数据全部 传送并打印完毕后退出程。
2.5并行接口的作用及基本功能
(1)具有一个或多个数据I/O寄存器和缓冲器 (也称为端口寄存器);
(2)具有与CPU和外设进行联络控制的功能;
(3)能够以中断的方式与CPU进行联络;
(4)可以有多种工作方式,且可编程进行选择。
3
8255A作中断方式工作的字符打印机的接口,如下图所示:
原理图
打印机接口需要一个数据选通信号STB,故由CPU控制PC0来产生选通脉冲STB。OBF在此没有用,将它悬空就行了,ACK端连接打印机端。
在这个设计中,由中断处理子程序完成字符输出;而初始化程序完成对8255A设置方式控制字、设置中断向量、开放中断。主程序执行其它操作,并等待中断。
中断服务主程序入口标号为INTPR。所谓设置中断向量,就是把中断服务程序的入口地址(4字节的逻辑地址)写到中断向量表中由中断类型号指定的单元中。

8255A的功能与结构

8255A的功能与结构

8255A的功能与结构8255A可编程外围设备接⼝(programmable perphheral interface,PPI)是⼀种通⽤的可编程并⾏I/O接⼝器件。

它可以作为Intel系列微处理器或其它系列微处理器的接⼝器件,可以将任何与TTL兼容的I/O设备与微处理器连接。

在与主频不⾼于8MHz的微处理器⼀起⼯作时,不需要插⼊等待周期。

它有24个可编程I/O引脚,分为两组,每组12个,可以以3种不同的操作⽅式⼯作。

它的每个I/O引脚可以提供2.5mA的吸⼊电流,最⼤4mA。

8255A常常⽤作键盘和打印机端⼝。

它的价格低廉,使⽤⽅便,得到了⼴泛的应⽤。

8255A的功能结构由图可得:(1)数据总线缓冲器D7~D0与系统数据总线相连,负责与CPU进⾏数据交换。

包括输⼊输出数据、控制字和状态字。

(2)读/写控制逻辑接收来⾃CPU的地址信息和控制信息。

(3)A组控制和B组控制这两组控制逻辑电路接收来⾃CPU的控制字,控制两组端⼝的⼯作⽅式及读/写操作。

A组控制端⼝A和端⼝C的⾼4位,B组控制端⼝B和端⼝C的低4位。

(4)端⼝A、B、C8255A有3个8位数据输⼊/输出端⼝:端⼝A、端⼝B和端⼝C,分别简称为A⼝、B⼝和C⼝。

它们对外的引线分别是PA7~PA0、PB7~PB0和PC7~PC0。

C⼝可分成两个4位的端⼝:C⼝⾼4位(PC7~PC4)和C⼝低4位(PC3~PC0)。

三个端⼝按组编程端⼝A和端⼝B都有⼀个8位数据输⼊锁存器和⼀个8位数据输出锁存/缓冲器。

端⼝C有⼀个8位数据输⼊缓冲器和⼀个8位数据输出锁存/缓冲器。

端⼝C可以按位操作。

8255A的引脚功能双列直插,40根引脚D7~D0:数据信号线CS:⽚选信号输⼊引脚,低电平有效RD:读信号输⼊引脚,低电平有效WR:写信号输⼊引脚,低电平有效RESET:复位信号输⼊引脚,⾼电平有效。

⽤于将8255A控制字寄存器清“0”,并将A、B、C⼝置成输⼊状态A1、A0:端⼝选择信号输⼊引脚8255A的⼯作⽅式8255A可以⽆条件⽅式、查询⽅式和中断⽅式完成CPU与外设的数据交换。

8255的编程和使用

8255的编程和使用

8255的编程和使用姓名:王涛学号:PB07210360实验目的1. 学习并掌握 8255 的工作方式及其应用;2. 掌握 8255 典型应用电路的接法。

实验内容基本输入输出实验。

编写程序,使 8255 的 A 口为输入,B 口为输出,完成拨动开关到数据灯的数据传输。

要求只要开关拨动,数据灯的显示就发生相应改变。

实验原理(1)INTEL 8255是一种通用的可编程并行I/O接口芯片,是专为INTEL公司的微处理器设计的,也可用于其它系列的微型机系统中。

利用8086汇编指令系统,编制初始化程序,可以变更8255 的工作方式,通用性强,使用灵活。

8255具有3个带锁存或缓冲的数据端口,它的并行数据宽度为8位。

可与外设并行进行数据交换。

A口和B口内具有中断控制逻辑,在外设与CPU之间可用中断方式进行信息交换。

8255能与许多外部设备连接,例如:键盘、显示器、打印机等。

(a)工作方式控制字 (b)C口按位置位/复位控制字则可知,PORT_A工作方式0且输出,PORT_B工作方式0输出,工作方式控制字为10010000B。

(2)输入/输出接口编址输入/输出接口编址见下表。

若使用IOY1,PORT A~D地址为0640H、0642H、0644H和0646H。

附表2-2 输入/输出接口编址实验步骤本实验使 8255 端口 A 工作在方式 0 并作为输入口,端口 B 工作在方式 0 并作为输出口。

用一组开关信号接入端口 A,端口B 输出线接至一组数据灯上,然后通过对 8255 芯片编程来实现输入输出功能。

实验程序流程如图2-1,具体实验步骤如下述:(1)实验接线图如图2-2 所示,按图连接实验线路图;(2)编写实验程序,经编译、连接无误后装入系统;(3)运行程序,改变拨动开关,同时观察 LED 显示,验证程序功能。

图 2-1 8255基本输入输出参考程序流程图图 2-2 8255 基本输入输出实验接线图汇编源代码PORT_A EQU 0640H //A口地址PORT_B EQU 0642H//B口地址PORT_C EQU 0646H//C口地址CODE SEGMENTASSUME CS:CODESTART:MOV AL, 10010000BMOV DX, PORT_COUT DX, ALLOOP:MOV DX, PORT_AIN AL, DXMOV DX, PORT_BOUT DX, ALJMP LOOPCODE ENDSEND START代码分析:代码运行是个循环,不断地从端口a读入开关信号端口b输出控制灯的信号。

10-8255使用方法

10-8255使用方法
• 外部扩展总线
– 地址、数据、控制
MCS-51三总线
• 地址总线(Address Bus, AB)
– 传送地址信号,进行存储单元和I/O口访问 – 单向信号 – 地址总线数目决定访问存储单元数目
• MCS-51地址总线具有16条,可访问216 = 65536 =64K 存储单元
– MCS-51的地址总线由分时访问的P0口做低8位地址线, P2口做高8位地址线
Q0 Q1 Q Q3 Q4 Q5 Q6 Q7
2、 74LS373的引脚
D4 D5 D6 D7 LE
OE
3、 74LS373与89C51的连接
连接图
思考
74LS373与89C51的连接图 DB
P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 89C51 P0.7 ALE P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 74LS373 D0 A0 D1 A1 D2 A2 D3 A3 D4 A4 D5 A5 D6 A6 D7 A7 LE OE
A0
AB
A15
PSEN WR RD
A15
CB
+
地址码的计算
计算74LS373的地址(8051送出何种地址码时可以将数送到Q端)
P27 P26 P25 A13 * P24 A12 * P23 P22 P21 P2 0 P07 P06 P05 P04 P03 P02 P01 P00 A8 A7 A6 A5 * * * * A4 A3 * * A2 A1 A0 * * * A15 A14 0 * A11 A10 A9 * * *
8.2.2 8255的引脚
A组 控制 PA0~PA7:A组数据信 号,用来连接外设。

8255控制打印机完整版

8255控制打印机完整版

8255控制打印机完整版⼀、设计基本原理说明及系统资源分配1. ⼯作原理说明本次设计采⽤8255A⼯作⽅式0,其A⼝充当打印机数据线,C⼝的PC0接打印机选通信号线,C⼝的PC4接打印机“忙”线BUSY,B⼝不⽤,8255A的初始化可以通过74LS138译码器来实现。

为了⽤键盘来设定打印内容,可以先定义⼀个数据段,然后调⽤DOS的1号功能完成数据存储。

在满⾜⼀定的条件下,CPU现将打印内容依次送到8255A,然后再送到打印机打印,数据全部传送并打印完毕后退出程序。

2. 资源分配⑴A端⼝作为传输字符的通道,⼯作于⽅式0,输出⽅式。

⑵B端⼝不⽤。

⑶C⼝的PC0接打印机选通信号线,PC4接打印机“忙”线BUSY。

⑷设CPU为8086,8255A的端⼝地址为:A端⼝: 00D0H C端⼝: 00D4HB端⼝: 00D2H 控制⼝:00D6H⼆、程序流程图三、设计⽅案采⽤查询⽅式传输数据实现对打印机控制:(⾃定义打印字符串)参考程序:PRT_DATA EQU 5FFFHPRT_STRO EQUPRT_BUSY EQUORG 0000HLJMP STARTORG 0040H START: MOV SP,#60HSETB PRT_STROSETB PRT_BUSYMOV DPTR,#PRT_TABMOV R0, #00HPR_STR: MOV A, R0MOVC A,@A+DPTR CJNE A,#0FFH,PRINTSJMP $PRINT:LCALL PRT_CHARINC R0AJMP PR_STRPRT_CHAR:PUSH PSWPUSH DPHPUSH DPLSETB PRT_BUSYNOPJB PRT_BUSY,$MOV DPTR,#PRT_DATAMOVX @DPTR,ASETB PRT_STROCLR PRT_STRONOPNOPSETB PRT_STROPOP DPLPOP DPHPOP PSWRETPRT_TA DB 0AH,27,1BH,38H,1,0AH,0AH, 0DH,0FFHPRT_TAB DB 0DH,31H,32H,33H,34H,35H,36H,37H,38H,39H,0AH,0FFH END四、硬件电路总体设计硬件电路总体设计见附录A五、软件程序设计1. 软件设计思路应⽤系统中的应⽤软件是根据系统功能要求设计的,应该可靠地实现系统的各种功能。

8255设置

8255设置

8255的方式设置(一)8255A的端口A可以在方式0、方式1、方式2这三种方式下工作,而端口B只能在方式0和方式1这两种方式下工作。

此外,我们也说明了端口的工作方式是由方式选择控制字决定的。

下面,介绍三种工作方式的具体含义。

(1)方式0的工作特点:方式0也叫基本输入/输出方式。

在这种方式下,端口A和端口B可以通过方式选择字规定为输入口或者输出口,端口C分为2个4位端口,高4位为一个端口,低4位为一个端口;这两个4位端口也可由方式选择字规定为输入口或输出口。

概括地说,方式O的基本特点如下:①任何一个端口可作为输入口,也可作为输出口,各端口之间没有规定必然的关系。

②各个端口的输入或输出,可以有16种不同的组合,所以可以适用于多种使用场合。

(2)方式0的使用场合有两种:一种是同步传送,另一种是查询式传送。

在同步传送时,发送方和接收方的动作由一个时序信号来管理,所以,双方互相知道对方的动作,不需要应答信号,也就是说,CPU不需要查询外设的状态。

这种情况下,对接口的要求很简单,只要能传送数据就行了。

因此,在同步传输下使用8255A时,3个数据端口可以实现三路数据传输。

查询式传输时,需要有应答信号。

但是,在方式0情况下,没有规定固定的应答信号,所以,这时,将端口A和端口B作为数据端口,把端口C的4个数位(高4位或者低4位均可)规定为输出口,用来输出一些控制信号,而把端口C的另外4个数位规定为输入口,用来读入外设的状态。

就是这样,利用端口C来配合端口A和端口B的输入/输出操作。

(1)方式1的工作特点:方式1也叫选通的输入/输出方式。

和方式O相比,最重要的差别是A端口和B端口用方式1进行输入/输出传输时,要利用端口C提供的选通信号和应答信号,而这些信号与端口C中的数位之间有着固定的对应关系,这种关系不是程序可以改变的,除非改变工作方式。

概括地讲,方式1有如下特点:①端口A和端口B可分别作为两个数据口工作在方式1,并且,任何一个端口可作为输入口或者输出口。

给出8255A的方式控制字

给出8255A的方式控制字
(4)当指令队列已满,而且执行部件对总线接口部件又 没有总线访问请求时,总线接口部件便进入空闲状态
桂小林13
作业解答-2/3
8、为什么要地址复用?如何分离?
– 引脚数限制 – 用锁存器(如74LS373)分离 11、8086被复位以后,各个寄存器的状态是什么?从 何处开始读取第1条指令? 8086从FFFF0H处执行第一条指令。 16、8086中BHE#作用与存储器奇偶地址访问问题
《微机接口技术》 复习纲要
西安交通大学 计算机科学与技术系
微机课程组 2012年11月10日
1

CH1:微型计算机概论(~5)
需要标记的基本概念
– 微处理器、微型计算机、微型计算机系统 – 单片机(微控制器) – 微型计算机结构、主机板结构 – IBM PC、IBM PC/XT、IBM PC/AT – 三总线(AB、DB、CB)
– 包括地址空间分配、地址计算、空间大小计算、片选实现等
– 模板化设计、芯片数计算
– 位、字、位字扩展
熟练掌握译码电路对应地址空间的分析方法
– 从电路图判断存储器地址范围、空间大小
– 根据存储器地址范围设计电路图(不是唯一的)
桂小林22
例:2764为8K8的EPROM芯片,分析其地址范围
FA000~FBFFFH
– BHE#有效访问奇地址单元 – 按字访问时,奇偶地址的访问,时间单元不同
桂小林14
作业解答-3/3
19、分步骤写出80386实现48位虚拟地址到线形 地址的转换过程。
– 见书本
20、分步骤写出80386实现32线形地址到32位 物理地址的转换过程。(注:使用4K页面)
– 见书本
21、80386中,CR0~CR3寄存器的作用各是什 么?

8255课件,附数码管和矩阵键盘实例定稿.ppt

8255课件,附数码管和矩阵键盘实例定稿.ppt

P157
.精品课件.
7
设某片8255A的端口地址是60H~63H,工作于方式0,端口A和端口C高4位输出,端口B 和端口C低4位输入,设置该8255A的方式选择控制字。
1 D6 D5 D4 D3 D2 D1 D 0
方式控制字标志位
0:端口C PC3~PC0输出 1:端口C PC3~PC0输入
0 0:端口A方式0 0 1:端口A方式1 1 X:端口A方式2
A端口:60H B端口:62H C端口:64H 控制口:66H
.精品课件.
12
• 8255的初始化及检测有无按键按下:
PORTA EQU 60H
PORTB EQU 62H
PORTC EQU 64H
PORTCN EQU 66H
MOV DX,PORTCN ;置8255A端口A、B工作在方式 0
MOV AL,10000010B ;端口A为输出口,端口B为输入口
OUT DX,AL
WAITK:MOV DX,PORTA
;等待键闭合
MOV AL,00
;行码送全“0”
OUT DX,AL
MOV DX,PORTB
;读列码
IN AL,DX
CMP AL,0FFH
JZ WAITK
;无键按下,继续等待
.精品课件.
13
• 行扫描法识别按键
MOV BL,0
MOV BH,11111110B
;步骤b
xlat
out a_port,al
mov al,ah
;步骤c
out b_port,al
call delay5ms
;步骤d,延时5ms
shl ah,1
;步骤e
inc si

8255扫描键盘、显示实验

8255扫描键盘、显示实验

实验九8255扫描键盘、显示实验一. 实验要求利用8255可编程并行口做一个扫描键盘实验,的七段数码管上。

8255PA 口做键盘输入线,二. 实验目的 1•掌握8255编程方法。

2•掌握扫描键盘和显示的编程方法。

三. 实验电路及连线CS8255接8500H ,则命令字地址为 8506H,PA 口地址为 8500H , PB 口地址为8502H , PC 口地址为8504H 。

CS8279接8700H ,贝U 8279的状态口地址为 8701H; 8279的数据口地址为 8700H; 模块中的十个短路套都套在8255侧。

四.实验说明在PA 口与PB 口组成的64点阵列上,把按键接在不同的点上,将得到不同的键码,本 实验采用8疋的阵列,共可按16个键。

显示部分由 8279控制,由7407驱动8位数码 管显示。

五•实验程序框图那岀DO mDJ E IM 惦 肋的JUJA1砰C327 • •: 154 V12 ■ 6 P ------------------ VCC把按键输入的键码, PB 口作扫描线。

显示在由8279控制六.实验程序:D8255 EQU 8506H ;8255 状态 / 数据口地址 D8255A EQU 8500H ;8255 PA 口地址D8255B EQU 8502H ;8255 PB 口地址Z8279 EQU 8701H ;8279 状态口地址D8279 EQU 8700H ;8279 数据口地址DISPTR EQU 08H 当前显示位置KEYVAL EQU 09H 读到的键码ORG 0000HLJMP STARTORG 0040HSTART:MOV SP,#60HLCALL DELAY 延时MOV DISPTR,#30H 显示缓冲区头指针MOV DPTR,#D8255MOV A,#90H ;置 8255 状态;方式0,PB,PC 口输出,PA 口输入MOVX @DPTR,AMOV DPTR,#Z8279 置 8279 命令字MOV A,#0D3HMOVX @DPTR,A 清 LED 显示MOV A,#00HMOVX @DPTR,A主程序框图 分框图读键显示部MOV A,#38HMOVX @DPTR,AMOV A,#0D1HKB_DIS:LCALL RD_KB 读键盘MOV A,#0FFHCJNE A,KEYVAL,DISBUF 判J读至U键SJMP KB_DIS ;没有则继续读键DISBUF: LCALL DISP ;把键移入显存LCALL DELAY延时消抖LCALL DELAYSJMP KB_DISDISP:;显存依次前移MOV R1,#31H ;在最后加入新键值MOVE:MOV A,@R1DEC R1MOV @R1,AINC R1INC R1CJNE R1,#38H,MOVEMOV 37H,KEYVALMOV KEYVAL,#0FFHMOV DPTR,#Z8279MOV A,#90HMOVX @DPTR,AMOV R0,#08HMOV R1,#30HMOV DPTR,#D8279LP: MOV A,@R1MOVX @DPTR,AINC R1DJNZ R0,LPRETRD_KB:;键盘扫描MOV A,#02H ;扫描第一行MOV DPTR,#D8255BMOVX @DPTR,AMOV DPTR,#D8255AMOVX A,@DPTRMOV R1,#00HCJNE A,#0FFH,KEYCAL判键是否按下MOV A,#01H ;扫描第二行MOV DPTR,#D8255BMOVX @DPTR,AMOV DPTR,#D8255AMOVX A,@DPTRMOV R1,#08HCJNE A,#0FFH,KEYCALSJMP NOKE 丫无键按下KEYCAL:;计算键码MOV R0,#08HSHIFT:RRC AJNC CALCINC R1DJNZ R0,SHIFTCALC:;换算显示码MOV DPTR,#DL_DATMOV A,R1MOVC A,@A+DPTRMOV KEYVAL,ARETNOKEY: MOV KEYVAL,#0FFH返回无键标志RETDELAY: MOV R0,#0H延时子程序DELAY1: MOV R1,#0HDJNZ R1,$DJNZ R0,DELAY1RETDL_DAT: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H ;0,1,2,3,4,5,6,7DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H ;8,9,A,B,C,D,E,FEND实验十8279显示实验一•实验要求编制程序,利用8279及键盘显示接口电路,编程实现按键的读取,并将按键值显示在数码管上。

实验六 8255并行输入输出

实验六  8255并行输入输出

.东南大学《微机实验及课程设计》实验报告实验六 8255并行输入输出姓名:学号:专业:测控技术与仪器实验室: 516同组人员:评定成绩:..一、实验目的1)掌握8255方式0的工作原理及使用方法,利用直接输入输出进行控制显示;2)掌握8段数码管的动态刷新显示控制;二、 (1)实验内容(必做)6-1、8段数码管静态显示:编程从键盘输入一位十进制数字(0~9),在数码管上显示出来。

6-2、8段数码管动态显示:在两个数码管上同时显示不同的两位数字或字母,保持不变直至退出。

(如56或7f)(2)实验内容(必做一题,选做一题)6-3 静态显示:用逻辑电平开关预置某个数字(0~9)的ASCII码,将该数据用8255的C口读入,并用A口输出,并在数码管显示出来;如果预置的ASCII 码不是数字(0~9),数码管显示E字母。

6-4 动态显示:在两个数码管上滚动循环显示不同的0~f字符。

(即开始时两个数码管显示01,12,23,34 ··f0,一直循环直至退出)三、实验原理(1)实验预备知识数码管的符号和引脚LED 图八段式..(2) 6-1流程图:开设825控制字端口输出从键盘输入字N0~是否Y将对应段码输出8255端结6-1源代码:data segmentioport equ 0ec00h-0280hio8255a equ ioport+288h ;8255A口地址io8255b equ ioport+28bh ;8255控制寄存器端口地址led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码mesg1 db 0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$';提示data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8255b ;使8255的A口为输出方式mov ax,80hout dx,alsss: mov dx,offset mesg1 ;显示提示信息mov ah,09hint 21h..mov ah,01 ;从键盘接收字符int 21hcmp al,'0' ;是否小于0jl exit ;若是则退出cmp al,'9' ;是否大于9jg exit ;若是则退出sub al,30h ;将所得字符的ASCII码减30Hmov bx,offset led ;bx为数码表的起始地址xlat ;求出相应的段码mov dx,io8255a ;从8255的A口输出out dx,aljmp sss ;转SSSexit: mov ah,4ch ;返回DOSint 21hcode endsend start(3)6-2接线图:6-2源代码:data segmentequ 0ec00h-0280h ioportequ ioport+288h io8255aequ ioport+28ah io8255cequ ioport+28bhio8255kled db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码存放要显示的个位和十位buffer1 db 5,6 ; bz dw ? ;位码data endsstacks segment stackdb 100 dup(?)..stacks endscode segmentassume cs:code,ds:data,ss:stacksstart: mov ax,datamov ds,axmov ax,stacksmov ss,axmov dx,io8255k ;将8255设为A口输出mov al,80hout dx,almov di,offset buffer1 ;设di为显示缓冲区loop2: mov bh,02送全灭断码 lll: mov al,0 ;自8255A口输出mov dx,io8255a ;out dx,almov byte ptr bz,bhpush didec diadd di, bz为要显示的数 mov bl,[di] ;bl pop di mov bh,0置led mov si,offset led ;数码表偏移地址为SI求出对应的led数码 add si,bx ;mov al,byte ptr [si]自8255A mov dx,io8255a ;的口输出out dx,al使相应的数码管亮 mov al,byte ptr bz ;mov dx,io8255aout dx,almov cx,3000延时delay: loop delay ;mov bh,byte ptr bzshr bh,1jnz lllmov dx,0ffhmov ah,06int 21h有键按下则退出 je loop2 ;mov dx,io8255a关掉数码管显示 mov al,0 ; out dx,al 返回mov ah,4ch ; int 21h..code endsend start(4)6-3流程图:开设825控制字口输入口输口输入一数YN是否属0~对应段码输将对应段码输N是否有键输入Y结6-3源代码:data segmentioport equ 0ec00h-0280h ;tpc卡中设备的io地址io8255a equ ioport+288h ;8255A口地址io8255k equ ioport+28bh ;8255控制寄存器端口地址io8255c equ ioport+28ah ;8255C口地址led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh data endsstacks segment stackdb 100 dup (?)stacks ends..code segmentassume cs:code,ss:stacks,ds:datamain proc farstart: mov ax,stacksmov ss,axmov ax,datamov ds,axmov dx,io8255k ;设8255为C口输入,A口输出 mov al,8bh ;1000 1011out dx,alinout: mov dx,io8255c ;从C口输入一数据call delayin al,dxcmp al,'0' ;是否小于0jl exit1 ;若是则显示Ecmp al,'9' ;是否大于9jg exit1 ;若是则显示Emov bx,offset led ;bx为数码表的起始地址 sub al,30hxlat ;求出相应的段码mov dx,io8255a ;从8255的A口输出out dx,almov ah,06 ;是否有键输入mov dl,0ffhint 21h ;是则退出jne exitjmp inout ;转inoutexit1: mov al,79hmov dx,io8255aout dx,almov ah,06 ;是否有键输入mov dl,0ffhint 21h ;是则退出jne exitjmp inout ;转inoutexit: mov ah,4ch ;返回DOSint 21hmain endpdelay proc near ;延时子程序mov bx,2000ZZZ: mov cx,0ZZ: loop ZZdec bx..jne ZZZretdelay endpcode endsend start6-3接线图:实验中遇到的问题及解决方案四、芯片8255在实验初始,发现七段数码管的a不亮,排除故障发现是由于(1)不能输出高电平;的PA0只有在每次运后来发现,在各个实验中,连线后发现数码管都没有反应,(2)行前运行一下演示实验,再运行自己的程序才出正确结果;即若开关初始时,数码管显示的数字是开关预置的数字,在实验6-3中,)(3Ⅱ码;,但是实验要求为预置的为ASC0000,0001,则数码管显示1置为达到实验要求则就是数值,发现若直接用从检查代码,C口输入的数据,的操作;C口输入的数据进行减30h还需对从操作指令前未加延时程序)在这次的课时in 上次实验总未完成部分(在(4)则屏幕一直显示提示信息;1,上实现,上次的实验结果是,若开关预置全,则开始会显示提示信息,片刻后不再提示,说明若不1若开关预置非全开关预置的数据会输入,,0ffh但片刻后,用加延时,in指令输入的会是没有用到的延时程序是借用之前实验中的,遗憾部分是,程序不再提示; CX改变数据以观察需加延时的最短时间; 5().。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一、设计基本原理说明及系统资源分配
1. 工作原理说明
本次设计采用8255A工作方式0,其A口充当打印机数据线,C口的PC0接打印机选通信号线,C口的PC4接打印机“忙”线BUSY,B口不用,8255A的初始化可以通过74LS138译码器来实现。

为了用键盘来设定打印容,可以先定义一个数据段,然后调用DOS的1号功能完成数据存储。

在满足一定的条件下,CPU现将打印容依次送到8255A,然后再送到打印机打印,数据全部传送并打印完毕后退出程序。

2. 资源分配
⑴A端口作为传输字符的通道,工作于方式0,输出方式。

⑵B端口不用。

⑶C口的PC0接打印机选通信号线,PC4接打印机“忙”线BUSY。

⑷设CPU为8086,8255A的端口地址为:
A端口: 00D0H C端口: 00D4H
B端口: 00D2H 控制口:00D6H
二、程序流程图
三、设计方案
采用查询方式传输数据实现对打印机控制:(自定义打印字符串)参考程序:
PRT_DATA EQU 5FFFH
PRT_STRO EQU P1.5
PRT_BUSY EQU P1.7
ORG 0000H
LJMP START
ORG 0040H
START: MOV SP,#60H
SETB PRT_STRO
SETB PRT_BUSY
MOV DPTR,#PRT_TAB
MOV R0, #00H
PR_STR: MOV A, R0
MOVC A,A+DPTR
CJNE A,#0FFH,PRINT
SJMP $
PRINT:
LCALL PRT_CHAR
INC R0
AJMP PR_STR
PRT_CHAR:
PUSH PSW
PUSH DPH
PUSH DPL
SETB PRT_BUSY
NOP
JB PRT_BUSY,$
MOV DPTR,#PRT_DATA
MOVX DPTR,A
SETB PRT_STRO
CLR PRT_STRO
NOP
NOP
SETB PRT_STRO
POP DPL
POP DPH
POP PSW
RET
PRT_TA DB 0AH,27,1BH,38H,1,0AH,0AH, 0DH,0FFH
PRT_TAB DB 0DH,31H,32H,33H,34H,35H,36H,37H,38H,39H,0AH,0FFH END
四、硬件电路总体设计
硬件电路总体设计见附录A
五、软件程序设计
1. 软件设计思路
应用系统中的应用软件是根据系统功能要求设计的,应该可靠地
实现系统的各种功能。

一个优秀的应用系统的软件应具有下列特点:(1)根据软件功能要求,将系统软件分成若干个相对独立的部分。

设计出软件的总体结构,使其结构清晰、简捷、流程合理。

(2)要树立结构化程序设计风格,各功能程序实现模块化、子程序化。

既便于调试、,又便于移植、修正。

(3)建立正确的数学模型。

即根据功能要求,描绘出各个输入和输出变量之间的数学关系,它是关系到系统性能好坏的重要因素。

(4)为提高软件设计的总体效率,以简明、直观的方法对任务进行描述,在编写应用软件之前,应绘制出程序流程图。

(5)要合理分配系统资源,包括ROM、RAM、定时器/计数器、中断资源等。

(6)注意在程序的有关位置处写上功能注释,提高程序的可读性。

2. 软件设计流程图
打印机程序控制流程图如图3所示
图3 软件设计流程图3. 软件设计源程序
软件设计源程序见附录B
参考文献
[1] 朝青. 单片机原理及接口技术. :航空航天大学,2006
[2] 华光,大钦. 电子技术基础(模拟部分). :高等教育,1999
[3] 康华光,邹寿彬. 电子技术基础(数字部分). :高等教育,2000
[4] 何立民. 单片机应用技术选编. :航空航天大学,2000
[5] 何立民.单片机应用系统设计系统配置与接口技术. :航空航天大学,1990
[6] 广弟. 单片机基础. :航空航天大学,1994
[7] 伟,杰. 单片机原理及应用. :机械工业,2005
[8] 汉才. 单片机原理与接口技术. :清华大学,1996
附录A:硬件原理图
附录B:8255控制微型打印机的软件源程序CODE_K1 EQU 01H
CODE_K2 EQU 02H CODE_K3 EQU 03H CODE_K4 EQU 04H IRCOM EQU 30H
COM EQU 32H
IRIN EQU P3.2
WLED EQU P1.2
ORG 0000H
JMP BEGIN
ORG 0030H
BEGIN: ACALL BZ SETB IRIN
ACALL LED_BL
LOOP : MOV R0,#IRCOM; ACALL IR_IN
ACALL OP
JMP LOOP
DELAY: MOV R6,#50
D1: MOV R7,#100
DJNZ R7,$
DJNZ R6,D1
DJNZ R5,DELAY
RET
LED_BL: MOV R4,#4
LE1: CPL WLED
MOV R5,#10
ACALL DELAY
DJNZ R4,LE1
RET
BZ: MOV R6,#0
B1: ACALL DE
DJNZ R6,B1
MOV R5,#5
ACALL DELAY
RET
DE: MOV R7,#180
DE1: NOP
DJNZ R7,DE1
RET
DEL: MOV R5,#1;0.1 MS 延时
DELAY1: MOV R6,#1
E1: MOV R7,#17
E2: DJNZ R7,E2;(17*2*2+2*2+1*2+2*2)*2 DJNZ R6,E1
DJNZ R5,DELAY1;( RET
OP: MOV A,COM CJNE A,#CODE_K1,A1 ACALL MAIN
RET
A1: MOV A,COM CJNE A,#CODE_K2,A2 ACALL MAIN
ACALL MAIN
RET
A2: MOV A,COM CJNE A,#CODE_K3,A3 ACALL MAIN
ACALL MAIN
ACALL MAIN
RET
A3: MOV A,COM CJNE A,#CODE_K4,A4 ACALL MAIN
ACALL MAIN
ACALL MAIN
RET
A4: RET
IR_IN:
I1: JNB IRIN,I2 JMP I1
I2: MOV R4,#6 I20: ACALL DEL DJNZ R4,I20
JB IRIN,I1 CLR WLED
I21: JB IRIN,I3 ACALL DEL
JMP I21
I3: MOV R3,#0 LL: JNB IRIN,I4 ACALL DEL
JMP LL
I4: JB IRIN,I5 ACALL DEL
JMP I4
I5: MOV R2,#0
JB IRIN,N1
MOV A,#08
CLR C
SUBB A,R2
MOV A,R0
RRC A
MOV R0,A
INC R3
CJNE R3,#8,LL
MOV R3,#0
INC R0
CJNE R0,#34H,LL
JMP OK
N1: INC R2
CJNE R2,#30,L1
OK: SETB WLED
RET
MAIN: CLR P1.3
MOV DPTR,#0ff7fh;
MOV A,#83H;
MOVX DPTR,A
MOV R6 ,#0EH;
MOV R0,#0BH; AA:
MOV A,R6
MOVC A,A+PC;
LCALL AEE
INC R6
DJNZ R0,AA;
LCALL HWH
LCALL CR; CC: RET
TAB: DB 2AH,54H,45H,43H,48H,53H,48H,49H,4EH,45H,2AH AEE: JB P1.0,AEE
MOV DPTR, #0ff7cH
MOVX DPTR,A
CLR P1.1
LCALL YS
SETB P1.1
RET
HWH: MOV A,#0AH
LCALL AEE
RET
YS: MOV R7,#1eH
MOV R5,#00H
MY1: DJNZ R5,MY1 DJNZ R7,MY1 RET
CR: MOV A,#0DH LCALL AEE RET
DELL: MOV R5,#00H DELAYY: MOV R6,#00 E11: MOV R7,#01H
E22: DJNZ R7,E22 DJNZ R6,E11
DJNZ R5,DELAYY RET
END
END。

相关文档
最新文档