📄 ds1302.lst
字号:
C51 COMPILER V8.08 DS1302 07/17/2008 21:44:21 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE DS1302
OBJECT MODULE PLACED IN DS1302.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE DS1302.c BROWSE DEBUG OBJECTEXTEND CODE
line level source
1 #include "REG51.H"
2 #include "intrins.h"
3 #define uint unsigned int
4 #define uchar unsigned char
5 sbit DS1302_CLK = P2^2; //实时时钟时钟线引脚
6 sbit DS1302_IO = P2^3; //实时时钟数据线引脚
7 sbit DS1302_RST = P2^4; //实时时钟复位线引脚
8 sbit ACC0 = ACC^0;
9 sbit ACC7 = ACC^7;
10
11 sbit Set = P1^0; //模式切换键
12 sbit Up = P1^1; //加法按钮
13 sbit Down = P1^2; //减法按钮
14 sbit out = P1^3; //立刻跳出调整模式按钮
15 sbit K1=P1^4;
16 sbit K2=P1^5;
17 sbit DQ = P2^1; //温度传送数据IO口
18 sbit voice=P2^0;
19 uchar hide_sec,hide_min,hide_hour,hide_day,hide_week,hide_month,hide_year; //秒,分,时到日,月,年位闪的计数
20 uchar done,temp,addr;
21 uchar alarm_TimeString[6]="10:01";
22 uchar temp_value,temp1_value; //温度值
23 uchar TempBuffer[5],max_temp[4],min_temp[4],week_value[2];
24
25
26 void show_time(); //液晶显示程序
27 ///////////////////////////////////////////////////
28 /***********1602液晶显示部分子程序****************/
29 ///////////////////////////////////////////////////
30
31 //Port Definitions**********************************************************
32 sbit LcdRs = P2^5;
33 sbit LcdRw = P2^6;
34 sbit LcdEn = P2^7;
35 sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
36 void delay_key(uint a)
37 {
38 1 uint b;
39 1 for(b=0;b<a;b++);
40 1 }
41 //向LCD写入命令或数据********************************************************
42 #define LCD_COMMAND 0 // Command
43 #define LCD_DATA 1 // Data
44 #define LCD_CLEAR_SCREEN 0x01 // 清屏
45 #define LCD_HOMING 0x02 // 光标返回原点
46 void LCD_Write(bit style, uchar input)
47 {
48 1 LcdRs=style;
49 1 LcdRw=0;
50 1 P0=input;
51 1 delay_key(10); //
-为什么要延迟??
52 1 LcdEn=1;
53 1 delay_key(10);
54 1 LcdEn=0;
C51 COMPILER V8.08 DS1302 07/17/2008 21:44:21 PAGE 2
55 1 }
56
57 //设置显示模式************************************************************
58 #define LCD_SHOW 0x04 //显示开
59 #define LCD_HIDE 0x00 //显示关
60
61 #define LCD_CURSOR 0x02 //显示光标
62 #define LCD_NO_CURSOR 0x00 //无光标
63
64 #define LCD_FLASH 0x01 //光标闪动
65 #define LCD_NO_FLASH 0x00 //光标不闪动
66
67 void LCD_SetDisplay(unsigned char DisplayMode)
68 {
69 1 LCD_Write(LCD_COMMAND, 0x08|DisplayMode);
70 1 }
71
72 //设置输入模式************************************************************
73 #define LCD_AC_UP 0x02
74 #define LCD_AC_DOWN 0x00 // default
75
76 #define LCD_MOVE 0x01 // 画面可平移
77 #define LCD_NO_MOVE 0x00 //default
78
79 void LCD_SetInput(unsigned char InputMode)
80 {
81 1 LCD_Write(LCD_COMMAND, 0x04|InputMode);
82 1 }
83
84 //初始化LCD************************************************************
85 void LCD_Initial()
86 {
87 1 LcdEn=0;
88 1 LCD_Write(LCD_COMMAND,0x38); //8位数据端口,2行显示,5*7点阵 //为
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -