打印机与单片机接口设计

合集下载

STC系列单片机与微型打印机接口电路设计

STC系列单片机与微型打印机接口电路设计

STC系列单片机与微型打印机接口电路设计作者:白天明来源:《电脑知识与技术》2019年第05期摘要:本文给出了一种以STC系列单片机为核心的微型打印机电路的设计方法,着重介绍了该系统的硬件设计及其软件驱动程序。

该打印机电路可以实现数字、符号、汉字和图形的打印。

关键词:STC;单片机;微型打印机中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2019)05-0211-02单片机具有体积小、功耗低、价格廉、抗干扰能力强的特点。

微型打印机是智能仪表、测控仪器重要的输出设备。

本文系统地介绍了STC单片机与热敏微型打印机的接口电路及软件实现方法。

1 系统硬件组成STC系列高性能单片机是由宏晶公司科技设计、生产的一款新型单片微型计算机。

与传统的51系列单片微型计算机相比,具有功能强、功耗低、价格低、运算速度快的优点。

指令代码与传统的8051系列完全兼容,但由于系统采用单时钟方式,运算速度非常快。

系统内部了集成高可靠复位电路,可以内置复位与低电压复位。

特别适用于高速通信、电机控制、智能控制、强干扰场合。

单片机的片内ROM为FLASH存储器,最大可达63.5K字节,擦写次数超过10万次。

片内RAM数据存储器最大为8192字节。

芯片内还集成了EEPROM,最大48KB。

片内有40个通用输入输出口,可以通过对PxM1、PxM0设置端口状态为准双向口/弱上拉、推挽/强上拉、仅为输入/高阻和开漏四种工作模式。

可以进行在线编程,无须专用编程器、仿真器,即可实现在线调试。

RD--D系列打印机采用热敏方式进行打印,不仅可以打印国标一、二级汉字库中全部汉字,还可以打印英文字符、图形符号等。

与单片机连接可以采用标准并行接口、RS23串行接口,TTL电平串口,485接口,USB等多种接口形式。

在消费电子、医疗设备、消防报警、测量设备、电力仪器、电子衡器、票据打印等行业都有广泛的应用。

微型打印机的串口引脚信号如下:以串口为例介绍一下STC单片机与打印机的接口电路。

第10章AT89C51单片机与键盘显示器等的接口设计

第10章AT89C51单片机与键盘显示器等的接口设计

COM2=0 十位
COM1=0 个位
(b)
送显示位扫描信号: COM4=0 COM3=1 COM2=0 COM1=0 个位 十位 百位 千位 g 送 2 的显示段码: hgfedcba =10100100 f e d c b a COM3=0 百位 COM2=1 COM1=0 个位 十位
(c)
只要扫描信号的频率足够 快,加上LED数码显示器发光 的余晖效应和人的视觉暂留现 象,人们感觉到的好像是各位 同时显示的效果,而无闪烁现 象。 一般每个LED数码显示器 的显示时间为1~5ms。
b. 线反转法
第1步:列线输出为全低电平, 则行线中电平由高变低(或由 低变高)的所在行为按键所在 行。 第2步:行线输出为全低电平, 则列线中电平由高变低(或由 低变高)所在列为按键所在列。 结合上述两步,可确定按键所 在行和列。
编程说明:


在单片机应用系统中,键盘扫描只是系统的部分程序。进 行软件系统编程时,一般作为子程序调用或中断服务程序 使用。该子程序入口参数为无,出口参数为键码值,一般 存于A。因此,其调用十分简单,但一定要注意返回的键码 值所对应的键在键盘的哪个位臵,即要掌握键码分配表。 矩阵式键盘尽管比独立式键盘复杂。但有了上述子程序后, 只要学会调用,你甚至不需要知道键盘扫描程序是如何编 写的,COPY即可,编程也就变得十分简单了。从这可以看 出平时注意查阅资料,收集实用子程序,掌握子程序的调 用,对提高编程效率是多么重要。
DELY10MS
JAN1 ANJ JAN1_PRG JAN1
;P1.0=0键被按下,延时消抖
;P1.0是否仍为低电平,否则重 新查询 ;按键有效,等待键释放 ;调用键功能程序 ;返回继续查询
P1.0

基于单片机的USB打印机打印系统研究

基于单片机的USB打印机打印系统研究

2、单片机和USB打印机的的基本 概念和技术背景
2、单片机和USB打印机的的基本概念和技术背景
单片机是一种集成度很高的微型计算机,具有体积小、价格便宜、可靠性高、 易于开发等优点。因此,单片机被广泛应用于各种智能化设备中,如打印机、复 印机、指纹识别等。USB是一种通用的串行通信协议,具有传输速度快、可靠性 高、易于扩展等优点。USB接口已经成为了各种智能化设备的标准接口之一,包 括打印机、鼠标、键盘等。因此,基于单片机的USB打印机打印系统具有广泛的 应用前景和市场潜力。
应用前景
针对针式打印机的特点,我们还可以进一步开发更加个性化的功能,如双面 打印、多种色彩打印等,以提高打印质量和效果。此外,针对一些特殊的应用场 合,如医院、银行等需要快速、高效、安全的打印服务,该系统也可以得到很好 的应用。
应用前景
总之,基于USB传输的针式打印机系统具有广阔的应用前景,可以为人们的生 活和工作带来更多的便利和效益。
系统设计
系统设计
基于USB传输的针式打印机系统主要包括硬件和软件两部分。硬件部分包括 USB接口芯片、打印头控制电路、色带驱动电路和纸张进给电路等;软件部分主 要负责打印内容的数据处理和打印头的控制。
硬件设计
硬件设计
硬件部分的核心是USB接口芯片,它负责与计算机进行通信,传递打印数据和 命令。同时,USB接口芯片还需对打印头控制电路、色带驱动电路和纸张进给电 路等进行控制。打印头控制电路根据USB接口芯片传递的信号,驱动打印头进行 针击动作。色带驱动电路负责驱动色带盒转动,为打印提供彩色或单色打印。纸 张进给电路则负责控制纸张的进给,确保打印内容在正确的位置。
基本内容
USB,全称通用串行总线(Universal Serial Bus),是一种高速串行通信 总线,广泛应用于计算机、外部设备和消费电子产品之间。它具有传输速度快、 连接简单、支持热插拔等优点,因此成为打印机等外部设备的主要接口之一。

单片机与微型打印机接口为例讲述这三种数据传输方式

单片机与微型打印机接口为例讲述这三种数据传输方式

单片机与微型打印机接口为例讲述这三种数据传输方式单片机CPU与外部设备交换信息通常有如下几种方式:无条件传送方式,查询传送方式和中断传送方式。

我们以单片机与微型打印机接口为例讲述这三种方式。

假定用户要打印三个数据,这三个数据保存在单片机的内部数据存储器10H,11H,和12H中,8051用并口P2与微型打印机的并行数据口DB进行数据交换。

(1)无条件传送方式这种数据传送方式中没有联络信号,即CPU总是认为打印机在如何时候都是处于“准备好”的状态。

这种传送方式中只需要在程序中加入数据送往P2的指令,数据传送便可以实现。

但这种数据传送方式有一个致命弱点,数据易丢失,这是因为CPU的速度相当快,而打印机的速度相对来说较慢,其结果是在打印机打印一个数据的时间内,CPU已送来了多个数据。

(2)查询传送方式查询传送也称条件传送是,在这种传送方式中,无论是输入还是输出,都是以计算机为主动一方。

为了数据传送的正确性,计算机在传送数据之前,要首先查询外部设备是否已处于“准备好”状态;对于输出操作,则要知道外设是否已把上一次计算机输出的数据处理完毕。

只有通过查询,确信外设已处于“准备好”的状态,计算机才能发出访问外设的指令,实现数据交换。

状态信息一般只需要一位二进制码表示“准备好”和“未准备好”两种状态,所以,在接口中只用一个D触发器就可用来保存和产生状态信息。

例如,“准备好”有D触发器Q=1表示;“没准备好”用Q=0表示.查询方式过程:查询,即读“准备好”引脚,若该引脚为“准备好”状态,则进行数据传送,若引脚为“未准备好”状态,则继续查询,直到该引脚为“准备好”状态,再进行数据传送。

在我们这个例子中可以在打印机上增加一条名为BUSY的引脚,打印机开始打印一个数据前,使该引脚为高电平,打印完一个数据后,使该引脚为低电,该引脚的初始化为0。

我们将该引脚与单片机的引脚INT0相连,单片机每发送一个数据前,都查询该引脚状态是。

基于单片机微型打印机系统控制设计

基于单片机微型打印机系统控制设计

基于单基片机的微型打印机的设计摘要目前,电子领域正向着数字化、信息化、微型化发展。

打印机作为数字输出设备之一也朝着多功能、高性能的方向发展。

微型打印机是电子信息领域一种很重要的输出设备。

本文设计的主要目的是运用单片机来控制微型打印机来实现打印的目的。

本设计基于荣达RD-E系列微型打印机,以单片机P80C51以核心元件,辅以必要的外围电路(包括实时时钟电路、温度传感器和液晶显示模块、按键、打印机),采用并行接口技术,同时通过液晶显示器显示打印的数字和文字信息。

可以实现打印一段固定的文字和单个任意的数字,同时把打印的内容显示在液晶屏上。

本文主要用温度传感器测量温度,再通过单片机控制热敏电阻打印机打印出小票,设计了时钟接口电路,打印机接口电路,温度传感器接口电路和液晶显示接口电路。

再辅助软件设计来进行调试。

关键词:打印机,单片机,液晶显示器,DS1302时钟BASED 0N A SINGLE SUBSTRATE MACHINEDESIGNED FOR MICRO PRINTERABSTRACTAt present, the electronics field is developing towards digitalization, information, miniaturation. Printer, as one of the digital output devices are also moving into the direction of multi-function, high performance. The micro printer.It is a kind of important electronic information field output device.Design is the main purpose of this article is to use single-chip microcomputer to control the micro printer for printing purposes. This design based on RD - E series micro printer, P80C51 MCU core components, supplemented by the necessary peripheral circuit (including real time clock circuit, temperature sensor and LCD display module, keys, printer), USES the parallel interface technology, at the same time, through the LCD display to print Numbers and text messages. Can achieve print afixed text and a single arbitrary Numbers, and at the same time to print the contents of the display on the LCD screen. Temperature is measuredin this paper, with a temperature sensor, and controlled by single chip thermal resistor printer to print out receipts, designs the interface circuit, clock printer interface circuit and temperature sensorinterface circuit and LCD interface circuit. Auxiliary software designed to debug.KEY WORDS:printers, microcontroller, liquid crystal display,DS1302 clock目录前言 1第1章系统总体设计 2§1.1总体设计框图 2第2章系统硬件设计 3§2.1 主控制器部分的设计 3§2.1.1主控芯片的选择 3§2.1.2复位电路 4§2.1.3 晶振电路 5§2.2.1 显示系统的方案的选择 5§2.2.2 12864F 简介 6§2.2.3 12864F 引脚说明 6§2.2.4 12864F 液晶显示电路 7§2.3.1 方案的选择 8§2.3.2 温度芯片的选择 8§2.3.2 DS18B20内部结构描述 9§2.3.3 DS18b20温度系统电路 9§2.4 时钟系统电路设计 10§2.4 .1 时钟芯片选择 10§2.4 .2 DS1302管脚及寄存器说明 10 §2.4 .3 DS1302时钟电路 11§2.5 键盘 11§2.6微型打印机 12§2.6.1特点与性能 12§2.7 打印机接口电路 12§2.8硬件原理图 13第3章软件设计 15§3.1并口连接方式例程 15§3.2 按键接口设计 16§3.3 12864,DS1302,DS18B20的接口程序 17结论 38参考文献 39致谢 41前言近年,随着社会的发展生活日新月异。

MCS-51与键盘、显示器、拨盘、打印机的接口设计

MCS-51与键盘、显示器、拨盘、打印机的接口设计
输出为高的位使某一位显示某一字符,其它位为暗。 动态地显示出由缓冲区中显示数据所确定的字符。程 序流程如图10-15 。
参考程序:
DIR: MOV R0,#79H ;置缓冲器指针初值
MOV R3,#01H ;位选码的初值送R3
MOV A,R3
LD0: MOV DPTR,#7F01H;位选码→PA口(PA.0位)
LJMP PKEY3
;S3按下,转PKEY3处理
KEY4: CJNE A,#17H,KEY5 ;S4键未按下,转KEY5
LJMP PKEY4
;S4按下,转PKEY4处理
KEY5: CJNE A,#0FH,PASS ;S5未按下,转RETURN
LJMP PKEY5
;S5按下,转PKEY5处理
RETURN:RET
(2)用软件来消除按键抖动的影响。如有键按下,则 进行下一步。 (3)求按下键的键号。 (4)等待按键释放后,再进行按键功能的处理操作。 2. 定时扫描工作方式
利用单片机内的定时器,产生10ms的定时中断,对 键盘进行扫描。
3.中断工作方式 只有在键盘有键按下时,才执行键盘扫描程序,如
无键按下,单片机将不理睬键盘。
PA口为输出口,控制键盘列线的扫描,同时又是6 位共阴极显示器的位扫描口。
PB口作为显示器段码输出口,PC口作为键盘的行 线状态的输入口。
75452:反相驱动器,7407:同相驱动器。
1.动态显示程序设计 8031内部RAM 6个显示缓冲单元:79H~7EH,存
放要显示的6位数据。 8155H的PB口输出相应位的段码,依次改变PA口
表10-1 LED段码(8段)
显示字符 共阴极 共阳极 显示字符 共阴极 共阳极
段码 段码

10单片机讲义(第十章MCS-51与键盘、显示器、打印机的接口设计))

10单片机讲义(第十章MCS-51与键盘、显示器、打印机的接口设计))
上页的显示程序),延迟6ms后,跳KEY1
AJMP KEY1 ; LK1: ACALL DIR ;可能有键闭合,延迟12ms,
软件去抖动
ACALL DIR ACALL KS1 ;延迟后再次调用判有无键闭合子程序
8155H的I/O口地址为 7F00H~7F05H
;经去抖动,判键确实闭合, 跳LK2去处理 ACALL DIR ;调用显示子程序延迟6ms AJMP KEY1 ;抖动引起,跳KEY1 LK2:MOV R2,#0FEH ;列选码→R2 MOV R4,#00H ;R4为列号计数器 LK4:MOV DPTR,#7F01H ;列选码→8155H 的PA口 MOV A,R2 ;列选码→A MOVX @DPTR,A ;从PA口送出列选码 INC DPTR ;数据指针增2,指向PC口
KEY3 0001 1101
KEY4:CJNE A,#17H,KEY5 LJMP PKEY4 KEYS:CJNE A,#0FH,PASS LJMP PKEY5 RETURN:RET PKEY1: …… PKEY2: …… PKEY3: …… PKEY4: ……
;S4键未按下,转KEY5
0001 0111
(PA口)均置为低电平,检查各行线(PC口)电平是否有变化
(2)去除键的机械抖动: 其方法为延迟一段时间再判别键
盘的状态。
(3)判别闭合键的键号: 方法为对键盘的列线进行逐列扫
描,扫描口PA0~PA7依次输出下列编码,即只有1列为低电平, 其余各列为高电平:(行列扫描法) PA7 PA6 PA5 PA4 PA3 PA2 PA1 PA0 1 1 1 1 1 1 1 0 1 1 1 1 1 1 0 1 … … 1 0 1 1 1 1 1 1 0 1 1 1 1 1 1 1

单片机与微型打印机接口技术

单片机与微型打印机接口技术

单片机与微型打印机接口技术Prepared on 22 November 2020单片机与微型打印机的接口技术郭俊摘要:微型打印机是各种智能化仪表、仪器及各种单片机系统的重要输出设备。

而单片机又具有集成度高、处理能力强、系统结构简单、价格低廉、体积小等优点,所以以单片机控制微型打印机的技术已经在许多领域得以应用,本文研究应用EL-MUT-111单片机/微机实验系统及8086CPU 通过与打印机并行通信方法来控制其实现打印功能的设计。

关键字:单片机;打印机;并行;接口Single-chip and micro-printer interface technologyGUO JUNAbstract:The micro-printer is a variety of intelligent instruments, equipment, and a variety of single-chip system and output device. The single-chip and high integration, processing capability, the system of simple structure, low cost, small size, etc., so a single-chip micro-printer control technology has been applied in many fields, this paper, the application of EL-MUT - 111 single-chip microcomputer / microprocessor systems and experiment with the printer 8086CPU parallel communication methods to achieve control over their design and printing method. The use of micro-printer market shuttle popular dot-matrix printers, this article and control of single-chip micro-printer hardware design and realization of assembly language study briefly.Keywords:Single-chip;dot matrix printer;parallel;Interface前言:打印机作为各种计算机的最主要输出设备之一,随着计算机技术的发展和日趋完美的用户需求而得到较大的发展。

(完整版)单片机控制微型打印机

(完整版)单片机控制微型打印机

单片机控制微型打印机1引言由于常用的微型针式打印机的速度慢,噪声大,无法满足某些场合的需要。

微型热敏打印机具有打印速度快、噪音低、可靠性高、字迹清晰、机头小而轻等优点,可满足各种场合的打印要求,因此得到广泛应用。

笔者在汽车行驶记录仪的开发过程中,根据厂家要求,选用较为先进的热敏打印机作为打印设备。

但微型热敏打印头对打印时序和温度要求较高,一旦控制不当极易造成打印头烧毁。

因此,在有合理的硬件设计的基础上,软件设计也十分重要。

本文使用某些软件设计替代了部分硬件电路,使打印机的控制电路得到了简化。

摘要:介绍了基于89S51单片机的微型热敏打印机的组成,分析了打印原理,详细给出了整体流程以及各个功能模块的软件设计。

热敏打印头采用I/O口模拟串行数据传输实现数据加载。

设计的微型热敏打印机运用于实际,取得了良好的效果。

关键词:热敏打印机过热保护步进电机数据加载2 打印原理选用的FTP-628作为热敏打印头。

该热敏打印头点结构384点/行,水平方向点密度:8点/mm,垂直方向行间距:8点/mm。

有效打印宽度48mm。

打印速度最大为60mm/秒[1]。

要打印的数据在时钟CLK的配合下,经由数据输入脚DI移到热敏机芯内部的移位寄存器中。

经384个时钟周期,一行384位数据全部移到移位寄存器后,锁存端的锁存信号/LAT由CPU置低,移位寄存器的数据被锁存到锁存器。

然后热敏头加热控制信号STB产生高电平,此时根据384点输入的DI数据是1或者是0决定发热元件是否发热,由此在热敏纸上产生要打印的点行。

3 系统整体框图本文介绍的微型热敏打印机由主控芯片、步进电机驱动模块、热敏打印头过热保护模块、热敏打印头缺纸检测模块、RS-232通信模块、供电模块等部分组成。

其中步进电机驱动模块负责控制打印纸走纸及走纸速度;热敏打印头过热保护模块防止热敏打印头温度过高损坏;热敏打印头缺纸检测电路完成热敏打印头是否有纸检测;RS-232通信模块实现打印机与上位机之间的通信;供电模块给控制电路及热敏打印头供电。

标准打印机接口控制程序

标准打印机接口控制程序

8255控制打印机设计一、设计目的1.熟悉MP-T16标准微型并行打印机接口控制逻辑和接口信号性质。

2.了解常用打印机控制代码的格式和使用方法。

3.掌握打印机驱动程序的设计和调试方法。

二、设计要求1.分析打印机主要控制信号(STB、ACK、BUSY)在单片机与打印机进行数据传送时的意义。

2.编写控制程序,完成对打印机接口的初始化编程(注意CN8接插件与单片机P1口的连接。

3.掌握25针接口各脚功能及其与数据线的连接。

4.编写能够打印字符的打印程序。

三、设计步骤线路连接及注意事项1)在不加电的情况下,按照电路原理图找到有关的接线插座,将8031的P1口中的P1.5、P1.7分别与CN8插座的STB、BUSY相连接.2)用普通的并行打印机通信电缆将CN4与打印机的通信接口连接起来。

3)连接仿真器与实验仪。

4)将微型打印机接+5V电源四、设计基本原理说明及程序流程分别以三种不同的方法编程并打印出所要求的字符.1、直接将所要打印的字符送打印机(打印同组同学的姓名).将所需要打印字符的ASCⅡ码值送入累加器调用打印子程序打印子程序::假定打印字符事先已送入累加器A.图一2、将欲打印的字符送入内存某处,实现逐个打印;(打印南京理工大学的英文缩写NJUST-05011701、11702)。

图二3、采用查表法实现打印:(自定义打印字符串)参考程序:PRT_DA TA EQU 5FFFH ;打印口的数据口地址PRT_STRO EQU P1.5 ;打印口STBRO线PRT_BUSY EQU P1.7 ;打印口BUSY线ORG 0000HLJMP STARTORG 0040HSTART: MOV SP,#60HSETB PRT_STRO ;初始化打印口SETB PRT_BUSYMOV DPTR,#PRT_TAB ;置表头地址MOV R0, #00H ;置计数器PR_STR: MOV A, R0MOVC A,@A+DPTR ;读表格数据CJNE A,#0FFH,PRINT ;判断字符串结束标志SJMP $PRINT:LCALL PRT_CHAR ;打印字符INC R0 ;计数器加1AJMP PR_STRPRT_CHAR: ;打印字符子程序PUSH PSW ;保存现场PUSH DPHPUSH DPLSETB PRT_BUSYNOPJB PRT_BUSY,$ ;判断BUSY/状态MOV DPTR,#PRT_DA TA;置数据口地址MOVX @DPTR,A;发送数据SETB PRT_STROCLR PRT_STRONOPNOPSETB PRT_STRO ;发STRO负脉冲POP DPL ;恢复现场POP DPHPOP PSWRETPRT_ TAB 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;1 2 3 4 5 6 7 8 9 ENTER 标志END五、设计实验图及相关数码表图四MP-T16汉字微型打印机主要控制命令:1.纸进给命令LF 0AH 打印机向前走纸一个字符行。

单片机控制打印机例程(北京荣达-串口)

单片机控制打印机例程(北京荣达-串口)

/*********************************************************// 新荣达电子打印机测试程序// 51单片机,晶振11.0592// 时间:2009-7-10// 用与测试串行接口打印机// 常用打印机指令以函数行式体现// 可根据需要自行调用单一函数**********************************************************/#include<reg52.h> //51头文件#include<string.h> //字串处理函数头文件#include<math.h>#define uchar unsigned charsbit BUSY=P3^4; //并口打印机的BUSY,串口打印机的CTS/**************************单字节打印函数************************************/void print(unsigned char ch){while (BUSY==1) //busy为1时,等待,如数据量小,可不判BUSY{;}SBUF= ch; //busy=0,将数据送到P1口while(TI==0) //当TI为0时,表示数据未发送完成,一直等待,直到为1{;}TI=0; //将TI清0}/*********************串口初始化**********************************************/void com_init(void){TH1=0XFD; //波特率值装入计数器,9600BPSTMOD=0X20; //串口设置,定时器1,设为方式2,8位自动重载,用于产生波特率SCON=0X50; //串口发送方式1,8位数据位,1位停止位TR1=1; //开启定时器1}/**********************字符打印函数********************************************/ void print_chs(uchar ch[]){uchar i;for(i=0;i<strlen(ch);i++)print(ch[i]);}/*************************汉字打印例程***************************************/void hanzitest(void){uchar i;print(0x1b);print(0x40); //初始化打印机print(0x1b);print(0x38);print(0x00); //调用16*16点阵汉字,24点阵为24*24print_chs("汉字命令测试:\n");for(i=0;i<5;i++) //搋环打印5次{print(0x1b);print(0x38);print(0x00); //调用16*16点阵汉字,24点阵为24*24print(0xd0);print(0xc2); //打印数据"新"print(0x1b);print(0x38);print(0x04); //调用12*12点阵汉字,24点阵为24*24print(0xc8);print(0xd9);print(0xb4);print(0xef); //打印数据“荣达”print(0x0d); //回车}}/*************************行间距例程************************************/void hangjianju(void){uchar i;print(0x1b);print(0x40); //初始化打印机print(0x1b);print(0x38);print(0x00); //调用16*16点阵汉字,24点阵为24*24print_chs("行间距测试:\n");for(i=0;i<11;i=i+2) //循环打印{print(0x1b);print(0x31);print(i); //ESC 1,设置行间距print_chs("LINE SPACING");print(0x0a); //打印字符串和换行}}/*************************水平造表例程***************************************/ void shuipingzhaobiao(void){print(0x1b);print(0x40); //初始化打印机print(0x1b);print(0x38);print(0x00); //调用16*16点阵汉字,24点阵为24*24print_chs("水平造表测试:\n");print_chs("1234567890123456");// '标尺print(0x0d);print(0x1b);print(0x44);print(2);print(9);print(14);print(0);//ESC Dprint(9); //HT命令print_chs("HT1"); //打印字符串print(9); //HT命令print_chs("HT2"); //打印字符串print(9); //HT命令print_chs("HT3"); //打印字符串print(0x0d);}/*************************打印空格或换行例程**********************************/ void konggehuanhang(void){print(0x1b);print(0x40); //初始化打印机print(0x1b);print(0x38);print(0x00); //调用16*16点阵汉字,24点阵为24*24print_chs("换行或空格测试:\n");print_chs("TE"); //打印字符串“TE”print(0x1b);print(0x66);print(0);print(0x06); //空六格print_chs("ST"); //打印字符串“ST”print(0x0d); //回车print_chs("TE"); //打印字符串“TE”print(0x1b);print(0x66);print(0x01);print(0x06); //换6行print(0x0d); //输入回车}/*************************曲线II指令例程**********************************/ //仅适用于热敏打印机void quxian_2(void){float X;unsigned int Y,YY;// Y1=50+40*abs(-0.01*X)*sin(X/10)// Y2=50-40*abs(-0.01*X)*sin(X/10)// Y3=50// Y4=50+40*abs(-0.1*X)// Y5=50-40*abs(-0.01*X)// 你可以用C语言编写如下的程序:// #include <math.h>// unsigned int Y,YY,X;print(0x1b);print(0x40); //初始化指令print(0x1b);print(0x38);print(0x00); //调用16*16点阵汉字,24点阵为24*24 print_chs("曲线1测试:\n");for(X=0;X<150;X++) //打印150点行{Y= 40*exp(-0.01*X);YY= Y*sin(X/10);print(0x1b);print(39);print(5);print(0); //ESC命令,M=5,0print(50+YY);print(0);print(50-YY);print(0);print(50);print(0);print(50+Y);print(0);print(50-Y);print(0);print(13);}}/*************************曲线I指令例程**********************************/ //仅适用于针式打印机void quxian_1(void){float X;unsigned int Y,YY;// Y1=50+40*abs(-0.01*X)*sin(X/10)// Y2=50-40*abs(-0.01*X)*sin(X/10)// Y3=50// Y4=50+40*abs(-0.1*X)// Y5=50-40*abs(-0.01*X)// 你可以用C语言编写如下的程序:// #include <math.h>// unsigned int Y,YY,X;print(0x1b);print(0x40); //初始化指令print(0x1b);print(0x38);print(0x00); //调用16*16点阵汉字,24点阵为24*24 print_chs("曲线2测试:\n");for(X=0;X<150;X++) //打印150点行{Y= 40*exp(-0.01*X);YY= Y*sin(X/10);print(0x1b);print(39);print(5); //ESC命令,M=5print(50+YY);;print(50-YY);print(50);;print(50+Y);print(50-Y);print(13);}}/************************旋转指令例程**********************************/ void xuanzhuan(void){uchar i;print(0x1b);print(0x40); //初始化指令for(i=0;i<4;i++) //0,90,180,270旋转{print(0x1c);print(0x49);print(i); //旋转指令print(0x1b);print(0x38);print(0); //汉字调出指令print_chs("旋转测试"); //打印汉字}print(0x0d); //回车}/************************反白指令例程**********************************/ void fanbai(void){uchar i;print(0x1b);print(0x40); //初始化指令for(i=0;i<2;i++) //i为1时,反白打印{print(0x1b);print(0x69);print(i);print(0x1b);print(0x38);print(0);print_chs("反白测试");}print(0x0d);}/************************反向指令例程**********************************/ void fanxiang(void){uchar i;print(0x1b);print(0x40); //初始化指令for(i=0;i<2;i++) //i为1时,禁止反向{print(0x1b);print(0x63);print(i);print(0x1b);print(0x38);print(0);print_chs("反向测试");print(0x0d);}}/************************条码指令例程**********************************/ //只有部分型号的打印机支持此指令void tiaoma(void){print(0x1b);print(0x40); //初始化指令print(0x1d);print(0x72);print(0x01); //打印条码字符print(0x1d);print(0x68);print(0x60); //设置条码高度为96点print(0x1d);print(0x6B);print(0x45);print(8); //打印长度为8的CODE39码print(0x2a);print(0x31);print(0x32);print(0x34);print(0x35);print(0x37);print(0x36);print(0x2a); //CODE39码数据print(0x0d); //回车print(0x1d);print(0x6B);print(3); //打印EAN13码print(0x32);print(0x37);print(0x30);print(0x38);print(0x35);print(0x38);print(0x35);print(0x30); //EAN13码数据print(0x30);print(0x39);print(0x32);print(0x34);print(0x38);print(0x00);print(0x0d); //回车}Main(){com_init();hanzitest();hangjianju();shuipingzhaobiao();konggehuanhang();youxian();fangda();huaxian();shangxiabiao();hengzhong();zhuoxian();zidingyi();tuxing();quxian_2(); //如用针打打印机将此函数去掉quxian_1(); //如用热敏打印机将此函数去掉xuanzhuan();fanbai();fanxiang();tiaoma();print(0x0d); //回车print(0x0d); //回车print(0x0d); //回车while(1); //死循环}。

8155接口设计

8155接口设计



