打印机工作时的程序如下:
3.2 基本系统
由于微型打印机的打印缓冲区一次可快速装入240个代码,如全部为汉字,则要占用RAM为240×32=7 650个字节,显然89C52内的256 B[3]RAM明显不够,所以要外挂1片数据存贮器(这里用的是6116)才能满足要求。基于这些,他的基本系统由89C52芯片,27C040(27C040并不是作为程序存贮器使用,而是用来存放字库、字符),数据存贮器(6116)构成,如图4所示。
由于27C040只有1片,所以其片选线与地址锁存器(74LS373)的片选线均直接接地。同时外接的27C040的地址线A0~A7由P0口通过地址锁存器提供,A8~A15由P2口提供,A16~A18由P1.5~P1.7提供。而数据存贮器(6116)片选端CE是由89C52的P2.7控制的,当P2.7=0时则选中6116,此时89C52的P2.0~P2.2输出6116所需的高位地址,P0口输出6116的低8位地址锁存在锁存器74LS373中。若是读6116,则P0口变为输入方式,在RD为低电平时,选通6116,此时6116中相应的数据出现在P0口,再由CPU读入累加器A中。若是写,则P0口为输出,当为低电平时,将累加器A中出现在P0口上的数据写入6116。
3.3 89C52对打印机联络信号的控制
3.3.1 打印机的联络信号
打印机的联络信号有,BUSY。
:数据选通触发脉冲,输入。此信号上升沿时数据线上8位数据被打印机读入机内锁存。
:回答脉冲,输出。当其为“低”电平时表示数据已被接收而且打印机准备好接收下一个数据。
BUSY:“忙”信号,为状态输出线,当打印机在打印字符、执行命令期间BUSY=1,表示打印机处于“忙”状态,这时打印机通知主机,他处于“忙”之中而不能接收数据,此时主机不能使用信号向打印机送入新的数据字节。当打印机打完一个字符后,BUSY=0,同时他产生信号通知主机,准备接收下一个数据,当主机接收到BUSY=0时,主机向打印接口输出1 B到D0~D7,并发出低电平信号,当打印机收到STB低电平信号后,单片机在其上升沿时读入数据。其时序图[4]如图5所示。