📄 smg_buffwrite.lst
字号:
C51 COMPILER V7.06 SMG_BUFFWRITE 11/06/2008 01:10:24 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE SMG_BUFFWRITE
OBJECT MODULE PLACED IN smg_BuffWrite.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE c51\smg_BuffWrite.c INCDIR(.\Target\INC\) DEBUG OBJECTEXTEND PRINT(.\smg_Bu
-ffWrite.lst) OBJECT(smg_BuffWrite.obj)
stmt level source
1
2
3 #include "AT89X52.h"
4 #include "ES51_II.h"
5 #include "ES51_II_LIB.h"
6
7
8
9 // 数码管显示缓冲区;可直接操作此缓冲区控制数码管显示
10 extern unsigned char SMG_BUFF[4];
11 // 不带小数点
12 extern unsigned char code SMG_TABLE[16];
13 // 带小数点
14 extern unsigned char code SMG_TABLE_DP[16];
15
16
17
18 // 写数码管显示缓冲区,ASCII码,只允许写0~9;
19 // index: 修改缓冲区的起始地址,范围1~4;
20 // length: 修改的长度,范围1~4,根据索引值不同,取值范围不同;
21 // dp: 显示是否带小数点,0:不带小数点显示;1:带小数点显示;
22 // *dat: 为数据的首地址;
23 void SMGBuffWrite(unsigned char index,unsigned char length,bit dp,unsigned char *dat)
24 {
25 1 unsigned char *psmgbuff;
26 1 if( (index+length) < 6 ) // 判断是否会导致显示缓冲区溢出
27 1 { // 若不会导致显示缓冲区溢出,写缓冲区;否则,放弃
28 2 psmgbuff = &SMG_BUFF[0]+(index-1);
29 2 for( ; length>0; length--,psmgbuff++,dat++)
30 2 {
31 3 if( dp == 0 ) // 不带小数点
32 3 *psmgbuff = SMG_TABLE[*dat-0x30];
33 3 else // 带小数点显示
34 3 *psmgbuff = SMG_TABLE_DP[*dat-0x30];
35 3 }
36 2 }
37 1 }
38
39
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 100 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 8
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 + -