📄 dat.lst
字号:
C51 COMPILER V7.02a DAT 04/23/2005 11:28:03 PAGE 1
C51 COMPILER V7.02a, COMPILATION OF MODULE DAT
OBJECT MODULE PLACED IN dat.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE dat.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 unsigned char data head,end;//键盘缓冲区头地址尾地址
2 unsigned char data kb_buf[16];//键盘缓冲区,长度为16个字节,为循环缓冲区
3 unsigned char data flag[16];//键盘缓冲区16个缓冲单元的状态
4 #define KEYNO_MAX 30
5 bit insert(unsigned char a,unsigned char f) //插入缓冲区,F标记是否按下
6 //返回0表示未插入,因为缓冲区满;或者a、f超出范围;返回1表示插入成功
7 {
8 1 if((end+1)%16==head)
9 1 return 0;
10 1 if(a>KEYNO_MAX||f>1)
11 1 return 0;
12 1 kb_buf[end]=a;
13 1 flag[end]=f;
14 1 end=(end+1)%16;
15 1 return 1;
16 1 }
17 void clr_buf()
18 {
19 1 head=end=0;
20 1 }
21 unsigned char exist(unsigned char mark) //判断是否第一次按下,如果是第一次按下,返回0,否则返回缓冲区中对
-应键盘值的地址
22 {
23 1 unsigned char i=head;
24 1 if(mark>KEYNO_MAX)
25 1 return 255;
26 1 while(i!=end)
27 1 {
28 2 if(kb_buf[i]==mark)
29 2 return i;
30 2 i=(i+1)%16;
31 2 }
32 1 return 255;
33 1 }
34 /*bit emputy()
35 {
36 return (head==end);
37 }
38 unsigned char get_end()
39 {
40 if(head!=end)
41 return kb_buf[(end-1+16)%16];
42 else
43 return 0;
44 }*/
45 unsigned char get_head_f()//返回缓冲区头地址的标识
46 {
47 1 if(head!=end)
48 1 return flag[head];
49 1 else
50 1 return 255;
51 1 }
52 unsigned char get_head()//返回缓冲区头地址处的值,如果缓冲区空,则返回255
53 {
54 1 if(head!=end)
C51 COMPILER V7.02a DAT 04/23/2005 11:28:03 PAGE 2
55 1 return kb_buf[head];
56 1 else
57 1 return 255;
58 1 }
59 void del_head()//将头地址加一,也即删除缓冲区中头地址处的值
60 {
61 1 head=(head+1)%16;
62 1 }
63 void set_flag(unsigned char dire)//将缓冲区中dire所对应的的缓冲单元标识设为1
64 {
65 1 flag[dire%16]=1;
66 1 }
67 unsigned char buf_length()//返回缓冲区中已被使用的缓冲单元的数目
68 {
69 1 return (end+16-head)%16;
70 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 147 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 34 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -