当前位置:文档之家› 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(偶地址)。

相关程序如下:MOV AL,00110101BOUT 86H,ALMOV AL,00OUT 80H,ALMOV AL,10HOUT 80H,ALMOV AL,01110110BOUT 86H,ALMOV AL,0E8HOUT 82H,ALMOV AL,03HOUT 82H,AL........计件系统。

计件系统的功能就是记录脉冲的个数。

一个脉冲代表一个事件,如交通道路检测系统中通过检测点的车辆,工业控制系统中流水线上的加工好的工件。

要求在计件过程中,PC可以显示当前计数器的内容,当完成10000个工件记录后,系统发出1kHz信号推动喇叭发音,通知用户。

设8253地址为300H~306H,程序如下:MOV DX,306HMOV AL,01110111BOUT DX,ALMOV DX,302HMOV AL,00OUT DX,ALMOV AL,10HOUT DX,ALMOV DX,306HMOV AL,00110000BOUT DX,ALMOV DX,300HMOV AL,10HOUT DX,ALMOV AL,27HOUT DX,ALGETDA T:CALL DELAYMOV DX,306HMOV AL.00110000BOUT DX,ALMOV DX,300HIN AL,DXMOV CL,ALIN AL,DXMOV CH,ALCALL DISPLAYCMP CX,0JNZ GETDA T.......关于显示程序DISPLAY,入口参数是CX,他有两个功能:一个是把CX 中的二进制转化为十进制及ASSC11码,另一个功能就是把ASSC11码通过系统调用显示出来。

延时程序DEPAY的作用是使cpu对CRT操作不要太频繁。

与打印机接口在某一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的通道地址为MOV AL,00110101BOUT 86H,ALMOV AL,00OUT 80H,ALMOV AL,10HOUT 80H,ALMOV AL,01110110BOUT 86H,ALMOV AL,0E8HOUT 82H,ALMOV AL,03HOUT 82H,AL........计件系统。

计件系统的功能就是记录脉冲的个数。

一个脉冲代表一个事件,如交通道路检测系统中通过检测点的车辆,工业控制系统中流水线上的加工好的工件。

要求在计件过程中,PC可以显示当前计数器的内容,当完成10000个工件记录后,系统发出1kHz信号推动喇叭发音,通知用户。

设8253地址为300H~306H,程序如下:MOV DX,306HMOV AL,01110111BOUT DX,ALMOV DX,302HMOV AL,00OUT DX,ALMOV AL,10HOUT DX,ALMOV DX,306HMOV AL,00110000BOUT DX,ALMOV DX,300HMOV AL,10HOUT DX,ALMOV AL,27HOUT DX,ALGETDA T:CALL DELAYMOV DX,306HMOV AL.00110000BOUT DX,ALMOV DX,300HIN AL,DXMOV CL,ALIN AL,DXMOV CH,ALCALL DISPLAYCMP CX,0JNZ GETDA T.......关于显示程序DISPLAY,入口参数是CX,他有两个功能:一个是把CX 中的二进制转化为十进制及ASSC11码,另一个功能就是把ASSC11码通过系统调用显示出来。

延时程序DEPAY的作用是使cpu对CRT操作不要太频繁。

与打印机接口在某一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的通道地址为MOV AL,00110101BOUT 86H,ALMOV AL,00OUT 80H,ALMOV AL,10HOUT 80H,ALMOV AL,01110110BOUT 86H,ALMOV AL,0E8HOUT 82H,ALMOV AL,03HOUT 82H,AL........计件系统。

计件系统的功能就是记录脉冲的个数。

一个脉冲代表一个事件,如交通道路检测系统中通过检测点的车辆,工业控制系统中流水线上的加工好的工件。

要求在计件过程中,PC可以显示当前计数器的内容,当完成10000个工件记录后,系统发出1kHz信号推动喇叭发音,通知用户。

设8253地址为300H~306H,程序如下:MOV DX,306HMOV AL,01110111BOUT DX,ALMOV DX,302HMOV AL,00OUT DX,ALMOV AL,10HOUT DX,ALMOV DX,306HMOV AL,00110000BOUT DX,ALMOV DX,300HMOV AL,10HOUT DX,ALMOV AL,27HOUT DX,ALGETDA T:CALL DELAYMOV DX,306HMOV AL.00110000BOUT DX,ALMOV DX,300HIN AL,DXMOV CL,ALIN AL,DXMOV CH,ALCALL DISPLAYCMP CX,0JNZ GETDA T.......关于显示程序DISPLAY,入口参数是CX,他有两个功能:一个是把CX 中的二进制转化为十进制及ASSC11码,另一个功能就是把ASSC11码通过系统调用显示出来。

相关主题