📄 bc7281.lst
字号:
C51 COMPILER V7.06 BC7281 09/06/2007 21:49:08 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE BC7281
OBJECT MODULE PLACED IN BC7281.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE BC7281.c LARGE OPTIMIZE(0,SPEED) BROWSE DEBUG OBJECTEXTEND
stmt level source
1 #define BC7281_GLOBALS
2 #include "includes.h"
3
4 // BC7281A LED显示和键盘控制 ****************************************************************/
5 // bc7281a 字节写
6
7 //R=3K3,C=20PF,OSC=2.5MHz
8 //#pragma disable //关中断
9 void Write_7281 ( unsigned char ddata ) {
10 1 unsigned char i;
11 1 unsigned int max=0;
12 1 Data_7281 = 1; //漏开置1
13 1 Clock_7281 = 0; //9us
14 1 Clock_7281 = 1;
15 1 do { // 建立握手信号,发送一系列脉冲
16 2 Clock_7281 = 0;
17 2 Delay(6);
18 2 Clock_7281 = 1;
19 2 Delay(6);
20 2 max++;
21 2 } while ( Data_7281 && (max < 1000)); // 等待bc7281a 发送低电平,表示准备好
22 1 if(max < 1000){
23 2 Clock_7281 = 0; // 15us内再发送一时钟信号
24 2 Delay(6);
25 2 Clock_7281 = 1;
26 2 Delay(6);
27 2 max = 0;
28 2 while ( (!Data_7281) && (max < 1000)){max++;}; // Data_7281 回高电平
29 2 if(max < 1000){
30 3 for( i = 0; i < 8; i ++ ) {
31 4 if ( ddata & 0x80 ) // 发送第7——0位
32 4 Data_7281 = 1;
33 4 else
34 4 Data_7281 = 0;
35 4 Delay(10);
36 4 ddata = ddata << 1; // 发送一时钟信号
37 4 Clock_7281 = 0;
38 4 Delay(6);
39 4 Clock_7281 = 1;
40 4 Delay ( 6 ); // 延时
41 4 }
42 3 }}
43 1 Data_7281 = 1; // 回高电平
44 1 Clock_7281 = 1;
45 1 Delay ( 1 );
46 1 }
47
48 // bc7281a 字节读
49 //#pragma disable //关中断
50 unsigned char Read_7281 ( void ) {
51 1 unsigned char i;
52 1 unsigned char ddata =0 ;
53 1
54 1 Data_7281 = 1; //漏开置1
55 1
C51 COMPILER V7.06 BC7281 09/06/2007 21:49:08 PAGE 2
56 1 Clock_7281 = 0; // 发送一单一握手脉冲 25us
57 1 Delay(6);
58 1 Clock_7281 = 1;
59 1 Delay(6);
60 1 i=0;
61 1 while (( Data_7281) && (i<200)){i++;}; // 等待bc7281a 发送低电平,表示准备好
62 1 if(i<200){
63 2 Data_7281 = 1; //漏开置1
64 2 Clock_7281 = 0; // 15us内再发送一时钟信号 9us
65 2 Delay(6);
66 2 Clock_7281 = 1;
67 2 Delay(6);
68 2
69 2
70 2
71 2 for ( i = 0; i < 8; i ++ ) {
72 3 Delay ( 20 );
73 3 Data_7281 = 1; //漏开置1
74 3 ddata = ddata << 1;
75 3 if ( Data_7281 ) // 接收第7——0位
76 3 ddata = ddata | 0x01;
77 3 Clock_7281 = 0; // 15 us内发送一时钟信号
78 3 Delay ( 10 );
79 3 Clock_7281 = 1;
80 3 Delay(10);
81 3
82 3 }
83 2 }
84 1 Clock_7281 = 0; // 发送一时钟信号,表示接收完毕
85 1 Delay ( 12 );
86 1 Clock_7281 = 1;
87 1 Delay ( 20 );
88 1 return ddata;
89 1 }
90
91 void BC7281Init(){
92 1 Write_7281 ( 0x12 ); // 写BC7281A工作模式寄存器
93 1 Write_7281 ( 0x8a ); // 扫描使能,扩展开关,164模式,扩展闪烁模式,输出反向,键盘工作模式为‘ 1 ’
94 1 Write_7281 ( 0x11 ); // 写闪烁速度控制寄存器
95 1 Write_7281 ( 0x80 ); // 闪烁频率 2 HZ
96 1 Write_7281 ( 0x10 ); // 初始化时,不闪烁显示
97 1 Write_7281 ( 0xFF );
98 1 Write_7281 ( 0x19 );
99 1 Write_7281 ( 0xFF );
100 1
101 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 456 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 7 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -