1、8,1,第八章 MCS-51单片机与打印机接口,在单片机应用系统中,一般采用微型打印机。目前国内应用最广泛的是TP-UP-16、GP16微型打印机与PP40描绘器和XLF嵌入式汉字微型打印机。本节计绍MCS-51与PP40彩色描绘器及其接口。,8,2,第八章 MCS-51单片机与打印机接口,在单片机应用系统中,一般采用微型打印机。目前国内应用最广泛的是TP-UP-16、GP16微型打印机与PP40描绘器和XLF嵌入式汉字微型打印机 本节计绍MCS-51与PP40彩色描绘器及其接口。,8,3,功能特点: 微型打印机是智能外设 与微机接口比较方便 拥有相关的指令系统和字型库 具有多种打印模式 可以
2、永久性保存数据 广泛应用,8,4,81 PP40描绘器及其接口LASER PP40是四色描绘式打印机。可用来描绘字符及其图形,具有较强的绘图功能。 可在多种智能仪表及实时控制系统中作为微型绘图机使用。 一、PP40接口信号要求及时序1、LASER PP40描绘器插头及接口信号,8,5,2、接口信号时序(P209) 接口信号时序如图所示。在单片机应用系统中实际使用时,一般不使用ACK信号。 芯位 信 号 功 能 说 明 1 STROBE 选通输入信号线 29 DATA1DATA8 8位并行数据总线 10 ACK 应答信号表示描绘器准备接收下一批数据 11 BUSY 描绘器“忙”状态信号,该信号高
3、电平表示描绘器不能接收新数据送入 12、15 GND 其余不接,8,6,二、命令及绘图方式1、PP40具有两种工作模式 文本模式 图案模式 上电后,初始状态为文本模式。 在文本模式状态下,如果主机将回车控制字符CR(0DH)和绘图控制字符DC2(12H)写入PP40则PP40由文本模式变为图案模式。 再将回车控制符CR(0DH)和文本模式控制字符 DC1(11H)写入PP40,则PP40又回到文本模式。,8,7,PP40在文本模式工作方式下,能描绘所有ASCII字符。 在图案模式下,能描绘出用户设计的各种彩色图案。 (1)文本模式的控制字符及ASCII编码PP40的文本模式用于描绘字符串时,可
4、描绘的字符编码如表7.8.3(p209)所示。 表中00H1F中有七个控制字符。定义如下:回位BS(08H):使笔回到前一个字符位置,若描图笔已处于最左边位置,该命令失效。进纸LF(0AH):将纸推进一行。退纸LU(0BH):将纸倒退一行。回车CR(0DH):描图笔返回到最左边位置上。文本模式控制DC1(11H):PP40进入文本模式工乍方式。图案模式控制DC2(12H):PP40进入图案模式工作方式。转色NC(1DH):笔架转动一个位置至另一颜色笔。当超过一行的字数后,PP40自动回车并进纸一行。,8,8,2、绘图操作命令(13条)PP40在图案模式工作时,可选择各种绘图操作命令,以便绘出各
5、种图形、表格、曲线。绘图命令格式及功能如下: 命 令 格 式 功 能 线形式 LP(由0至15) 所绘划线的形式。实线:P=0,点线P=由1至15, 而且具有指定格式重 置 A 笔架返回X轴最左方,而Y轴不变动。返回文字模式并以笔架停留作为起点回 档 H 笔嘴升起返回起点预 备 I 以笔架位置作为起点,8,9,命 令 格 式 功 能 绘 线 Dx,yX,Yn(-999x,y999) 由现时笔嘴位置到坐标点(x,y)连线 相对绘线 Jx, yXn,Yn(-999x, y999) 由现时笔嘴位置划一直线至笔嘴点x, y距离之点上 移 动 Mx,y(-999x,y999)笔嘴升起,移动至起点相距x,
6、 y之新点上 相对移动 Rx, y (-999x, y999) 笔嘴升起,移动至现时笔架相距x, y之新点上 颜色转换 Cn(n=由0至3) 颜色转换由n所指定0:黑,1:蓝,2:绿,3:红 字符尺码 Sn(n=由0至63) 指定字符尺码 字母绘制方向 Qn(n=由0至3) 指示文字编印方向(只在图案模式下适用) 编 印 PC,CCn(n无限制) 编印字符(C为字符) 轴 Xp,q,r(p=由0至1)(q=-999至999)(r=1至255)由现时笔架位置绘划轴线 Y轴:p=0 X轴:p=1 ,q=点距,r=重复次数,8,10,X,Y方向定义、字母描绘方向定义以及指令示例如图 所示。X命令实例
7、:当执行指令“X1,100,5”(将58H,31H,2CH,31H,30H,30H,2CH,35H,0DH写入PP40)以后,PP40描绘出的图形如图所示。( Xp,q,r) 1步距=0.2mm,8,11,3、命令分类与编排 PP40的绘图命令可分为5类: 不带参数的单字符命令,这类命令包括A,H和I命令。 只带一个参数的命令。这类命令包含L,C,S,Q四条命令。参数跟在命令符号后面。 带两个参数的命令。这类命令包括D,J,M,R四条命令,参数之间需以“,”作分隔,指令以回车(0DH)结束。 P指令。用以编绘字符,字符与字符间以“,”分隔,以回车结束。 X指令。用以绘制坐标及分度线,带有3个参
8、数。参数之间以“,”分隔,以回车结束。,8,12,绘图命令的编排有下列约定: 单字符命令后可直接跟其它指令(返回文本命令除外,它后面必须跟回车符0DH)例如:HJ300,-100CR等价于HCR和 J300,-100CR一个参数的命令,可以在参数后面加“,”后跟其它命令。 例如:L2,C3,Q3,S0,M-150,-200CR。二个以上参数的指令必须以回车CR(0DH)结束。不可省略。,8,13,8.2 文本模式及图案模式的编码设计在字符及图案绘制程序设计之前,要对绘制的字符或图案进行编码设计。 首先将要绘制的字符、表格及图案变成一系列由命令码、控制码及文字字符组成的字符串; 然后再将它们“翻
9、译”成相应的以十六进制表示的数据串,作为提供给PP40微型图机使用的数据表。 由于PP40微型绘图机具有向后回纸的功能,给文本设计及绘图设计带来极大的方便。,8,14,一、文本模式的编码设计PP40的文本模式只能绘制字符,因此,只能用于绘制表格及字符。下面介绍两个实例。1、字符绘制编码设计 首先列出所绘制字符的编排格式; 然后排出所设计的编码; 编码必须严格按照文本模式编码表及控制的功能要求进行。,8,15,2、应用举例 例1绘制下列字符:编排格式 SDU100*HAPPY (打印结果) 2002.10.15编码设计 DC2,S2,C3CR ;利用图案模式选择字符尺 寸、颜色转换等 (源程序)
10、 ; S2表示2号尺寸,C3选红色笔。 DC1CR ;文字模式按照此命令前图案模式设定的尺寸; 大小及颜色等,打印出这些ASCII字符。SDU100*HAPPYCR ;DC2,C2CR ;颜色转换 C2选绿色笔DC1CR-2002.10.15-CR,8,16,在编制文字绘制程序中将上述编码转换成下列数据,存放在数据存储器或程序存储器中(目标程序) 12H,2CH,53H,32H,2cH,43H,33H,0DH ;DC2,S2,C3CR 11H,0DH ;DC1CR 53H,44H,55H,2AH,31H,30H,30H,2AH ;SDU10O*48H,41H,50H,50H,59H,0DH ;
11、HAPPYCR;12H,2CH,43H,32H,0DH ; DC2,C2CR 11H,0DH ; DC1CR20H,32H,30H,30H,31H,27H,31H,30H, ; -2001.1027H,31H,35H,20H,0DH ;.15-CR 然后逐个送入PP40,即可绘制出上述格式的字符。,8,17,练习1绘制下列字符:2000OK! 要求:2号字、红色 编码设计 DC2,S2,C3CR ;利用图案模式选择字符尺 寸、颜色转换等, S2表示2号尺寸,C3选红色笔。 DC1CR ;文字模式按照此命令前图案 。2000OK!CR 编码转换 12H,2CH,53H,32H,2CH,43H,3
12、3H,0DH11H,0DH32H,30H,30H,30H,4FH,4BH,21H,0DH,8,18,练习2根据编码数据,分析结果12H,2CH,53H,32H,2CH,43H,33H,0DH11H,0DH41H,0DH41H,42H,0DH41H,42H,43H,0DH41H,42H,43H,44H,0DH41H,42H,43H,44H,45H,0DH,AABABCABCDABCDE,8,19,例2绘制下列表格 NAME PHYS ENGL COMP AVERAGE . . . 表中“”表示要填入的数据,如姓名、各科成绩以及平均成绩等,8,20,根据PP40绘制时,可以退纸,因此可以先绘出空表
13、(表格中的字符组成的格式),然后再填入数据。 空表字符的ASCII代码存入程序存储器中,用户不可更改。 需填入的数据由按键键入或由采集存入到数据存储器中。,8,21,根据上述表格可以分别编写出下列编码:空表编码CR DC1 CRNAME 一PHYS一ENGL一COMP一AVERAGECR数据填表编码一一一一.CR一一一一. CR根据空表编码,PP40执行完空表绘制后,笔头退回空表的第一行,以便填写数据。,8,22,二、图案模式的编码设计在图案模式工作下,PP40不仅可以绘出各种图形、曲线、坐标,也可以在其上绘出字符。图案模式有专门的命令表(见表78 4)可供编程使用。为了程序编制方便,对于要求
14、绘制的图形及字符,都应事先进行编码设计。,8,23,例3 绘制图示的“山”字图形 图案“山”的编码设计CR DC2 CRHM1,-1CR ;笔架抬起先回起点再移至A点。L0,J0,-2,2,0,0,2 CR从A B C D相对绘线R-1,1CR;相对移动D2,-3CR;绘线E FM0,-4CR ;笔架抬起,移至左下端,8,24,图案“山”编码汇编根据PP40的文字符号编码及绘图命令表,将上述符号编码变换成ASCII代码及其它符号的16进制代码。上述图案“山”的编码代码数据如下:0DH,12H,0DH;CR DC2 CR.,8,25,小结: PP40描绘器的功能特点 PP40描绘器的接口信号 P
15、P40描绘器的指令系统 PP40描绘器的指令分类 PP40描绘器的编码设计 PP40描绘器的编码数据,8,26,习题八 绘制热带鱼图案(自行设计),8,27,8.3 PP40与MCS-51单片机的接口PP40与MCS-51单片机的接口形式很多,通常可采取I/O口、扩展I/O或总线口的连接方法。 一、PP40与MCS-51单片机的接口电路下图是通过I/O和扩展I/O的连接方法。这种方法接口简单,但要占用I/O口线。,8,28,图中(a)是占用P1口作为数据通道。图中(b)是用8255PB口作为数据通道。一般来说,只需要再加上一对握手线即可。扩展I/O口也可以用应用系统中任何并行I/O口线,8,2
16、9,二、描绘程序设计1编程要点在完成编码设计和硬件确定之后,进入程序设计,其编程要点:建立打印编码数据表一般空表编码、固定字符编码表等设在程序存储器中,数据填表编码表设在数据存储器中。,8,30,打印驱动子程序根据硬件电路和打印机接口时序的要求,设计打印机驱动子程序,将数据编码表中的编码输入打印机,完成打印功能。打印结束控制有两种方法 其一,计数控制(根据编码表长度赋计数初值,一般适合编码较少的场合), 其二,设结束标志,即在编码表之后增设一个字节,一般为00H。单片机与PP40交换数据方式 根据实际情况配合硬件电路,选择中断方式或查询方式。,8,31,2打印子程序的设计以用图8-6接口电路为
17、例,给出两种子程序的设计(1)硬件说明PP40的DATA1DATA8接在8031的P1口PP40的选通(STB)接8031 的P3.0PP40的忙信号接8031的INT1 8031和PP40的通讯可以采取中断方式或查询方式。,8,32,(2)程序设计例4 根据例3要求设计打印驱动程序 说明:计数方式,结束打印;查询方式,交换数据;编码数据,放在程序存储器。 编码设计CR DC2 CRHM1,-1CR ;笔架抬起先回起点再移至A点。L0,J0,-2,2,0,0,2 CR从A B C D相对绘线 R-1,1 CR ;相对移动D2,-3CR ;绘线E FM0,-4CR ;笔架抬起,移至左下端,8,3
18、3,驱动程序MOV R7, #NN ;编码表长度MOV R1, #REL ;查表偏移量/加1计数 NEXT:MOV A, R1MOVC A, APC ;查编码MOV P1, A ;数据送P1口CLR P3.0 ;选通信号NOPSETB P3.0 WAIT:JB P3.3,WAIT ;查询BUSY,等待INC R1 DJNZ R7, NEXT ;计数控制。编码程序DB 0DH,12H,0DH;CR DC2 CR.,8,34,例5 根据例3要求设计打印驱动程序 说明:标志方式,结束打印;中断方式,交换数据;编码数据,放在数据存储器。 编码设计(从略) 驱动程序ORG 0000HAJMP MAINO
19、RG 0013H AJMP INTPRTMAIN:MOV IE, #00H MOV DPTR,#TABLSETB IT1MOV IE, #84HMOV SP, #60HHERE:SJMP HERE,8,35,INTPRT:PUSH ACC ;保护现场PUSH PSW ;MOVX A, DPTR ;取数据MOV P1,A ;数据送P1口CLR P3.0 ;选通信号NOPSETB P3.0 INC DPTR ;指针加1JNZ NEXT ;结束标志判断MOV IE, #00H ;关中断LJMP HERE ;返回主程序 NEXT: POP PSW ;恢复现场POP ACCRETI,8,36,编码程序T
20、ABL: DB 0DH,12H,0DH;CR DC2 CRDB 。00 例6 设计表格打印程序 说明:(1)计数/标志方式,结束打印;(2)查询方式,交换数据;(3)编码数据,放在程序存储器/数据存储器。,8,37,分析: 红色表格和蓝色字符为固定值,其编码数据放在程序存储器,而且,数据较多采用设标志结束打印; 紫色数据变化值,其编码数据放在数据存储器,数据较少采用计数结束打印。,8,38,编码设计1固定打印编码 CR DC2,C3 CR;图案模式,红色打印头 HM0,-5CR ;笔架抬起先回起点再移至(0,-5)点。L0,J20,0,0,-15,-20,0,0,15 CR;绘四框 R0,-5
21、 CR ;相对移动至(0,-10)点 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)点,8,39,C1,S2,M0,-8 CR ;蓝色、2号字,移至(0,-8)点 P ABC CR M0,-13 CR ;移动至
22、第二列 DC1 CR ;文本模式D ;空格和字符D DC2 CR ;图案模式 M0,-18 CR ;移动至第三列 DC1 CR ;文本模式E ;打印空格和字符E,8,40,编码设计2变化打印编码 CR DC2,C2 CR;图案模式,绿色打印头 M5,-13CR ; 移至(5,-13)点 PXXX CR ;打印 M5,-18CR ; 移至(5,-18)点 PXXX CR ;打印 M0,-20 CR,8,41,编码数据表1DB 。00H;标志 编码数据表2DB。H ;计数 编码数据表2的赋值:将A/D结果分别放入DPTR1、DPTR2、DPTR3、。单元中。,8,42,驱动子程序1打印表格和固定数
23、据 PRTROM:MOV R1,#REL ;查表偏移量/加1计数 NEXT: MOV A, R1MOVC A, APC ;查编码MOV P1, A ;数据送P1口CLR P3.0 ;选通信号NOPSETB P3.0 WAIT: JB P3.3,WAIT ;查询BUSY,等待INC R1 JNZ NEXT RETDB00H ; 标志控制,8,43,驱动子程序2打印外部RAM中的数据 PRTRAM: MOV DPTR, #TABL MOV R7, #NNH LOOP: MOVX A, DPTR ;取编码MOV P1, A ;数据送P1口CLR P3.0 ;选通信号NOPSETB P3.0 WAIT
24、: JB P3.3,WAIT ;查询等待BUS INC DPTRDJNZ R7, LOOPRET,8,44,表格打印主程序ORG 0000H MAIN:MOV SP, #60H MOV R3, #06HMOV R0, 30H NEXT: LCALL A/DMOV R0, AINC R0DJNZ R3, NEXTLCALL PRTROMMOV A, 30HMOV DPTR,#DPTR1MOVX DPTR , AMOV DPTR,#DPTR2MOV A, 31HMOVX DPTR , AMOV A, 32H MOV DPTR,#DPTR3MOVX DPTR , A。LCALL PRTRAM 。,8,45,小结 : 1、PP40描绘器的指令的灵活应用; 2、 PP40描绘器与单片机的接口技术; 3、PP40描绘器的编程要点。 习题八 绘制热带鱼图案(自行设计),