📄 printer.lst
字号:
C51 COMPILER V7.06 PRINTER 03/04/2008 10:55:52 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE PRINTER
OBJECT MODULE PLACED IN printer.OBJ
COMPILER INVOKED BY: D:\Program Files\keil c\C51\BIN\C51.EXE printer.C BROWSE DEBUG OBJECTEXTEND SRC(.\printer.SRC)
stmt level source
1 /*------------------------------------------------------------------------------
2 CSAMPLE1.C
3 Copyright 1995-1999 Keil Software, Inc.
4 ------------------------------------------------------------------------------*/
5 //#include <reg51.h> /* define 8051 registers */
6 #include <stdio.h> /* define I/O functions */
7 #include <math.h>
8 // 打印机厂家需要的头文件
9 #include<reg52.h>
10 #include<string.h>
11 // 加入自己定义的头文件。
12 #include "lyj.h"
13 //加入液晶厂家的显示公用头文件
14 #include "led.h"
15 #include "I2C.h"
16 extern unsigned int getnumber (void);
17 //unsigned int i=0;
18 extern void output (unsigned int);
19 //处理完毕所有的键盘输入;
20 unsigned int total = 4 ; // 合计需要存储4组
21 input sinput;
22 canshu scanshu;
23 // 建立所有公用的使用参数:
24 //unsigned char store[12][4];
25 //input store_sinput[4];
26 unsigned char screen ; // 屏幕状态,0是主屏,1是打印屏,2是设置屏1,3是设置屏2.
27 unsigned char bkey ; // 获得的键值
28 unsigned char Revbuffer[10];
29 void main (void)
30 {
31 1
32 1 // 初始化液晶
33 1 LcmInit();
34 1 //初始化打印机
35 1 intiPri();
36 1 //初始化单片机
37 1 intiCpu();
38 1 restoreConfig();
39 1 // intiLed();
40 1 // 开机显示画面;
41 1 showLcd(0);
42 1 while (1)
43 1 {
44 2 bkey = inputkey();
45 2 switch (bkey) //如果有键盘按下
46 2 {
47 3 case 1: inputnum(0);
48 3 break ;
49 3 case 2: inputnum(1);
50 3 break ;
51 3 case 3: inputnum(2);
52 3 break ;
53 3 case 4: inputnum(3);
54 3 break ;
55 3 case 5: inputnum(4);
C51 COMPILER V7.06 PRINTER 03/04/2008 10:55:52 PAGE 2
56 3 break ;
57 3 case 6: inputnum(5);
58 3 break ;
59 3 case 7: inputnum(6);
60 3 break ;
61 3 case 8: inputnum(7);
62 3 break ;
63 3 case 9: inputnum(8);
64 3 break ;
65 3 case 10: inputnum(9);
66 3 break ;
67 3 case 11: inputnod(); //输入小数点
68 3 break ;
69 3 case 12: inputf1(); //输入F1键 存储
70 3 break ;
71 3 case 13: inputf2(); // 打印。
72 3 break ;
73 3 case 14: inputf3();
74 3 break ;
75 3 case 15: inputf4();
76 3 break ;
77 3 case 16: inputok(); //输入确定键
78 3 break ;
79 3 case 17: inputesc(); //输入取消键
80 3 break ;
81 3 case 18: inputback(); //输入backspace 键
82 3 break ;
83 3 case 19: inputqie(); //切换键
84 3 break ;
85 3 case 20: inputup(); //向上键
86 3 break ;
87 3 case 21: inputdown(); //向下键
88 3 break ;
89 3 case 22: inputlink(); //连接键 无用
90 3 break ;
91 3 case 23: inputlyj1(); //备用键1
92 3 break ;
93 3 case 24: inputlyj2(); //备用键2
94 3 break ;
95 3 default : break ;} //end of switch */
96 2 }// end of while
97 1 // 所有键盘的处理程序完成。
98 1 }// end of main
99 // 以下是所有的子函数。
100 //液晶初始化子函数、
101
102 /*void intiLed()
103 {
104
105 }*/
106
107 //打印机初始化函数
108 void intiPri()
109 {
110 1 // SP = 0xA0;
111 1 // IE = 0x1B;
112 1 TH1=0xe8; //波特率2400
113 1 TL1=0xe8; //波特率2400
114 1 //TH1=253; //波特率9600
115 1 TMOD=32; //串口设置,定时器1,方式2
116 1 SCON=0xd0; //串口发送方式3
117 1 TR1 = 1;
C51 COMPILER V7.06 PRINTER 03/04/2008 10:55:52 PAGE 3
118 1 }
119 // 单片机初始化函数
120 void intiCpu()
121 {
122 1
123 1 screen =0 ; // 屏幕状态,0是主屏,1是设置屏 ,2是打印屏
124 1 Page =0;
125 1 Col=0; //光标默认位置是0.0
126 1 // 输入屏幕5个参数;
127 1 sinput.bianma =0;
128 1 sinput.num =0;
129 1 sinput.price =0;
130 1 sinput.nownum =0;
131 1 // sinput.total=4; // 合计需要存储4组
132 1 // 设置屏幕的6个参数
133 1 scanshu.hanghead =0; //起始横坐标
134 1 scanshu.liehead =0; //起始纵坐标
135 1 scanshu.wide =0; //标签宽度
136 1 scanshu.painum=0; //打印排数
137 1 scanshu.type =0; //条码类型
138 1 scanshu.comm =0; //输出串口
139 1 //记住光标的位置,用于响应键盘。
140 1 bkey =0;
141 1 }
142 //键盘扫描子程序
143 unsigned char inputkey ()
144 {
145 1 delay10ms(); //健消除抖动的延时函数
146 1 bkey=kbscan(); //键盘扫描函数
147 1 delay10ms();
148 1 return bkey;
149 1 }
150
151 // 键盘扫描子程序
152 unsigned char kbscan()
153 {
154 1 unsigned char sccode,recode;
155 1 unsigned char i;
156 1 for (i=0;i<4;i++)
157 1 {
158 2 if(i==0)
159 2 { /*扫描第1行*/
160 3 P1 = 0xFF;
161 3 line1 = 0;// 发0行扫描。
162 3 line2 = 1;
163 3 line3 = 1;
164 3 line4 = 1;
165 3 sccode= P1;
166 3 sccode&= 0xFC;
167 3
168 3 //本行有键按下
169 3 if(sccode != 0xFC)
170 3 {
171 4 delay10ms();
172 4
173 4 sccode = P1;
174 4 sccode&=0xFC;
175 4
176 4 if(sccode !=0xFC)
177 4 {
178 5 sccode=P1;
179 5 sccode&=0xFC;
C51 COMPILER V7.06 PRINTER 03/04/2008 10:55:52 PAGE 4
180 5
181 5 switch(sccode)
182 5 {
183 6 case 0x7C:
184 6 recode=1;break;
185 6 case 0xBC:
186 6 recode=2;break;
187 6 case 0xDC:
188 6 recode=3;break;
189 6 case 0xEC:
190 6 recode=4;break;
191 6 case 0xF4:
192 6 recode=5;break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -