当前位置:文档之家› 基于单片机微型打印机系统控制设计

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

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

基于单基片机的微型打印机的设计

摘要

目前,电子领域正向着数字化、信息化、微型化发展。打印机作为数字输出设备之一也朝着多功能、高性能的方向发展。微型打印机是电子信息领域一种很重要的输出设备。

本文设计的主要目的是运用单片机来控制微型打印机来实现打印的目的。本设计基于荣达RD-E系列微型打印机,以单片机P80C51以核心元件,辅以必要的外围电路(包括实时时钟电路、温度传感器和液晶显示模块、按键、打印机),采用并行接口技术,同时通过液晶显示器显示打印的数字和文字信息。可以实现打印一段固定的文字和单个任意的数字,同时把打印的内容显示在液晶屏上。本文主要用温度传感器测量温度,再通过单片机控制热敏电阻打印机打印出小票,设计了时钟接口电路,打印机接口电路,温度传感器接口电路和液晶显示接口电路。再辅助软件设计来进行调试。

关键词:打印机,单片机,液晶显示器,DS1302时钟

BASED 0N A SINGLE SUBSTRATE MACHINE

DESIGNED FOR MICRO PRINTER

ABSTRACT

At 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 a fixed text and a single arbitrary Numbers, and at the same time to print the contents of the display on the LCD screen. Temperature is measured in 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 sensor interface 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 液晶显示电路 (8)

§2.3.1 方案的选择 (8)

§2.3.2 温度芯片的选择 (9)

§2.3.2 DS18B20内部结构描述 (9)

§2.3.3 DS18b20温度系统电路 (10)

§2.4 时钟系统电路设计 (10)

§2.4 .1 时钟芯片选择 (10)

§2.4 .2 DS1302管脚及寄存器说明 (10)

§2.4 .3 DS1302时钟电路 (11)

§2.5 键盘 (12)

§2.6 微型打印机 (12)

§2.6.1 特点与性能 (12)

§2.7 打印机接口电路 (13)

§2.8硬件原理图 (14)

第3章软件设计 (15)

§3.1并口连接方式例程 (15)

§3.2 按键接口设计 (16)

§3.3 12864,DS1302,DS18B20的接口程序 (17)

结论 (38)

参考文献 (39)

致谢 (41)

前言

近年,随着社会的发展生活日新月异。人们的工作的也很繁杂,各种大大小小的公司都得到了很大的发展,公司在日常发展中难免需要打印各种各样的文件和资料,所以各种各样的打印机也得到很好的应用,但许多打印机成本都很高,体积也比较大,而且性能以及其他的一些都不是很好,所以人们开始研究新型的微型打印机,微型打印机已经走进我们的生活中来了,它跟以往的大型打印进来说,最大的优点就是体积小,节约了空间,而且外观优美,性能可观,而且价格相对以往的来说会便宜许多,性价比很高,其特有的多份拷贝、复写打印和连续打印功能,使许多专业打印领域对其情有独钟。它越来越趋向于被设计成各种各样的专业类型,用以打印各类专业性较强的报表、存折、发票、车票、卡片等输出介质。所以微型打印机的前景相当可观。

从1946年日本大和公司(即现在的EPSON公司)研制出第一台微型打印机开始,微型打印机如今已有60年的历史。在这60年里,微型打印机技术获得了突飞猛进的发展。从最初的点阵式打印方式,已经扩展到现今的近10种微型打印方式,包括梭式打印、9针击打、24针击打、喷墨打印、热敏打印等。其产品种类也百花齐放,包括工业仪器、商场POS、医院收费、话费清单、餐厅、银行、加油站、路桥收费等领域都会有它的身影。目前,在国内微打市场上主要有EPSON、STAR、SAMSUNG等国际品牌和实达、公达、博施等国内品牌。其配套的设备主要有:收款机、触摸POS终端、电脑等多项设备几乎所有需要打印的地方。

本课题以单片机为核心,设计和微型打印机的接口电路,编写微型打印机驱动程序,实现特定信息的打印输出。首先系统硬件部分选用MCS-51单片机系列,显示器部分由液显示编写驱动程序用keil,打印格式是由打印机芯片用电磁铁打针,再用按键的方式按打印格式输出。

第1章系统总体设计

§1.1总体设计框图

基于单片机的微型打印机的设计的总体设计框图,如图1-1

图1-1总体设计框图

§1.2 系统功能简介

1、温度传感器测量的当前温度值,通过主控制器在液晶屏上显示当前温度和

时间。

2、按键操作可以决定微型打印机的开始,即按键后打印机开始打印。

第2章系统硬件设计

§2.1 主控制器部分的设计

§2.1.1主控芯片的选择

P80C51基于80C51内核采用高密度CMOS技术设计制造,包含中央处理单元、片内4k程序存储器,128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、3个16位定时/计数器和6个中断源,4层优先级中断嵌套结构,可用于多机通信的串行I/O口,I/O扩展或全双工UART,片内时钟振荡电路。

