📄 dat.lst
字号:
C51 COMPILER V7.06 DAT 08/18/2008 14:23:13 PAGE 1
C51 COMPILER V7.06, 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 //判断是否第一次按下,如果是第一次按下,返回0,否则返回缓冲区中对应键盘值的地址
22 //检查键盘缓冲区中是否有与参数相等数,有则返回位置,无则返回255
23 unsigned char exist(unsigned char mark)
24 {
25 1 unsigned char i=head;
26 1 if(mark>KEYNO_MAX)
27 1 return 255; //错误则返回255
28 1 while(i!=end) //正确
29 1 {
30 2 if(kb_buf[i]==mark)
31 2 return i;
32 2 i=(i+1)%16;//别忘记循环
33 2 }
34 1 return 255;
35 1 }
36 /*bit emputy()
37 {
38 return (head==end);
39 }
40 unsigned char get_end()
41 {
42 if(head!=end)
43 return kb_buf[(end-1+16)%16];
44 else
45 return 0;
46 }*/
47 //取键盘缓冲区头,头指针不变
48 unsigned char get_head_f()
49 {
50 1 if(head!=end) //不空,返回缓冲区头地址的标识
51 1 return flag[head];
52 1 else
53 1 return 255;
54 1 }
55 //取缓冲区头对应标记,标记为0表示对应键已经松下
C51 COMPILER V7.06 DAT 08/18/2008 14:23:13 PAGE 2
56 unsigned char get_head()
57 {
58 1 if(head!=end)
59 1 return kb_buf[head];//不空,返回缓冲区头地址处的值,如果缓冲区空,则返回255
60 1 else
61 1 return 255;
62 1 }
63 //删除缓冲区头
64 void del_head()//将头地址加一,也即删除缓冲区中头地址处的值
65 {
66 1 head=(head+1)%16;
67 1 }
68 //设置缓冲区对应标记
69 void set_flag(unsigned char dire)//将缓冲区中dire所对应的的缓冲单元标识设为1
70 {
71 1 flag[dire%16]=1;
72 1 }
73 unsigned char buf_length()//返回缓冲区中已被使用的缓冲单元的数目
74 {
75 1 return (end+16-head)%16;
76 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 + -