RESET:复位信号线
VCC: +5V电源 VSS:电源地
6
8155内部结构如上图所示,包括两个8位并行输入/输出, 一个6位并行输入/输出端口,256个字节的静态随机存取存 储器RAM,一个地址锁存器,一个14位的定时器/计数器以 及控制逻辑电路,各部件和存储器地址的选择由IO / M 信号决定。
AD7~AD0 A7 A6 A5 A4 A3 A2 A1 A0 × × × × ×× 0 × × × × ×× 0 × × × × ×× 0 × × × × ×× 0 × × × × ×× 1 0 0 1 1 0 0 1 0 1 0
寄存器
命令/状态寄存器(命令状态口
A口(PB7~PA0) B口(PB7~PB0) C口(PB7~PC0) 定时器低8位
8155 I/O、RAM接口技术
既有RAM
又有I/O
还有定时器 通用可编程芯片 可以与MCS-51直接接口 用途:键盘/显示器、打印机等外设接口
1
8155内部结构及引脚功能
INTEL 8155芯片包含有256个字节RAM,2
个8位,1个6位的可编程并行I/O口和1个14位 定时器/计数器。8155可直接与MCS-51单片 机连接,不需要增加任何硬件逻辑。

当IO/ M =0(低电平)时,表示AD7~AD0输入的是存储器
地址,寻址范围为00H-FFH。

当IO/ M =1(高电平)时,表示AD7~AD0输入的是I/O接口 地址.
7
地址编码如下所示,其中A7~A3可经译码器进行译码,产
生片选信号CE,内部寄存器和口地址由A2、A1、A0给出。

由于8155既有RAM又具有I/O,因而是MCS-

单片机的输入/输出接口设计与实现方法

单片机的输入/输出接口设计与实现方法

单片机的输入/输出接口设计与实现方法单片机的输入/输出接口设计与实现方法概述:单片机作为嵌入式系统的核心组件,用于控制和处理外部设备的输入和输出。

输入/输出接口的设计和实现是单片机应用中的重要环节。

本文将介绍单片机输入/输出接口的设计原理与实现方法,包括数字输入/输出接口和模拟输入/输出接口两个方面。

一、数字输入/输出接口设计与实现方法:1. 输入接口设计:数字输入接口主要包括开关输入和按键输入。

开关输入一般采用继电器或者开关电路进行连接,可以通过读取端口的电平状态来获取开关的状态信息。

按键输入通常采用矩阵按键的方式,通过扫描矩阵按键的行列,可以实现多个按键的输入。

2. 输出接口设计:数字输出接口可以用于控制各种外部设备,如LED灯、继电器等。

通过设置端口的电平状态,可以实现对外部设备的控制。

常用的数字输出方式包括推挽输出、开漏输出和PWM输出。

3. 实现方法:数字输入/输出接口的实现方法主要有两种:基于端口操作和基于中断。

基于端口操作一般通过读写特定的端口来实现输入和输出功能。

基于中断的实现方法可以通过设置中断触发条件来实现对输入信号的响应,提高系统的实时性和效率。

二、模拟输入/输出接口设计与实现方法:1. 模拟输入接口设计:模拟输入接口主要用于接收模拟量信号,如电压、电流等。

常用的模拟输入接口包括模数转换器(ADC)和电压比较器。

ADC将模拟信号转换为数字信号,可用于采集传感器信号等。

电压比较器常用于判断电压信号是否超过某一门限值。

2. 模拟输出接口设计:模拟输出接口主要用于输出模拟量信号,如驱动电机、显示器等。

常用的模拟输出接口包括数字模拟转换器(DAC)和电流输出接口。

DAC将数字信号转换为模拟信号,可用于驱动各种模拟设备。

电流输出接口可以通过改变电流值来实现对设备的控制。

3. 实现方法:模拟输入/输出接口的设计与实现通过模数转换器和数字模拟转换器来实现。

可以根据具体需求选择合适的模数转换器和数字模拟转换器,通过编程设置相关参数,实现对模拟信号的采集和输出。

MCS-51系列单片机与微型打印机的接口设计

MCS-51系列单片机与微型打印机的接口设计

引言1 微型打印机在单片机应用系统中应用相当广泛,在智能仪器仪表、医疗仪器、消防报警、电力系统、电子衡器、电子收款机、税控机、计价器等系统中几乎成为标准配置。

微型打印机的种类很多,有针式和热敏、台式和面板式、非汉字和汉字之分。

如按接口类型划分,则有并口和串口两大类,其中串口类又可分为、、RS232C RS485及无线接口、红外线接口等。

笔者多年来一直从事微型USB 计算机方面的教学和应用研究工作,合作开发了多种电测领域的智能仪器仪表产品。

本文拟专门介绍系列单MCS-51片机与微型打印机的几种接口设计方面的实例和经验。

并行接口设计2 在某些应用系统中,单片机的串口已被其它设备(如上位机)占用,此时可选用并行接口微打,其接口与标准兼容,时序见图。

如果单片机已扩展CENTRONICS 1了外部程序存储器和(或)数据存储器,则建议直接将微打与数据总线相连而无须外加锁存器,接口电路见MCS-51图所示。

如果应用系统无外部扩展和,且2(a)ROM RAM P0~口有足够空余的话,则建议使用图所示的接口。

如P32(b)果~空余不足时,建议采用串行接口类微打。

并行接P0P3口采用查询方式时,软件流程图见图。

3串行接口设计3 大多数单片机应用系统不是高速大数据量吞吐的,因此单片结构,即不外扩展和ROM 已成为单片机RAM 系统发展的方向之一。

与之相适应,以各种串行总线来配置应用系统已成为设计者的常用手段。

打印机是低速设备,应用微型打印机打印时,数据量一般不大,因此在单片机应用系统中,应当优先考虑选用串行接口类的微型打印机。

选用台式串口微型打印机3.1 系列单片机与微型打印机的接口设计MCS-51刘西玲甘肃省机械电子职工大学专业科,甘肃天水( 741001)摘要: 介绍系列单片机与微型打印机各种接口的典型电路设计和驱动程序流程,提出在单片机应用MCS-51系统中选择打印机接口的主要原则。

关键词:单片机;微型打印机;接口设计中图分类号:文献标识码:文章编号:TP33 B 1371-1351(2004)05-0056-02图 1 并行接口定时图注:>><<≈T120ns T230ns T340ns T45us T54us图3 流程图对于掌上型仪器仪表,由于体积限制,一般均配置分体台式串口微型打印机作为可选外设,由于连线较长,其串口信号采用标准电平,即:EIA 逻辑“”(~低电平)Mark=1EIA -3V -27V 逻辑“”(~高电平)Space=0EIA +3V +27V 因此,在与单片机接口时,存在电平和TTL EIA 电平的转换问题,接口电路见图。

基于单片机的喷墨打印机控制技术

基于单片机的喷墨打印机控制技术

基于单片机的喷墨打印机控制技术 摘要介绍一种采用 51 系列单片机控制驱动 600800 系列喷墨打印机的 硬件接口设计和软件设计方法。

以控制打印机实现表格打印功能为例,给出了用 51 语言编写的一系 列相关基本控制程序。

关键词单片机喷墨打印机 3 语言 单片机应用系统中最常用的输出打印设备是微型打印机,例如系列、 系列打印机等,对它们的控制技术也较为成熟。

但是近年来随着通用打印机的广泛使用,微型打印机的缺点也日益明 显一是通用性及互换性不强;二是打印输出文档的幅面过小,不便于装订 及存档。

而通用打印机都配有国际标准并行接口和串行接口 232/422, 纸张大 小可任意选择。

这些特点是微型打印机所无法抗衡的。

因此在越来越多的单片机应用系统中逐渐趋向于使用通用打印机作 为打印输出设备。

本文介绍了以-51 系列单片机为核心,通过国际标准 8 位并行接口控 制驱动-600/800 系列喷墨打印机的硬件接口电路没计方法及控制程序设计方法。

1 日接口标准 -600/800 系列喷墨打印机采用与正-标准兼容的并行打印机接口,接 口各引脚信号的定义如表 1 所示。

表 1 接口信号 引脚号信号方向说明 1 输入数据选通触发脉冲 2~907 输入数据线 10 输出应答脉冲 11 输出忙信号 13 输出打印机在线 14 输出故障指示 12、 18~ 25-接地 2 硬件设计 本着统一编址控制的原则,硬件原理如图 1 所示。

本设计采用-51 系列的 8952 型单片机, 其内部有 8 字节的程序存储器, 尽可满足本设计的程序、表格的存储要求。

在外部扩展了一片数据存储器 62256 作为打印数据缓冲区,62256 的 存储容量为 32 字节,可以存放大量的打印数据。

从原理框图可看出,62256 的片选端由单片机的 2.7 口控制,因此的 地址范围为 0000~7。

本设计采用查询方式进行打印驱动控制,单片机与打印机的接口包括 如下内容 1 单片机的八位数据线通过 74377 锁存后与打印机的八位数据线相连, 传送打印数据。

基于单片机的打印机设计

基于单片机的打印机设计

单片机在微型打印机中的应用1引言由于单片机具有简单实用、高可靠性、良好的性能价格比以及体积小等优点,已经在各个技术领域得到了迅猛发展。

本文着重介绍89C52对并行接口的微型打印机的控制,以便更好地了解和掌握单片机对外部接口的一般和一些特殊功能的应用。

2控制打印原理89C52单片机执行程序存贮器中的程序,控制电机带动滑槽轮及蜗杆转动[1],使打印机的机头滑架左右移动,从而不断改变同一点行上的打点位置。

蜗杆的转动一方面通过凸轮带动走纸机构实行走纸,另一方面驱动色带移动。

电机转动时感应线圈有一个3 V的正弦信号,经过整形电路后成为方波,此方波输入到89C52,经过89C52相应的指令检测此方波的变化时刻(从上升沿变到下降沿或者从下降沿变到上升沿时刻),在方波变化时刻使打印机的相应打针进行冲打,完成打印任务,同时由这个方波的变化确保各打印点之间的距离相等。

当机头滑架到达最左边时,磁铁使干簧管闭合,这时单片机送出一负脉冲作为行同步信号,使每行打印时在最左端对齐。

3硬件组成3.1 驱动电路用89C52的P1口的P10~P14分别控制打印机的电机及打印针头,P3.3控制干簧继电开关,当滑架到达最左端时,电机每转一圈,干簧继电开关闭合一次,P3.3就接地一次发出一负脉冲作为同步信号,以保证打印时每行在最左端对齐。

在以前众多微型打印机中,由于应用三极管的拉电流,当单片机上电复位时P1口的初始状态为输入方式,所以P10~P17均为高电平,如果没有一个非门[2],则单片机上电复位时就会使组成功率放大器(由2个NPN管构成)的三极管导通,从而使电机转动和4个打针同时通电,这是不允许的。

在这里使用灌电流足以驱动电机和打针,故不需非门,如图1所示。

电机转动时,感应线圈输出幅值为3 V的正弦波,经10,11两端子送出到晶体管整形为方波后送入P3.4,P3.4检测此方波作为打印同步信号,以确保打印点之间距离相等。

4只打针循环同步情况如图2所示。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
六、打印机与单片机接口设计
【硬件说明】本系统选用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 ;计数控制 。。。。。。 编码程序
相关文档
最新文档