📄 pp51.lst
字号:
C51 COMPILER V8.04 PP51 09/07/2006 16:47:53 PAGE 1
C51 COMPILER V8.04, COMPILATION OF MODULE PP51
OBJECT MODULE PLACED IN pp51.OBJ
COMPILER INVOKED BY: c:\Program files\Keil\C51\BIN\C51.EXE pp51.C DEBUG OBJECTEXTEND
line level source
1 //液晶时钟////
2 //01/02/2005//
3 /////////////
4 //2005年1月2日编写,已试通过
5 #include <reg51.h>
6 #include <intrins.h>
7
8 typedef unsigned char BYTE;
9 typedef unsigned int WORD;
10 typedef bit BOOL ;
11 //函数原型声明
12 void display();
13 void Key_CuLi();
14 #define LCDDATA P1
15 #define KEYSCAN P0
16
17 bit y=0;//运行、设置标志位 0:运行状态 1:时间设置状态
18
19 //定义LCD模块控制线
20 sbit rs = P3^4; //
21 sbit rw = P3^3;
22 sbit ep = P3^2;
23
24 //定义键扫描输入线
25 sbit KEYSCAN_4=KEYSCAN^4;
26 sbit KEYSCAN_5=KEYSCAN^5;
27 sbit KEYSCAN_6=KEYSCAN^6;
28 sbit KEYSCAN_7=KEYSCAN^7;
29
30 //BYTE code dis1[] = {"pp51.com"};
31 BYTE code dis1[] = {"0123456789:"};//显示码
32 BYTE code dis2[] = {"http://pp51.com"};
33 BYTE code *prt[6]={dis1,dis1,dis1,dis1,dis1,dis1};//指针数组,依次指向秒,分,小时显示的内容
34 BYTE code addr[]={0x0d,0x0a,0x07};//依次为秒,分,小时的显示位置
35
36 BYTE time5ms,timesec,timemin,timehour;//定义全局时间变量
37 BYTE i=0;//,q=0;//i决定更改时间的哪一位,q决定指定位的为数值
38 BYTE time5ms2,timesec1;//定时器1的时间变量
39 //**************************************************
40 // 延时子程序
41 delay(BYTE ms)
42 {
43 1 BYTE i;
44 1 while(ms--)
45 1 {
46 2 for(i = 0; i< 82; i++)
47 2 {
48 3 _nop_();
49 3 _nop_();
50 3 _nop_();
51 3 //_nop_();
52 3 }
53 2 }
54 1 }
55 //****************************************************
C51 COMPILER V8.04 PP51 09/07/2006 16:47:53 PAGE 2
56 // 测试LCD忙碌状态
57 BOOL lcd_bz()
58 {
59 1 BOOL result;
60 1 rs = 0;
61 1 rw = 1;
62 1 ep = 1;
63 1 _nop_();
64 1 _nop_();
65 1 _nop_();
66 1 _nop_();
67 1 result = (BOOL)(LCDDATA & 0x80);
68 1 ep = 0;
69 1 return result;
70 1 }
71 //************************************************
72 // 写入指令数据到LCD
73 lcd_wcmd(BYTE cmd)
74 {
75 1 while(lcd_bz());
76 1 rs = 0;
77 1 rw = 0;
78 1 ep = 0;
79 1 // _nop_();
80 1 // _nop_();
81 1 LCDDATA = cmd;
82 1 // _nop_();
83 1 // _nop_();
84 1 // _nop_();
85 1 // _nop_();
86 1 ep = 1;
87 1 _nop_();
88 1 _nop_();
89 1 // _nop_();
90 1 // _nop_();
91 1 ep = 0;
92 1 }
93 //*****************************************************
94 //设定显示位置
95 lcd_pos(BYTE pos)
96 {
97 1 lcd_wcmd(pos | 0x80);
98 1 }
99 //****************************************************
100 //写入字符显示数据到LCD
101 lcd_wdat(BYTE dat)
102 {
103 1 while(lcd_bz());
104 1 rs = 1;
105 1 rw = 0;
106 1 ep = 0;
107 1 LCDDATA = dat;
108 1 // _nop_();
109 1 // _nop_();
110 1 // _nop_();
111 1 // _nop_();
112 1 ep = 1;
113 1 _nop_();
114 1 _nop_();
115 1 // _nop_();
116 1 // _nop_();
117 1 ep = 0;
C51 COMPILER V8.04 PP51 09/07/2006 16:47:53 PAGE 3
118 1 }
119 //********************************************************
120 //LCD初始化设定
121 lcd_init()
122 {
123 1 lcd_wcmd(0x38); //置功能:2行,5×7字符
124 1 //delay(1);
125 1 lcd_wcmd(0x06); //0x0c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -