📄 带农历带生肖.lst
字号:
C51 COMPILER V8.17 確农繽確蒧肖 03/12/2009 15:33:20 PAGE 1
C51 COMPILER V8.17, COMPILATION OF MODULE 確农繽確蒧肖
OBJECT MODULE PLACED IN 带农历带生肖.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE 带农历带生肖.c OPTIMIZE(9,SIZE) BROWSE DEBUG OBJECTEXTEND
line level source
1 /*-----------------------------------------------------------------------------
2 单片机万年程序
3 单片机:89C52RC
4 晶振:12MHz
5 时钟芯片:DS12c887
6 液晶屏:LCM-12864-ST7920
7 时间:2009年01月22日夜
8 LCM12864使用并口连接方式
9 /-----------------------------------------------------------------------------*/
10 //头文件
11 #include <REG52.h>
12 #include <string.h>
13 #include <intrins.h>
14 #define uint unsigned int
15 #define uchar unsigned char
16 /*****************************************************************************/
17 sbit LCM_cs = P1^0;
18 sbit LCM_std = P1^1;
19 sbit LCM_sclk = P1^2;
20 sbit LCM_psb = P1^5; //H=并口; L=串口;
21 sbit LCM_rst = P1^6; //Reset Signal 低电平有效
22 sbit beep = P1^7;
23 /*****************************************************************************/
24 //温度传感器定义
25 sbit DQ = P1^ 3;//ds18B20
26 /*****************************************************************************/
27 //键盘引脚定义
28 sbit KEY_1 = P3^0; //左上
29 sbit KEY_2 = P3^1; //左下
30 sbit KEY_3 = P3^2; //右上
31 sbit KEY_4 = P3^3; //右下
32 /*定义DS12CR887数据线--------------------------------------------------------*/
33 sbit DS_CS = P3^4;
34 sbit DS_AS = P3^5;
35 sbit DS_RW = P3^6;
36 sbit DS_DS = P3^7;
37 #define Ds_Bus P2 //DS12CR887数据总线
38 //定义累加器A中的各位
39 sbit ACC0 = ACC^0;
40 sbit ACC7 = ACC^7;
41 /*****************************************************************************/
42 //定义全局变量
43 unsigned char yy,mo,dd,xq,hh,mm,ss,e;//定义时间映射全局变量(专用寄存器)
44 bit c_moon;
45 data uchar year_moon,month_moon,day_moon,week;
46 bit w = 0; //调时标志位
47 static unsigned char menu = 0;//定义静态小时更新用数据变量
48 static unsigned char keys = 0;//定义静态小时更新用数据变量
49 static unsigned char timecount = 0;//定义静态软件计数器变量
50 uchar code tab1[]={
51 " 单片机万年历 "
52 " 版本 AT89C52 "
53 "2009年01月22日夜"
54 " 钱力军制作 "
55 };
C51 COMPILER V8.17 確农繽確蒧肖 03/12/2009 15:33:20 PAGE 2
56 /****************************************************************************/
57 void DelayM(unsigned int a) //延时函数 1MS/次
58 {
59 1 unsigned char i;
60 1 while( --a != 0)
61 1 {
62 2 for(i = 0; i < 125; i++); //一个 ; 表示空语句,CPU空转。
63 2 } //i 从0加到125,CPU大概就耗时1毫秒
64 1 }
65 /****************************************************************************/
66 //函数声明
67 void LCM_WriteString(unsigned char *str) ; //写字符 例:LCM_WriteString("您好!");
68 void LCM_WriteDatOrCom(bit ,unsigned char ); //(0,指令) (1,数据)
69 void LCM_w_byte(unsigned char bbyte); //写一个字节给LCM
70 void delaynms(unsigned int di); //延时
71 void LCM_init(void); //LCM初始化
72 void LCM_clr(void); //清屏
73 void Delay(int num);
74 bit get_moon_day(uchar month_p,uint table_addr);
75 void Conversion(bit c,uchar year,uchar month,uchar day);
76 void nl();
77
78 //void ds_int(address);
79
80 void days (viod) //公历节日数据库
81 {
82 1 LCM_WriteDatOrCom(0,0x80);
83 1 LCM_WriteDatOrCom(0,0x98);
84 1 // ----|----------------|
85 1 if ( mo == 0x01 && dd == 0x01 ){ LCM_WriteString("Happy New Year!!"); }//1月
86 1 if ( mo == 0x01 && dd == 0x28 ){ LCM_WriteString(" 世界麻风日 "); }
87 1 if (month_moon== 0x01 && day_moon == 0x01 ){ LCM_WriteString(" 春节快乐 "); }//阴历日期填阴历月
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -