📄 ocmj15x20d.lst
字号:
C51 COMPILER V8.08 OCMJ15X20D 11/16/2007 18:23:56 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE OCMJ15X20D
OBJECT MODULE PLACED IN OCMJ15X20D.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE OCMJ15X20D.c COMPACT BROWSE DEBUG OBJECTEXTEND
line level source
1 /*本程序实现金鹏电子的OCMJ15X20D液晶模块的驱动显示功能
2 模块的默认控制芯片为8080系列
3 */
4 #include <STDIO.H>
5 #include <STC12C5410AD.H>
6 #include<MATH.H>
7 #include<Key.H> //按键定义
8
9 /*LCM模块内部寄存器定义 */
10
11 #define WLCR 0x00
12 #define MISC 0x01
13 #define APSR 0x02
14 #define ADSR 0x03
15 #define WCCR 0x10
16 #define DWR 0x11
17 #define MAMR 0x12
18
19 #define DWRR 0x21
20 #define DWBR 0x31
21 #define DWLR 0x41
22 #define DWTR 0x51
23 #define AWRR 0x20
24 #define AWBR 0x30
25 #define AWLR 0x40
26 #define AWTR 0x50
27 #define CPXR 0x60
28 #define CPYR 0x70
29 #define BGCM 0x71
30 #define EDCM 0x72
31 #define BTR 0x80
32 #define SCCR 0x90
33 #define INTR 0xA0
34 #define KSCR 0xA1
35 #define KSDR 0xA2
36 #define KSER 0xA3
37 #define INTX 0xB0
38 #define INTY 0xB1
39 #define TPCR 0xC0
40 #define TPSR 0xC1
41 #define TPXR 0xC8
42 #define TPYR 0xC9
43 #define TPZR 0xCA
44 #define PNTR 0xE0
45 #define FNCR 0xF0
46 #define FVHT 0xF1
47 #define DWRR 0x21
48 #define DWBR 0x31
49 #define DWTR 0x51
50 #define CPXR 0x60
51
52
53 /*坐标Y轴 上下限定义和X轴上下限定义 */
54 /*对于液晶屏,其左上角为坐标原点,编程时需注意 */
55 #define zbYMax 20
C51 COMPILER V8.08 OCMJ15X20D 11/16/2007 18:23:56 PAGE 2
56 #define zbYMin 214
57 #define zbXMax 29
58 #define zbXMin 8
59
60 sfr LedDATA=0xA0; //P2与液晶模块的数据接口相连
61
62 //P3与液晶模块的各控制位相连
63 sbit lcd_rs=P3^4; //H:存取DDRAM,L:存取缓存器
64 sbit lcd_wr=P0^2; //写入引脚,低电平有效
65 sbit lcd_rd=P0^3; //读入脚,低电平有效
66 sbit lcd_cs1=P0^1; //CS1为低和CS2为高时,模块处于置能状态,可接受指令反之不能
67 sbit lcd_cs2=P0^0;
68 sbit lcd_busy=P3^5; //用于 回应模块内部的执行和使用状况,可设成高或低电平触发
69 sbit lcd_INT=P3^7; //中断信号
70
71
72 //LCM初始化时需要赋值的寄存器
73 unsigned char lcmInitTabReg[39]={0x00,0x01,0x02,0x03,0x10,0x11,0x12,0x21,0x31,0x41,
74 0x51,0x20,0x30,0x40,0x50,0x60,0x61,0x70,0x71,0x72,
75 0x80,0x81,0x91,0x90,0xA0,0xA1,0xA2,0xA3,0xB0,0xB1,
76 0xC0,0xC1,0xC8,0xC9,0xCA,0xD0,0xE0,0xF0,0xF1};
77 //LCM初始化时寄存器中的值
78 unsigned char lcmInitTabDat[39]={0xC9,0xF2,0x10,0x80,0x6B,0x00,0x91,0x27,0xEF,0x00,
79 0x00,0x27,0xEF,0x00,0x00,0x00,0x00,0x00,0x00,0xEF,
80 0x01,0x00,0x00,0x06,0x08,0x00,0x00,0x00,0x27,0xEF,
81 0x00,0x0A,0x80,0x80,0x00,0x80,0x00,0xA0,0x0F};
82 //LCM中数字的内码分别对应0,1,2,3,4,5,6,7,8,9,.
83 unsigned char lcmNumCode[11]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0x2E};
84
85
86 //函数定义
87
88 void lcd_regwr(unsigned char regnada); //向LCM模块的缓存区(控制寄存器)写数据
89 void lcd_datawrite(unsigned char wrdata); //向LCM模块的DDRAM写数据
90 unsigned char lcd_regread(unsigned char regname); //读取LCM中寄存器的数据
91 void lcd_regwrite(unsigned char regname,unsigned char regdata); //向LCM模块写指令
92 void LCM__Initial(); //LCM模块初始化
93 void PORT_Initial(); //端口初始化
94 void LCM_Clr(); //液晶模块清屏
95 void dispInitial(); //初始化子程序
96 void LCM_WRZB(unsigned char LCM_X,unsigned char LCM_Y); //设定光标地址子程序
97 void Delay(unsigned char DelayTM); //延时子程序,延时 单位为ms
98 void drawOrign(); //在液晶模块中画坐标系子程序
99 unsigned char lcd_DDRread(unsigned char orginX,unsigned char orginY); //读取LCM中DDRAM的数据,输入坐标值
100 void drawPoint(unsigned char pointX,unsigned char pointY); //LCM描点子函数(对图层2操作)
101 void drawWave(); //画波形测试程序
102 void displayItemName();//显示采集数据的项目名称
103 void displayVoltage(float voltage); //显示采集电压
104 void displayFloat(float FloatVal,unsigned char orignX,unsigned orignY); //显示小数
105
106 void displayFloat2(float FloatVal,unsigned char orignX,unsigned orignY); //显示两位小数
107 void displayFloat4(float FloatVal,unsigned char orignX,unsigned orignY); //显示一位数和三位整数
108 void displaySignFloat(float FloatVal,unsigned char orignX,unsigned orignY); //显示带符号的浮点数(显示
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -