0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文教你如何用单片机系统制作微型打印机

电子工程师 来源:网络整理 作者:工程师曾暄茗 2018-07-15 09:50 次阅读

单片机系统制作微型打印机的源程序及方案

//单片机系统打印机程序思路如下:

// 打印规格(16×16点阵),打印机执行单片机n点行走纸指令:0x1B-0x4A-n。向前走n点行,n的值是1-255范围内。
//设置 n点行间距:0x1B-0x31-n。n的值是0-255之间,
//在使用ESC/K命令打印点阵图形时,通常设置n=0。文本打印时通常设置n=3。

//-----------------------函数声明--------------------------------------------------------
#include"stdio.h"
#include"absacc.h"
#include"reg51.h"
//-----------------------LCD接口管脚声明--------------------------------------------------------
sbit STB=P3^0; //输出,数据选通触发脉冲上升沿时读入数据。
sbit BUSY=P3^1; //输入,"高"表示打印机正"忙",不能接收数据。
sbit ACK=P3^2; //输入,应答脉冲"低"电平表示数据已被接收而且已准备好接收下一个数据。
sbit ERR=P3^3; //输入,经电阻上拉"高"电平,表示打印机无故障。
sbit SEL=P3^4; //输入,经电阻上拉"高"电平,表示打印机在线。
#define DATA_OUT P1 //P1为数据端口

bit printer_ERR=0; //打印机故障标志:0表示正常,1表示故障
bit printer_online=1; //打印机在先标志:1表示在线,0表示离线
#define check_ERR() printer_ERR=~ERR //检查打印机是否出错
#define check_online() printer_online=SEL //检查打印机是否在线
//-----------------------定义各命令字--------------------------------------------------------
#define printer_init() SEND_2BYTE(0x1B,0x40) //初始化打印机
#define enter_hangzimode() SEND_2BYTE(0x1C,0x26) //进入汉字打印命令:0x1C-0x26。
#define exit_hangzimode() SEND_2BYTE(0x1C,0x2E) //退出汉字打印命令:0x1C-0x2E。
#define setting_LARGEhz() SEND_2BYTE(0x1C,0x0E) //打印的汉字将在横向放大一倍,纵向不改变。
#define cancel_LARGEhz() SEND_2BYTE(0x1C,0x14)//取消汉字倍宽打印:。
#define select_muster1() SEND_2BYTE(0x1B,0x36)//选择字符集1:。
#define select_muster2() SEND_2BYTE(0x1B-0x37)//选择字符集2:。
#define change_row() SEND_BYTE(0x0A) //换行:。
#define change_page() SEND_BYTE(0xOC) //换页:。
#define made_CZtable() SEND_BYTE(0x0B) //执行垂直造表:0x0B。
#define made_SPtable() SEND_BYTE(0x09) //执行水平造表:0x0B。
#define setting_rowLG() SEND_BYTE(0x0E) //一行内倍宽度打印:0x0E。
#define cancel_rowLG() SEND_BYTE(0x14) //撤除一行内倍宽度打印:0x14。
#define renew_char_set() SEND_2BYTE(0x1B,0x3A) //恢复字符集中的字符:0x1B-0x3A。
#define enter() SEND_BYTE(0x0D) //回车:0x0D。
#define delete_row() SEND_BYTE(0x18) //删除一行:0x18。
#define delete_byte() SEND_BYTE(0x7F) //删除一字节:0x7F。
#define execute_NULL() SEND_BYTE(00) //(4) 空:00。
//设置汉字点阵打印规格(16×16点阵):0x1C-0x69-n
//设定汉字点阵:n=0,16×16点阵
//n=1,8 ×16点阵?
//n=2,16×8点阵
//n=3,8×8点阵。
#define setting_HZmode(n) SEND_2BYTE(0x1C,0x69);SEND_BYTE(n)
// 执行n点行走纸:0x1B-0x4A-n。向前走n点行,n的值是1-255范围内。
#define goahead_nrow(n) SEND_2BYTE(0x1B,0x4A);SEND_BYTE(n)
//设置 n点行间距:0x1B-0x31-n。n的值是0-255之间,
//在使用ESC/K命令打印点阵图形时,通常设置n=0。文本打印时通常设置n=3。
#define setting_rowgap(n) SEND_2BYTE(0x1B,0x31);SEND_BYTE(n)
//--------------------------------------------------------------------------------------------------
// 函数名称: SEND_BYTE
// 入口参数: ndata
// 函数功能: 送出1BYTE数据
//--------------------------------------------------------------------------------------------------
void SEND_BYTE(unsigned char ndata)
{
STB=1;
while(BUSY);
DATA_OUT=ndata;
STB=0;
STB=1;
}

