📄 printer.src
字号:
DB 00FH
DB 000H
DB 001H
DB 00FH
DB 00EH
DB 000H
DB 000H
DB 030H
DB 078H
DB 0C8H
DB 088H
DB 018H
DB 010H
DB 000H
DB 000H
DB 004H
DB 00CH
DB 008H
DB 009H
DB 00FH
DB 006H
DB 000H
DB 000H
DB 008H
DB 008H
DB 0F8H
DB 0F8H
DB 008H
DB 008H
DB 000H
DB 000H
DB 000H
DB 000H
DB 00FH
DB 00FH
DB 000H
DB 000H
DB 000H
DB 000H
DB 0F8H
DB 0F8H
DB 000H
DB 000H
DB 0F8H
DB 0F8H
DB 000H
DB 000H
DB 007H
DB 00FH
DB 008H
DB 008H
DB 00FH
DB 007H
DB 000H
DB 000H
DB 0F8H
DB 0F8H
DB 000H
DB 000H
DB 0F8H
DB 0F8H
DB 000H
DB 000H
DB 003H
DB 007H
DB 00CH
DB 00CH
DB 007H
DB 003H
DB 000H
DB 000H
DB 0F8H
DB 0F8H
DB 000H
DB 0C0H
DB 000H
DB 0F8H
DB 0F8H
DB 000H
DB 001H
DB 00FH
DB 00EH
DB 001H
DB 00EH
DB 00FH
DB 001H
DB 000H
DB 018H
DB 038H
DB 0E0H
DB 0C0H
DB 038H
DB 018H
DB 000H
DB 000H
DB 00EH
DB 00FH
DB 000H
DB 001H
DB 00FH
DB 00EH
DB 000H
DB 000H
DB 078H
DB 0F8H
DB 080H
DB 080H
DB 0F8H
DB 078H
DB 000H
DB 000H
DB 000H
DB 000H
DB 00FH
DB 00FH
DB 000H
DB 000H
DB 000H
DB 000H
DB 008H
DB 008H
DB 088H
DB 0C8H
DB 078H
DB 038H
DB 000H
DB 000H
DB 00EH
DB 00FH
DB 009H
DB 008H
DB 008H
DB 008H
DB 000H
DB 000H
DB 030H
DB 078H
DB 0CEH
DB 08EH
DB 018H
DB 010H
DB 000H
DB 000H
DB 004H
DB 00CH
DB 038H
DB 039H
DB 00FH
DB 006H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 00CH
DB 00CH
DB 00CH
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 080H
DB 0E0H
DB 078H
DB 018H
DB 000H
DB 000H
DB 018H
DB 01EH
DB 007H
DB 001H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 040H
DB 040H
DB 040H
DB 040H
DB 040H
DB 040H
DB 040H
DB 040H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
DB 000H
RSEG ?C_INITSEG
DB 002H
DB total
DW 00004H
; /*------------------------------------------------------------------------------
; CSAMPLE1.C
; Copyright 1995-1999 Keil Software, Inc.
; ------------------------------------------------------------------------------*/
; //#include <reg51.h> /* define 8051 registers */
; #include <stdio.h> /* define I/O functions */
; #include <math.h>
; // 打印机厂家需要的头文件
; #include<reg52.h>
; #include<string.h>
; // 加入自己定义的头文件。
; #include "lyj.h"
; //加入液晶厂家的显示公用头文件
; #include "led.h"
; #include "I2C.h"
; extern unsigned int getnumber (void);
; //unsigned int i=0;
; extern void output (unsigned int);
; //处理完毕所有的键盘输入;
; unsigned int total = 4 ; // 合计需要存储4组
; input sinput;
; canshu scanshu;
; // 建立所有公用的使用参数:
; //unsigned char store[12][4];
; //input store_sinput[4];
; unsigned char screen ; // 屏幕状态,0是主屏,1是打印屏,2是设置屏1,3是设置屏2.
; unsigned char bkey ; // 获得的键值
; unsigned char Revbuffer[10];
; void main (void)
RSEG ?PR?main?PRINTER
main:
USING 0
; SOURCE LINE # 29
; {
; SOURCE LINE # 30
;
; // 初始化液晶
; LcmInit();
; SOURCE LINE # 33
LCALL LcmInit
; //初始化打印机
; intiPri();
; SOURCE LINE # 35
LCALL intiPri
; //初始化单片机
; intiCpu();
; SOURCE LINE # 37
LCALL intiCpu
; restoreConfig();
; SOURCE LINE # 38
LCALL restoreConfig
; // intiLed();
; // 开机显示画面;
; showLcd(0);
; SOURCE LINE # 41
CLR A
MOV R7,A
MOV R6,A
LCALL _showLcd
?C0001:
; while (1)
; SOURCE LINE # 42
; {
; SOURCE LINE # 43
; bkey = inputkey();
; SOURCE LINE # 44
LCALL inputkey
MOV bkey,R7
; switch (bkey) //如果有键盘按下
; SOURCE LINE # 45
MOV A,bkey
DEC A
CJNE A,#018H,?C0296
?C0296:
JNC ?C0001
MOV DPTR,#?C0297
MOV B,#03H
MUL AB
XCH A,DPH
ADD A,B
XCH A,DPH
JMP @A+DPTR
?C0297:
LJMP ?C0004
LJMP ?C0005
LJMP ?C0006
LJMP ?C0007
LJMP ?C0008
LJMP ?C0009
LJMP ?C0010
LJMP ?C0011
LJMP ?C0012
LJMP ?C0013
LJMP ?C0014
LJMP ?C0015
LJMP ?C0016
LJMP ?C0017
LJMP ?C0018
LJMP ?C0019
LJMP ?C0020
LJMP ?C0021
LJMP ?C0022
LJMP ?C0023
LJMP ?C0024
LJMP ?C0025
LJMP ?C0026
LJMP ?C0027
; {
; SOURCE LINE # 46
; case 1: inputnum(0);
; SOURCE LINE # 47
?C0004:
CLR A
MOV R7,A
; break ;
; SOURCE LINE # 48
SJMP ?C0309
; case 2: inputnum(1);
; SOURCE LINE # 49
?C0005:
MOV R7,#01H
?C0301:
; break ;
; SOURCE LINE # 50
SJMP ?C0309
; case 3: inputnum(2);
; SOURCE LINE # 51
?C0006:
MOV R7,#02H
?C0302:
; break ;
; SOURCE LINE # 52
SJMP ?C0309
; case 4: inputnum(3);
; SOURCE LINE # 53
?C0007:
MOV R7,#03H
?C0303:
; break ;
; SOURCE LINE # 54
SJMP ?C0309
; case 5: inputnum(4);
; SOURCE LINE # 55
?C0008:
MOV R7,#04H
?C0304:
; break ;
; SOURCE LINE # 56
SJMP ?C0309
; case 6: inputnum(5);
; SOURCE LINE # 57
?C0009:
MOV R7,#05H
?C0305:
; break ;
; SOURCE LINE # 58
SJMP ?C0309
; case 7: inputnum(6);
; SOURCE LINE # 59
?C0010:
MOV R7,#06H
?C0306:
; break ;
; SOURCE LINE # 60
SJMP ?C0309
; case 8: inputnum(7);
; SOURCE LINE # 61
?C0011:
MOV R7,#07H
?C0307:
; break ;
; SOURCE LINE # 62
SJMP ?C0309
; case 9: inputnum(8);
; SOURCE LINE # 63
?C0012:
MOV R7,#08H
?C0308:
; break ;
; SOURCE LINE # 64
SJMP ?C0309
; case 10: inputnum(9);
; SOURCE LINE # 65
?C0013:
MOV R7,#09H
?C0309:
LCALL _inputnum
; break ;
; SOURCE LINE # 66
LJMP ?C0001
; case 11: inputnod(); //输入小数点
; SOURCE LINE # 67
?C0014:
LCALL inputnod
; break ;
; SOURCE LINE # 68
LJMP ?C0001
; case 12: inputf1(); //输入F1键 存储
; SOURCE LINE # 69
?C0015:
LCALL inputf1
; break ;
; SOURCE LINE # 70
LJMP ?C0001
; case 13: inputf2(); // 打印。
; SOURCE LINE # 71
?C0016:
LCALL inputf2
; break ;
; SOURCE LINE # 72
LJMP ?C0001
; case 14: inputf3();
; SOURCE LINE # 73
?C0017:
LCALL inputf3
; break ;
; SOURCE LINE # 74
LJMP ?C0001
; case 15: inputf4();
; SOURCE LINE # 75
?C0018:
LCALL inputf4
; break ;
; SOURCE LINE # 76
LJMP ?C0001
; case 16: inputok(); //输入确定键
; SOURCE LINE # 77
?C0019:
LCALL inputok
; break ;
; SOURCE LINE # 78
LJMP ?C0001
; case 17: inputesc(); //输入取消键
; SOURCE LINE # 79
?C0020:
LCALL inputesc
; break ;
; SOURCE LINE # 80
LJMP ?C0001
; case 18: inputback(); //输入backspace 键
; SOURCE LINE # 81
?C0021:
LCALL inputback
; break ;
; SOURCE LINE # 82
LJMP ?C0001
; case 19: inputqie(); //切换键
; SOURCE LINE # 83
?C0022:
LCALL inputqie
; break ;
; SOURCE LINE # 84
LJMP ?C0001
; case 20: inputup(); //向上键
; SOURCE LINE # 85
?C0023:
LCALL inputup
; break ;
; SOURCE LINE # 86
LJMP ?C0001
; case 21: inputdown(); //向下键
; SOURCE LINE # 87
?C0024:
LCALL inputdown
; break ;
; SOURCE LINE # 88
LJMP ?C0001
; case 22: inputlink(); //连接键 无用
; SOURCE LINE # 89
?C0025:
LCALL inputlink
; break ;
; SOURCE LINE # 90
LJMP ?C0001
; case 23: inputlyj1(); //备用键1
; SOURCE LINE # 91
?C0026:
LCALL inputlyj1
; break ;
; SOURCE LINE # 92
LJMP ?C0001
; case 24: inputlyj2(); //备用键2
; SOURCE LINE # 93
?C0027:
LCALL inputlyj2
; break ;
; SOURCE LINE # 94
LJMP ?C0001
; END OF main
; default : break ;} //end of switch */
; }// end of while
; // 所有键盘的处理程序完成。
; }// end of main
; // 以下是所有的子函数。
; //液晶初始化子函数、
;
; /*void intiLed()
; {
;
; }*/
;
; //打印机初始化函数
; void intiPri()
RSEG ?PR?intiPri?PRINTER
intiPri:
; SOURCE LINE # 108
; {
; SOURCE LINE # 109
; // SP = 0xA0;
; // IE = 0x1B;
; TH1=0xe8; //波特率2400
; SOURCE LINE # 112
MOV TH1,#0E8H
; TL1=0xe8; //波特率2400
; SOURCE LINE # 113
MOV TL1,#0E8H
; //TH1=253; //波特率9600
; TMOD=32; //串口设置,定时器1,方式2
; SOURCE LINE # 115
MOV TMOD,#020H
; SCON=0xd0; //串口发送方式3
; SOURCE LINE # 116
MOV SCON,#0D0H
; TR1 = 1;
; SOURCE LINE # 117
SETB TR1
; }
; SOURCE LINE # 118
RET
; END OF intiPri
; // 单片机初始化函数
; void intiCpu()
RSEG ?PR?intiCpu?PRINTER
intiCpu:
; SOURCE LINE # 120
; {
; SOURCE LINE # 121
;
; screen =0 ; // 屏幕状态,0是主屏,1是设置屏 ,2是打印屏
; SOURCE LINE # 123
CLR A
MOV screen,A
; Page =0;
; SOURCE LINE # 124
MOV Page?,A
; Col=0; //光标默认位置是0.0
; SOURCE LINE # 125
MOV Col,A
; // 输入屏幕5个参数;
; sinput.bianma =0;
; SOURCE LINE # 127
MOV sinput,A
MOV sinput+01H,A
; sinput.num =0;
; SOURCE LINE # 128
MOV sinput+04H,A
MOV sinput+05H,A
; sinput.price =0;
; SOURCE LINE # 129
MOV sinput+02H,A
MOV sinput+03H,A
; sinput.nownum =0;
; SOURCE LINE # 130
MOV sinput+06H,A
MOV sinput+07H,A
; // sinput.total=4; // 合计需要存储4组
; // 设置屏幕的6个参数
; scanshu.hanghead =0; //起始横坐标
; SOURCE LINE # 133
MOV scanshu,A
; scanshu.liehead =0; //起始纵坐标
; SOURCE LINE # 134
MOV scanshu+01H,A
; scanshu.wide =0; //标签宽度
; SOURCE LINE # 135
MOV scanshu+02H,A
; scanshu.painum=0; //打印排数
; SOURCE LINE # 136
MOV scanshu+03H,A
; scanshu.type =0; //条码类型
; SOURCE LINE # 137
MOV scanshu+04H,A
; scanshu.comm =0; //输出串口
; SOURCE LINE # 138
MOV scanshu+05H,A
; //记住光标的位置,用于响应键盘。
; bkey =0;
; SOURCE LINE # 140
MOV bkey,A
; }
; SOURCE LINE # 141
RET
; END OF intiCpu
; //键盘扫描子程序
; unsigned char inputkey ()
RSEG ?PR?inputkey?PRINTER
inputkey:
USING 0
; SOURCE LINE # 143
; {
; SOURCE LINE # 144
; delay10ms(); //健消除抖动的延时函数
; SOURCE LINE # 145
LCALL delay10ms
; bkey=kbscan(); //键盘扫描函数
; SOURCE LINE # 146
LCALL kbscan
MOV bkey,R7
; delay10ms();
; SOURCE LINE # 147
LCALL delay10ms
; return bkey;
; SOURCE LINE # 148
MOV R7,bkey
; }
; SOURCE LINE # 149
?C0032:
RET
; END OF inputkey
;
; // 键盘扫描子程序
; unsigned char kbscan()
RSEG ?PR?kbscan?PRINTER
kbscan:
USING 0
; SOURCE LINE # 152
;---- Variable 'sccode?440' assigned to Register 'R6' ----
; {
; SOURCE LINE # 153
; unsigned char sccode,recode;
; unsigned char i;
; for (i=0;i<4;i++)
; SOURCE LINE # 156
CLR A
MOV i?442,A
?C0033:
; {
; SOURCE LINE # 157
; if(i==0)
; SOURCE LINE # 158
MOV A,i?442
JNZ ?C0036
; { /*扫描第1行*/
; SOURCE LINE # 159
; P1 = 0xFF;
; SOURCE LINE # 160
MOV P1,#0FFH
; line1 = 0;// 发0行扫描。
; SOURCE LINE # 161
CLR line1
; line2 = 1;
; SOURCE LINE # 162
SETB line2
; line3 = 1;
; SOURCE LINE # 163
SETB line3
; line4 = 1;
; SOURCE LINE # 164
SETB line4
; sccode= P1;
; SOURCE LINE # 165
MOV R6,P1
; sccode&= 0xFC;
; SOURCE LINE # 166
ANL AR6,#0FCH
;
; //本行有键按下
; if(sccode != 0xFC)
; SOURCE LINE # 169
MOV A,R6
XRL A,#0FCH
JNZ $ + 5H
LJMP ?C0035
; {
; SOURCE LINE # 170
; delay10ms();
; SOURCE LINE # 171
LCALL delay10ms
;
; sccode = P1;
; SOURCE LINE # 173
MOV R6,P1
; sccode&=0xFC;
; SOURCE LINE # 174
ANL AR6,#0FCH
;
; if(sccode !=0xFC)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -