单片机微型打印机程序(原始)

上传人:子 文档编号:43108856 上传时间:2018-06-04 格式:DOC 页数:8 大小:34.50KB
返回 下载 相关 举报
单片机微型打印机程序(原始)_第1页
第1页 / 共8页
单片机微型打印机程序(原始)_第2页
第2页 / 共8页
单片机微型打印机程序(原始)_第3页
第3页 / 共8页
单片机微型打印机程序(原始)_第4页
第4页 / 共8页
单片机微型打印机程序(原始)_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《单片机微型打印机程序(原始)》由会员分享,可在线阅读,更多相关《单片机微型打印机程序(原始)(8页珍藏版)》请在金锄头文库上搜索。

1、单片机微型打印机程序单片机微型打印机程序( (原始原始) )单片机微型打印机程序/-函数声明-#include“stdio.h“#include“absacc.h“#include“reg51.h“/-LCD 接口管脚声明-sbit STB=P30; /输出,数据选通触发脉冲上升沿时读入数据。sbit BUSY=P31; /输入,“高“表示打印机正“忙“,不能接收数据。sbit ACK=P32; /输入,应答脉冲“低“电平表示数据已被接收而且已准备好接收下一个数据。sbit ERR=P33; /输入,经电阻上拉“高“电平,表示打印机无故障。sbit SEL=P34; /输入,经电阻上拉“高“电

2、平,表示打印机在线。#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 /检查打印机是否在线void UART_SendString(unsigned int len,unsigned int *str);void Printer_English(

3、unsigned int leng,unsigned int *string);void Printer_Char(unsigned int length,unsigned int *cha); /-定义各命令字-#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。#def

4、ine 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() SE

5、ND_BYTE(0xOC) /换页:。#define made_CZtable() SEND_BYTE(0x0B) /执行垂直造表:0x0B。#define made_SPtable() SEND_BYTE(0x09) /执行水平造表:0x09。#define setting_rowLG() SEND_BYTE(0x0E) /一行内倍宽度打印:0x0E。#define cancel_rowLG() SEND_BYTE(0x14) /撤除一行内倍宽度打印:0x14。#define renew_char_set() SEND_2BYTE(0x1B,0x3A) /恢复字符集中的字符:0x1B-0x3

6、A。#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。/设置汉字点阵打印规格(1616 点阵):0x1C-0x69-n/设定汉字点阵:n=0,1616 点阵/n=1,8 16 点阵/n=2,168 点阵/n=3,88 点阵。#define setting_HZmode(n) S

7、END_2BYTE(0x1C,0x69);SEND_BYTE(n)/允许/禁止反白打印:0x1B-0x69-n/n=1,允许反白打印/n=0 禁止反白打印#define Anti_Whiten SEND_2BYTE(0x1B,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 命令打印点阵图形时,通常设置

8、 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;Delay(5);STB=1; /-/ 函数名称: SEND_2BYTE/ 入口参数: ndata1,ndata2/ 函数功能: 送出 1BYTE 数据/-void SEND_2BYTE(

9、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+);/* 延时凾数 * * 名称: Delay* 说明:* 功能: 延时* 调用: * 输入: Temp 延时系数* 返回值: 无*/void Delay(char Temp) char j;while (

10、Temp-)for (j=0 ; j = 50; j+);return;/-/ 函数名称 :void UART_SendString(uchar len,uchar *str)/ 函数功能 :并口输出字符串 / 入口参数 :length 为汉字码组长度 str 为机内码首地址/ 出口参数 :无/-void UART_SendString(uchar len,uchar *str)uchar i=0;while(i) while(!TI);SBUF=*str+;TI=0;i+;/-/ 函数名称 :void Printer_English(uchar leng,uchar *string)/ 函数

11、功能 :打印机普通方式初始化 / 入口参数 :leng 打印的字符长度/ string 打印的字符串/ 出口参数 :无/-void Printer_English(uchar leng,uchar *string)printer_init() ;/初始化打印机select_muster1();/选择字符集 1setting_HZmode(3);/选择 8*8 点阵Anti_White0;/禁止反白UART_SendString(leng,string);/-/ 函数名称 :void Printer_Char(unsigned int length,unsigned int cha)/ 函数功能 :打印机汉字打印方式初始化 / 入口参数 :length 为汉字码组长度 cha 为机内码首地址/ 出口参数 :无/-void Printer_Char(unsigned int length,unsigned int *cha)printer_init() ;/初始化打印机ente

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号