//--------------------------------------------------------------------------------------------------
// 函数名称: SEND_2BYTE
// 入口参数: ndata1,ndata2
// 函数功能: 送出1BYTE数据
//--------------------------------------------------------------------------------------------------
void SEND_2BYTE(unsigned char ndata1,ndata2)
{
SEND_BYTE(ndata1);
SEND_BYTE(ndata2);
}
//--------------------------------------------------------------------------------------------------
// 函数名称: SEND_nBYTE
// 入口参数: ndata
// 函数功能: 送出1BYTE数据
//--------------------------------------------------------------------------------------------------
void SEND_nBYTE(unsigned char n,unsigned char *ndata)
{
while(n--)
{
SEND_BYTE(*ndata++);
}
}
//--------------------------------------------------------------------------------------------------
// 函数名称: main
// 函数功能: 主函数
//--------------------------------------------------------------------------------------------------
main()
{
unsigned char ndata[]="I love DPJ";
check_ERR(); //检查打印机是否出错
check_online(); //检查打印机是否在线
while(printer_ERR==0&&printer_online);
printer_init(); //初始化打印机
SEND_nBYTE(11,ndata);
SEND_2BYTE(0x0D,0x0D);
}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6030

    文章

    44505

    浏览量

    632416
  • 微型打印机
    +关注

    关注

    0

    文章

    11

    浏览量

    7980
收藏 人收藏

    评论

    相关推荐

    单片机微型打印机接口

    单片机微型打印机接口
    发表于 07-06 21:49

    单片机微型打印机的接口设计

    单片机微型打印机的接口设计
    发表于 08-07 00:12

    何用单片机把获取的文字和图片传输到打印机完成打印

    求大神帮忙!!!在做个毕设。利用微信把将要打印的文本通过单片机控制打印机完成打印。1.单片机
    发表于 12-29 22:29

    怎样去设计种基于单片机微型打印机控制电路

    增多。微型打印机种通过单片机控制编程,可以自动完成打印任务作业的机械装置。
    发表于 07-16 06:35

    单片机微型打印机控制电路的设计资料分享

    ……………………………………………………………………………14 硬件部分设计………………………………………………………………………24.1打印机部分………………………………………………………………………24.2单片机芯片部分………………………………………………………………
    发表于 02-08 06:06

    微型打印机单片机接口

    微型打印机单片机接口:是PDG格式的电子书.
    发表于 12-13 22:32 92次下载
    <b class='flag-5'>微型</b><b class='flag-5'>打印机</b>与<b class='flag-5'>单片机</b>接口

    单片机微型打印机的接口设计

    在分析TPUP 微型打印机控打原理的基础上, 设计了以AT89S52 为核心的微型打印机接口, 介绍了AT89S52 单片机接口应用设置、接
    发表于 12-03 22:33 155次下载

    MCS-51单片机与键盘、显示器、微型打印机的接口

    MCS-51单片机与键盘、显示器、微型打印机的接口
    发表于 09-13 08:07 150次下载

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

     摘要:介绍种采用MCS51系列单片机控制驱动Hewlett Packard DESKJET 600/800系列喷墨打印机的硬件接口设计和软件设计方法。以控制打印机实现
    发表于 03-11 11:48 2194次阅读
    基于<b class='flag-5'>单片机</b>的喷墨<b class='flag-5'>打印机</b>控制技术

    单片机微型打印机中的应用

    单片机微型打印机中的应用 1 引 言    由于单片机具有简单实用、高可靠性、良好的性能价格比以及体积小等优点,已经在各个技术领域得到了迅猛发展
    发表于 12-22 17:27 1993次阅读
    <b class='flag-5'>单片机</b>在<b class='flag-5'>微型</b><b class='flag-5'>打印机</b>中的应用

    基于C8051F单片机的标签打印机接口设计

    基于美国Silicon Labs公司生产的SoC单片机C8051f020作为主控制芯片,通过RS 232串行接口与标签打印机进行串行通信,采取单片机向标签打印机发送
    发表于 05-20 09:32 4371次阅读
    基于C8051F<b class='flag-5'>单片机</b>的标签<b class='flag-5'>打印机</b>接口设计

    进行微型打印机单片机接口的程序免费下载

    本文档的主要内容详细介绍的是进行微型打印机单片机接口的程序免费下载。
    发表于 08-08 17:33 6次下载
    进行<b class='flag-5'>微型</b><b class='flag-5'>打印机</b>和<b class='flag-5'>单片机</b>接口的程序免费下载

    基于单片机微型打印机控制电路设计

    ,由于其具有集成度高、处理功能强、可靠性好、系统结构简单、价格低廉、易于使用等优点,在我国已经得到广泛使用,并已经在各个技术领域得到了迅猛发展。随着普通打印机价格的下降,它们在单片机系统
    发表于 11-23 16:22 21次下载
    基于<b class='flag-5'>单片机</b>的<b class='flag-5'>微型</b><b class='flag-5'>打印机</b>控制电路设计

    单片机微型打印机控制电路的设计

    ……………………………………………………………………………14 硬件部分设计………………………………………………………………………24.1打印机部分………………………………………………………………………24.2单片机芯片部分………………………………………………………
    发表于 12-05 09:36 8次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>微型</b><b class='flag-5'>打印机</b>控制电路的设计

    微型打印机控制电路的设计

    微型打印机种通过单片机控制编程,可以自动完成打印任务作业的机械装置。或者更确切的说,多功
    发表于 10-18 15:03 22次下载