?? 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 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;
; // 建立所有公用的使用參數(shù):
; //unsigned char store[12][4];
; //input store_sinput[4];
; unsigned char screen ; // 屏幕狀態(tài),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(); //輸入小數(shù)點
; 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
; // 以下是所有的子函數(shù)。
; //液晶初始化子函數(shù)、
;
; /*void intiLed()
; {
;
; }*/
;
; //打印機初始化函數(shù)
; 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; //串口發(fā)送方式3
; SOURCE LINE # 116
MOV SCON,#0D0H
; TR1 = 1;
; SOURCE LINE # 117
SETB TR1
; }
; SOURCE LINE # 118
RET
; END OF intiPri
; // 單片機初始化函數(shù)
; void intiCpu()
RSEG ?PR?intiCpu?PRINTER
intiCpu:
; SOURCE LINE # 120
; {
; SOURCE LINE # 121
;
; screen =0 ; // 屏幕狀態(tài),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個參數(shù);
; 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個參數(shù)
; 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; //打印排數(shù)
; 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(); //健消除抖動的延時函數(shù)
; SOURCE LINE # 145
LCALL delay10ms
; bkey=kbscan(); //鍵盤掃描函數(shù)
; 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;// 發(fā)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 + -