📄 16311.lst
字号:
C51 COMPILER V7.50 16311 05/31/2008 10:36:53 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE 16311
OBJECT MODULE PLACED IN 16311.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 16311.c BROWSE DEBUG OBJECTEXTEND
line level source
1
2 #include "define.h"
3 #include "global.h"
4 #include <regX52.H>
5 #include <intrins.h>
6
7 void _16311_DISPLAY(uchar ADDRESS,uint _DATA);
8 void _16311_DA_send(uchar _16311_value,_COMMEND);
9 extern void Initial_16311(void);
10
11 bit BZ_key;
12 uchar KEY_value;
13
14
15 //---------------发送数剧-----------
16
17 void _16311_DA_send(uchar _16311_value,_COMMEND)
18 {
19 1 uchar i;
20 1
21 1 _16311_ST=0;
22 1 for(i=0;i<8;i++)
23 1 {
24 2 _16311_CK=0;
25 2 if(_16311_value & 0x01) //从低位开始
26 2 _16311_DA=1;
27 2 else _16311_DA=0;
28 2 _16311_value>>=1;
29 2 _nop_();
30 2 _nop_();
31 2 _nop_();
32 2 _16311_CK=1;
33 2 _nop_();
34 2 _nop_();
35 2 _nop_();
36 2 }
37 1 if((_COMMEND==1) || (_COMMEND==2) || (_COMMEND==4) || (COMMEND==5))
38 1 _16311_ST=1;
39 1 else if(_COMMEND==3)
40 1 _16311_ST=0;
41 1
42 1 }
43 //--------------接收数剧-------------------
44
45 uchar _16311_DA_read(void)
46 {
47 1 uchar i;
48 1 uchar _value=0;
49 1 _nop_();
50 1 _nop_();
51 1 _nop_();
52 1 for(i=1;i<=8;i++)
53 1 {
54 2 _16311_CK=0;
55 2 _nop_();
C51 COMPILER V7.50 16311 05/31/2008 10:36:53 PAGE 2
56 2 _nop_();
57 2 _nop_();
58 2 _16311_CK=1;
59 2 _nop_();
60 2 _nop_();
61 2 _nop_();
62 2 _value>>=1;
63 2 _nop_();
64 2 _nop_();
65 2 _nop_();
66 2 if(_16311_DA==1)
67 2 _value=_value | 0x80;
68 2 }
69 1 return _value;
70 1 }
71
72
73 //--------------------接收按键数剧-------------------
74 //--此函数通过KEY_value变量与BZ_key变量与外界联系。
75 //---KEY_value为键值,BZ_key有按键按下的标志变量(用来判断是面板按键还是遥控器按键),
76 void _16311_read_key(void)
77 {
78 1 uchar i,r,f,TEMP_KEY_VALUE[6];
79 1 static uchar _key_temp;
80 1 //---------------------------------------------------------------------------
81 1
82 1 _16311_DA_send(0x42,3); //使能按键扫描(连扫).后面的3代表最
83 1 //后不发送高电平ST信号,直接读取键值.
84 1 _16311_DA=1;
85 1 for(i=0;i<6;i++)
86 1 {
87 2 TEMP_KEY_VALUE[i]=_16311_DA_read();
88 2
89 2 if(TEMP_KEY_VALUE[i]>0x00) //continue;
90 2 {
91 3 f=i;
92 3 r=(f<<4)|f;
93 3 KEY_value=TEMP_KEY_VALUE[i]+r;
94 3 if(_key_temp==KEY_value) { BZ_key=0; _16311_ST=1; return; }//果上一次的键值与此次一样就返回。
95 3 else { _key_temp=KEY_value; BZ_key=1; _16311_ST=1; return; }
96 3 }
97 2 else if(i<=5){continue;}
98 2 else {_16311_ST=1; BZ_key=0;return;}
99 2 }
100 1 }
101 //--------------------发送显示数据--------------------
102
103 void _16311_DISPLAY(uchar ADDRESS,uint _DA)
104 {
105 1 uchar Add,y;
106 1
107 1 _16311_DA_send(0x40,2);//设置为自动地址.
108 1
109 1 Add=(0xC0 | ADDRESS); //0XC0代表是地址指令,指令与地址加在一起后做为整条指令发送。
110 1 _16311_DA_send(Add,3); //发送地址命令模式。
111 1 _16311_DA_send(_DA,3); //发送数据
112 1 _16311_DA_send(_DA>>8,5);
113 1 _16311_DA_send(0x0C,1); //初始化命令1:15段13位。
114 1 _16311_DA_send(0x8F,4);//开显示
115 1 for(y=0;y<120;y++)
116 1 ;
117 1 }
C51 COMPILER V7.50 16311 05/31/2008 10:36:53 PAGE 3
118
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 234 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 6
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -