📄 lcd_drv.lst
字号:
C51 COMPILER V8.08 LCD_DRV 11/05/2007 16:50:32 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE LCD_DRV
OBJECT MODULE PLACED IN lcd_drv.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE lcd_drv.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*========================================================================================
2 project : PCF8576CT驱动4背极段码液晶显示器
3 Developer : Laputa
4 Date : 07.4.12
5
6 ===========================================================================================*/
7
8 #include "STC89C51RC_RD_PLUS.H"
9 #include "VI2C_C51.h"
10 #include "LCD_DRV.h "
11
12
13 //===================================================================================
14 // 定义真值表
15 uint8 code asc[] ={0x7B,0x60,0X5E,0X7C,0X65,0X3D,0X3F,0X70,0X7F,0X7D};
16 /*======================================================================================
17 ///////////////////////// 延时 /////////////////////////////////////////////////////
18 ======================================================================================*/
19 void Delay(unsigned int Delx)
20 {
21 1 unsigned int i=0;
22 1 while(i<Delx)
23 1 i++;
24 1 }
25
26 /*======================================================================================
27 ////////////////////// 设定模式 /////////////////////////////////////////////////////
28 ======================================================================================*/
29 void SetMode(uint8 device,uint8 work_mode)
30 {
31 1 device=(device&DEVICE_LIMIT)|DEVICE_SELECT|COMMAND;
32 1 ISendByte(PCF8576,device); //选择器件
33 1
34 1 work_mode=work_mode|MODE;
35 1 ISendByte(PCF8576,work_mode); //设定模式
36 1 }
37 /*======================================================================================
38 ////////////////////// 闪烁设定 /////////////////////////////////////////////////////
39 ======================================================================================*/
40
41 void SetBlink(uint8 device,uint8 blink_mode)
42 {
43 1 device=(device&DEVICE_LIMIT)|DEVICE_SELECT|COMMAND;
44 1 ISendByte(PCF8576,device); //选择器件
45 1 blink_mode=blink_mode|BLINK;
46 1 ISendByte(PCF8576,blink_mode); //设定模式
47 1 }
48
49 /*======================================================================================
50 ////////////////////// 显示数据 /////////////////////////////////////////////////////
51 ======================================================================================*/
52 void Display(uint8 device,uint8 address,uint8 Data)
53 {
54 1 device=(device&DEVICE_LIMIT)|DEVICE_SELECT|DATA;
55 1 ISendByte(PCF8576,device);
C51 COMPILER V8.08 LCD_DRV 11/05/2007 16:50:32 PAGE 2
56 1 ISendStr(PCF8576,address,&Data,1);
57 1 }
58 /*======================================================================================
59 ////////////////////// 清屏 /////////////////////////////////////////////////////
60 ======================================================================================*/
61 void ClearLCD(void)
62 {
63 1 uint8 i;
64 1 for (i=0;i<29;i+=2)
65 1 Display(0x00,i,0x00);
66 1 }
67 /*======================================================================================
68 /////////////////////PCF8576 初始化/////////////////////////////////////////////////////
69 ======================================================================================*/
70 void PCF8576Init(void)
71 {
72 1 Delay(800); //1/3 偏压,4 背极,禁止闪烁
73 1 SetMode(0X00, 0X08);
74 1 SetBlink(0X00,0X00);
75 1 ClearLCD();
76 1 }
77
78 /*======================================================================================
79 ////////////////////// 显示0~9 /////////////////////////////////////////////////////
80 ======================================================================================*/
81 void PutChar(uint8 ascii_code,uint8 address,uint8 col)
82 {
83 1 if(col==0)Display(0x00,address,asc[(ascii_code-0x30)]);
84 1 else Display(0x00,address,asc[(ascii_code-0x30)]|COLON);
85 1 }
86 /*====================================================================================================
87
88 ---- |----------| ---- 真值表
89 | | | 3 | | |
90 |7 | |----------| | 1|
91 | | | |
92 | | | |
93 | | | |
94 |--| |----------| |--|
95 | 5 |
96 |----------|
97 |--| |--|
98 | | | |
99 | | | |
100 |6 | | 2|
101 | | | |
102 |--| |----------| |--|
103 | 4 |
104 |----------| .== 0
105
106 ----------------------------------------------------------------------------------------------------
107 1 2 3 4 5 6 7 8 9 0
108
109 0x03 0x5e 0x7c 0x65 0x3d 0x3f 0x70 0x7f 0x7d 0x7b
110 ----------------------------------------------------------------------------------------------------
111
112
113 ------------------------------------------------------------
114 _ _ _ 上上月反总尖峰平谷 |
115 |_| |_| |_| 5 |
116 |_| |_| |_| |
117 1 2 3 | 显示顺序
C51 COMPILER V8.08 LCD_DRV 11/05/2007 16:50:32 PAGE 3
118 |
119 _ _ _ _ _ _ _ _ |
120 |_| |_| |_| |_| |_| |_| |_| |_| |
121 |_| |_| |_| |_| |_| |_| |_| |_| |
122 |
123 0 13 12 11 9 8 7 6 |
124 |
125 |
126 123 @ == KWH |
127 10 4 |
128 ------------------------------------------------------------
129
130
131 -------------------------------------------------------------------------------------------------------*/
132
133
134
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 175 ----
CONSTANT SIZE = 10 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 7
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 + -