打印机与单片机接口设计
六、打印机与单片机接口设计
【硬件说明】本系统选用LASER PP40微型打 印机,P3.2输入PP40工作状态信号,采用查 询工作方式(BUSY) P3.4输出PP40的选通 信号。 【打印方式】本系统有三种打印方式,即定 时打印、手动打印和故障备忘打印。 【打印功能】可打印出时间值和当时各测点 温(湿)度、设定的控制曲线及其参数,以 及故障原因等。
12 23
D/A转换器选用8位电流型输出的DAC0832芯片,且它采用单 缓冲方式工作,8155的输出口PA接0832的数据输入端DI0~ DI7,输出口PB接0832两输入寄存器的控制端和CD4051多路
开关的通道选择端 。
12
24
• DAC0832 程序设计
[程序功能]
通过8155接口,启动D/A,将60H~67H单元中的数据
12
15
编码设计2——变化打印编码
[CR] DC2,C2 [CR];图案模式,绿色打印头 M5,-13[CR] ; 移至(5,-13)点
P--X----X----X [CR] ;打印×××
M5,-18[CR] ; 移至(5,-18)点 P--X----X----X [CR] ;打印××× M0,-20 [CR]
12 3
【 PP40文本/图案编码设计】
在字符及图案绘制程序设计之前,要对绘制的字符或
图案进行编码设计。
首先将要绘制的字符、表格及图案变成一系列由命令 码、控制码及文字字符组成的字符串; 然后再将它们“翻译”成相应的以十六进制表示的数 据串,作为提供给PP40微型图机使用的数据表。
由于PP40微型描绘器具有向后回纸的功能,给文本设
12
27
2、开关量输出控制的开关电磁阀
此时不需D/A转换器,开关控制量直接从8031的P1口多
路输出,每路都需经74LS06反相驱动,TILl17光电隔离,
再由MC1416达林顿复合管反相驱动(每片内部有7路达林 顿复合管,每路均有二极管保护电路)JZX-17F型中功率 微型继电器的线圈,最后,小继电器触点再控制电磁阀 工作。
转换,分8路输出。 [程序说明]
R1——数据指针,初值为60H; R2——通道编码暂存器(加1计数器),初值为E0H;
R3——通道循环(减1)计数器,初值为08H;
60H~67H——待转换的数据缓冲区。
12
25
[程序清单] MOV DPTR, MOV A, MOVX @DPTR, MOV R1, MOV R2, MOV R3, NEXT: MOV DPTR, MOV A, MOVX @DPTR, MOV DPTR, MOV A, MOVX @DPTR, INC R1 INC R2 DJNZ R3 ……………
12 18
驱动子程序2——打印外部RAM中的数据 DPTR, #TABL R7, #NNH A, @DPTR ;取编码 P1, A ;数据送P1口 P3.0 ;选通信号 P3.0 P3.3,WAIT ;查询 DPTR ;等待BUSY R7, LOOP
PRTRAM:MOV MOV LOOP: MOVX MOV CLR NOP SETB WAIT: JB INC DJNZ RET
12
12
[分析]
红色表格和蓝色字符为固定值,其编码数据放在程序 存储器,而且,数据较多采用设标志结束打印;
紫色数据变化值,其编码数据放在数据存储器,数据较
少采用计数结束打印。
12
13
编码设计1——固定打印编码
[CR] DC2,C3 [CR];图案模式,红色打印头 HM0,-5[CR] ;笔架抬起先回起点再移至(0,-5)点。 L0,J20,0,0,-15,-20,0,0,15 [CR];绘四框 R0,-5 [CR] ;相对移动至(0,-10)点
12
1
【PP40接口信号时序】
接口信号时序如图所示。在单片机应
用系统中实际使用时,一般不使用 ACK信号。 芯位 信 号 功 能 说 明 1 STROBE 选通输入信号线 2~9 DATA1~DATA8 8位并行数据总线 10 ACK 应答信号表示描绘器准备接收下一批
数据
11 BUSY
描绘器“忙”状态信号,该信号 高电平表示描绘器不能接收新数据送入
;指针加1 ;结束标志判断 ;关中断 ;返回主程序 ;恢复现场
12
11
编码程序
TABL:DB 0DH,12H,0DH; [CR] DC2 [CR]
DB …………………… 00
[例3] 设计表格打印程序
说明:
(1)计数/标志方式,结束打印; (2)查询方式,交换数据; (3)编码数据,放在程序存储器/数据存储器。
12 5
打印结束控制有两种方法 ·计数控制(根据编码表长度赋计数初值,一般适合 编码较少的场合), ·设结束标志,即在编码表之后增设一个字节,一般 为00H。
单片机与PP40交换数据方式 根据实际情况配合硬件电路,选择: ·中断方式
·查询方式
12
6
2、打印子程序设计
【硬件说明】
PP40的DATA1~DATA8接在8031的P。00H;标志
编码数据表2
DB。。。。。。。H ;计数
编码数据表的赋值: 将A/D结果分别放入 DPTR1、DPTR2、DPTR3 单元中。
12
17
驱动子程序1——打印表格和固定数据 PRTROM:MOV R1,#REL ;查表偏移量/加1计数 NEXT:MOV A,R1 MOVC A, @A+PC ;查编码 MOV P1,A ;数据送P1口 CLR P3.4 ;选通信号 NOP SETB P3.4 WAIT:JB P3.3,WAIT ;查询BUSY,等待 INC R1 JNZ NEXT RET DB----00H ;标志控制
12
19
表格打印主程序
ORG 0000H
MAIN:MOV SP,#60H MOV R3, #06H MOV R0,30H NEXT: LCALL A/D MOV @R0, A INC R0 DJNZ R3, NEXT LCALL PRTROM MOV A, 30H MOV DPTR,#DPTR1 MOVX @DPTR , A MOV DPTR,#DPTR2 MOV A, 31H MOVX @DPTR , A MOV A, 32H MOV DPTR,#DPTR3 MOVX @DPTR , A ………………… LCALL PRTRAM
口,单片机可直接和8155相应端 连接而不需外加逻辑,Y4和P2.0
接8155的CE和IO/M,故8155的命 令状态口、PA、PB口和PC口地址 分别为9F00H~9F03H。
控制字:00000011B
8155初始化程序 MOV DPTR, #9F00H MOV A, #03H
MOVX @DPTR,A
PP40的选通(STB)接8031 的P3.4
PP40的忙信号接8031的INT1(P3.2)
8031和PP40的通讯可以采取: ·中断方式 ·查询方式
12
7
【程序设计】 [例1] 根据要求设计打印驱动程序 说明:计数方式,结束打印; 查询方式,交换数据; 编码数据,放在程序存储器。
编码设计 [CR] DC2 [CR]
12、15 GND 其余不接
12 2
【 PP40的打印模式】
PP40具有两种工作模式
文本模式 图案模式 上电后,初始状态为文本模式。
在文本模式状态下,如果主机将回车控制字符CR(0DH) 和绘图控制字符DC2(12H)写入PP40则PP40由文本模 式变为图案模式。
再将回车控制符CR(0DH)和文本模式控制字符 DC1(11H)写入PP40,则PP40又回到文本模式。
D20,-10 [CR] ;绘线至(20,-10)点(DX,Y) R0, -5 [CR] ;相对移动至(20,-15)点 D0, -15 [CR] ;绘线至(0,-15)点 M5, -5 [CR] ;移至(5,-5)点 D5, -20 [CR] ;绘线至(5,-20)点 M10,-20 [CR] ;移至(10,-20)点 D10,-5 [CR] ;绘线至(10,-5)点 M15,-5 [CR] ;移至(15,-5)点 D15,-20 [CR] ;绘线至(15,-20)点 12
闭合,而从机2采用电动调节阀来调节蒸
气流量。
12 21
1、从机2(控制麦芽烘干)连续调节系统
这种调节方式需把单片机中数字量经D/A转换器再
转换成模拟量。为降低成本,本系统只用一个D/A转 换器,用多路模拟开关加多个采样保持放大器实现多 路输出调节,具体电路见下图。
12
22
本系统通过8155扩展并行接
计及绘图设计带来极大的方便。
12
4
1、编程要点
在完成编码设计和硬件确定之后,进入程序设计,其
编程要点:
建立打印编码数据表 一般空表编码、固定字符编码表等设在程序存储器 中,数据填表编码表设在数据存储器中。 打印驱动子程序
根据硬件电路和打印机接口时序的要求,设计打印
机驱动子程序,将数据编码表中的编码输入打印机, 完成打印功能。
HM1,-1[CR] ;笔架抬起先回起点再移至A点。
L0,J0,-2,2,0,0,2 [CR] 从A B C D相对绘线
R-1,1 [CR] ;相对移动 D2,-3[CR] ;绘线E F
8
12 M0,-4[CR] ;笔架抬起,移至左下端
驱动程序 MOV R7,#NN ;编码表长度 MOV R1,#REL ;查表偏移量/加1计数 NEXT:MOV A,R1 MOVC A, @A+PC ;查编码 MOV P1,A ;数据送P1口 CLR P3.4 ;选通信号 NOP SETB P3.4 WAIT:JB P3.2,WAIT ;查询BUSY,等待 INC R1 DJNZ R7,NEXT ;计数控制 。。。。。。 编码程序