此外,P80C51采用低功耗静态设计,宽工作电压范围(2.7-5.5V),宽工作频率(可为0Hz),两种软件方式选择电源空闲和掉电模式。空闲模式下,冻结CPU 而RAM定时器、串行口和中断系统维持其功能。由于是静态设计。所以掉电模式下,时钟振荡停止,RAM数据会得以保存,停止芯片内其它功能。CPU唤醒后,从时钟断点处恢复执行程序。其引脚及各引脚功能如下图2-1

2-1引脚图

单片机的40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。

⒈电源:

⑴ VCC - 芯片电源,接+5V;

⑵ VSS - 接地端;

⒉时钟:

XTAL1、XTAL2 - 晶体振荡电路反相输入端和输出端。

⒊控制线:控制线共有4根,

⑴ ALE/PROG:地址锁存允许/片内EPROM编程脉冲

① ALE功能:用来锁存P0口送出的低8位地址

② PROG功能:片内有EPROM的芯片,在EPROM编程期间,此引脚输入编程脉冲。

⑵ PSEN:外ROM读选通信号。

⑶ RST/VPD:复位/备用电源。

RST(Reset)功能:复位信号输入端。

② VPD功能:在Vcc掉电情况下,接备用电源。

⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。

⑸ EA功能:内外ROM选择端。

b)Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。

⒋ I/O线

80C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。

P3口还具有第二功能,用于特殊信号输入输出和控制信号(属控制总线)。(b)单片机接口电路如图2-2

图2-2单片机接口电路

§2.1.2复位电路

在P80C51单片机中的振荡器运行时,RST非引脚上保持到少2个机器周期的高电平输入信号,复位过程即可完成。根据此原理,本设计采用上系统的实用性。本设计的具体复如下图2-3。

图2-3 复位电路

§2.1.3 晶振电路

P80C51在工作时需要外部提供时钟信号,因此,本设计选择在其18脚19脚之间接上12MHz的晶振,为单片机提供1μs的机器振荡周期。其电路连接图如图所示。在图中,电容器C3、C4起稳定振荡频率、快速起振的作用,其电容值一般在20~50pF。晶振电路图如下图2-4。

图2-4晶振电路图

§2.2 显示系统的设计

§2.2.1 显示系统的方案的选择

方案 1 :用数码管或点阵LED 显示。

方案 2 :用液晶1602 显示。

方案 3 :用液晶12864 显示。

时钟和温度的显示可以用数码管或LED,而且价格便宜。但是数码管的只能显

示简单的设计的系统,与我们设计要求也不相符。有很多东西需要显示,还是用显示功能更好的液晶显示器比较好,它能显示更多的数据,用1602液晶显示数据有限,1602不能够显示指针时钟,只能够显示一些基本的西文字符,显示数据的可读性不好,用可以显示汉字的 12864液晶显示器还可以增加显示信息的可读性,用12864 的绘图功能即可绘制出指针时钟的框架,至于指针的转动则才12864 加ds1302同步控制,让人看起来会很方便。虽然它们在价格上差距很大,但是1602不能够实现我们的要求,12864.是我们唯一的选择。

§2.2.2 12864F 简介

带中文字库的128X64是一种具有4 位/8 位并行、2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为128×64,内置 8192 个 16*16 点汉字,和128 个16*8 点 ASCII 字符集.利用该模块灵活的接口方式和单、方便的操作指令,可构成全中文人机交互图形界面。可以显示8 ×4行16×16点阵的汉字. 也可完成图形显示. 低电压低功耗是其显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。

§2.2.3 12864F引脚说明

§2.2.4 12864F 液晶显示电路

图2-5 液晶显示电路图

设计中采用 LCD12864液晶显示。它一般串口、并口两种方式显示,而我们一般采用并口显示。12864的 4 、5 、6 、15、17 脚分别与单片机的 P3.0~ P3.4 相连。7~14 脚与单片机的P0 口相连。1 、20 号脚接地,2 号脚接电源,19 号脚背光灯正端串一个电阻与电源相连,电阻起限流的作用,我们取 R=10K。3 号脚是对比度(亮度)调整,这里要用一个滑动变阻器来调整亮度,这里我们取电位器大小为10K。

§2.3 温度系统设计

§2.3.1 方案的选择

方案 1 :

用热敏电阻等测温元件测出电压,再转换成对应的温度。需要比较多的外部元件(A/D 转换)支持,且硬件电路复杂,制作成本相对较高。

方案 2 :

用 DS18B20直接测温。DS18B20 温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。经比较,我们选择方案2 。

温度实现只能通过外部的温度传感器来实现。经上网查阅及市场考察,

DS18b20体积小,只有3 只脚,电路接法简单。内部含有寄存器为我们设计实现上下限报警功能提供保障。精度为0 .5°C,也符合我们设计的要求。 DS18B20 也是我们通常使用的型号,因此温度传感器用DS18B20。

§2.3.2 温度芯片的选择

温度实现只能通过外部的温度传感器来实现。经上网查阅资料及市场考察,DS18b20体积小,只有 3 只脚,电路接法简单。它能够直接读出被测温度。内部含有寄存器为我们设计实现上下限报警功能提供保障。用户可定义的非易失性温度报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;精度为0 .5°C,也符合我们设计的要求。DS18B20也是我们通常使用的型号,因此温度传感器用 DS18B20。

§2.3.2 DS18B20内部结构描述

DS18B20 温度传感器的内部存储器还包括一个高速暂存RAM 和一个非易失性的可电擦除的EERAM。高速暂存RAM 的结构为8个字节的存储器,结构如图 4 .1 所示。头两个字节包含测得的温度信息,第三和第四字节是TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。第五个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图4 .2 所示。低5 位一直为1 ,TM 是测试模式位,用于设置DS18B20 在工作模式还是在测试模式。

表2.1 高速暂存RAM 结构图

表2.2 配置寄存器

§2.3.3 DS18b20温度系统电路

图2-6温度接口电路图

§2.4 时钟系统电路设计

§2.4 .1 时钟芯片选择

我们采用具有涓细电流充电能力的低功耗实时时钟电路DS1302。它可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能。它采用主电源和备用电源双电源供电。它的工作电压范围2 .0~5.5V,在 2 .2V 时,小于 300nA。它内部含有31个字节的静态RAM,可提供用户访问。DS1302可以对年、月、日、周日、时、分、秒进行计时,可以达到我们设计的基本的要求。内部的寄存器为我们调时,闹钟定时提供了寄存空间。备用用电源也实现了当系统断电后,时钟仍然可以保持。而且它是串行接口,与单片机通信所需要的接口少。不像DS12887等芯片并行通信需要很多IO 口。

§2.4 .2 DS1302管脚及寄存器说明

DS1302的引脚排列Vcc1 为后备电源,VCC2 为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302 由Vcc1 或Vcc2 两者中的较大者供电。当Vcc2 大于Vcc1+0 .2V 时,Vcc2 给DS1302供电。当Vcc2 小于Vcc1时,DS1302由Vcc1 供电。因此,我们vcc1 用3V 的纽扣电池作为备用电源,vcc2 用系统电源作为主电源。X1 和X2 是振荡源,外接32.768kHz晶振。RST

是复位/ 片选线,通过把RST 输入驱动置高电平来启动所有的数据传送。RST 输入有两种功能:首先,RST 接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST 提供终止单字节或多字节数据的传送手段。当RST 为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST 置为低电平,则会终止此次数据传送,I/O 引脚变为高阻态。上电运行时,在Vcc ≥2 .5V 之前,RST 必须保持低电平。只有在SCLK 为低电平时,才能将RST 置为高电平。I/O 为串行数据输入输出端( 双向) 。SCLK 为时钟输入端。DS1302的寄存器说明DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD 码形式。此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM 相关的寄存器分为两类:一类是单个RAM 单元,共 3 1个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM 寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写) 、FFH(读)。

§2.4 .3 DS1302时钟电路

图2-7

时钟接口电路图

§2.5 键盘

只需要选择一个开始打印键接口电路

图2-8 按键接口电路图

§2.6 微型打印机

§2.6.1 特点与性能

RD-E 型热敏微型打印机专为仪器仪表面板安装而设计,采用独特的面板式嵌入结构,便可将整个打印机固定在仪表面板上。

RD-E 型为前面板易上纸结构设计,拥有多项专利技术,实现打印机上纸变革。

E 型壳体超小、超薄,外观精巧;安装开孔尺寸仅为 76mm×76mm,深度仅:45mm;但可容纳直径为 33mm 的打印纸卷。控制板为防尘设计安装,采用原装进口打印头有效确保打印效果与打印机的使用寿命。

§2.7 打印机接口电路

图2-9 打印机接口电路图

§2.8硬件原理图

图2-10 硬件原理图

第3章软件设计§3.1并口连接方式例程

#include

#include

#include

bit STB=P1.1;

sbit BUSY=P1.0;

/**************并口打印子程序**************/ void pprint(unsigned char ch)

{

while(BUSY)

{ };

P0=ch;

STB=0;

_nop_();

_nop_();

STB=1;sbit STB=P1.1;

sbit BUSY=P1.0;

/**************主函数**************/

main()

{

int i;

char ch[]="北京荣达测试程序";

pprint(0x1b);pprint(0x38);pprint(0x00); //调用汉字出库指令

for(i=0;i

pprint(ch[i]);

pprint(0x0d); //回车

§3.2 按键接口设计

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义

sbit KEY=P3^3; //定义按键输入端口

sbit LED=P1^2; //定义led输出端口

/*------------------------------------------------

主函数

------------------------------------------------*/

void main (void)

相关主题
文本预览
相关文档 最新文档