📄 pt6964.lst
字号:
C51 COMPILER V7.06 PT6964 12/19/2007 09:52:38 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE PT6964
OBJECT MODULE PLACED IN .\obj\PT6964.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Source\PT6964.C LARGE OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND PRINT(.\l
-st\PT6964.lst) OBJECT(.\obj\PT6964.obj)
stmt level source
1 //---------------------------------------------------------------------------
2 // YuXiang Inc. Company Confidential Strictly Private
3 // main.c
4 // $Archive: PT6964.c $
5 // $Revision: 0.1 $
6 // $Author: YuCheng $
7 // $Date: 2005/08/19 16:15:51 $
8 //
9 // --------------------------------------------------------------------------
10 // >>>>>>>>>>>>>>>>>>>>>>>>> COPYRIGHT NOTICE <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
11 // --------------------------------------------------------------------------
12 // Copyright 2005(c) YuXiang Inc.
13 // This is an unpublished work.
14 // --------------------------------------------------------------------------
15 #include <intrins.h>
16 #include "includes.h"
17 #include "serial.h"
18 #include "PT6964.h"
19 #include "PCF8563.h"
20
21 //---------------------------------------------------------------------------
22 //指令和数据操作
23 //---------------------------------------------------------------------------
24 //--------------------------------------------------------------------------
25 // Write Command to LCM
26 //--------------------------------------------------------------------------
27 INT8U Disp_Tab[18] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71,0x7
-3,0x78};
28 bit LED_Dip_enable;
29 //--------------------------------------------------------------------------
30 // WriteData
31 //--------------------------------------------------------------------------
32 void WriteData(INT8U Value)
33 {
34 1 INT8U i;
35 1
36 1 for(i=0;i<8;i++)
37 1 {
38 2 if(Value & 0x01)
39 2 PT6964_DIN_H;
40 2 else
41 2 PT6964_DIN_L;
42 2
43 2 PT6964_CLK_L;
44 2 PT6964_CLK_H;
45 2 Value >>= 1;
46 2 }
47 1 }
48 //--------------------------------------------------------------------------
49 // Write_Adr_Data to LCM
50 //--------------------------------------------------------------------------
51 void Write_Adr_Data(INT8U addr, INT8U value) reentrant
52 {
53 1 PT6964_STB_L;
C51 COMPILER V7.06 PT6964 12/19/2007 09:52:38 PAGE 2
54 1 WriteData(0x44);
55 1 PT6964_STB_H;
56 1
57 1 PT6964_STB_L;
58 1 WriteData(addr|0xc0);
59 1 WriteData(value);
60 1 PT6964_STB_H;
61 1 }
62 //--------------------------------------------------------------------------
63 //--------------------------------------------------------------------------
64 // Clear6961RAM
65 //--------------------------------------------------------------------------
66 void Clear6964RAM(void)
67 {
68 1 char i;
69 1
70 1 PT6964_STB_L;
71 1 WriteData(0x40); //Command 1, increment address
72 1 PT6964_STB_H;
73 1
74 1 PT6964_STB_L;
75 1 WriteData(0xc0); //Command 2, RAM address = 0
76 1 for(i=0;i<=0x0D;i++) //22 bytes
77 1 WriteData(0x00);
78 1 PT6964_STB_H;
79 1 }
80
81 //--------------------------------------------------------------------------
82 // PT6964_Init
83 //--------------------------------------------------------------------------
84 void PT6964_Init(void)
85 {
86 1
87 1 PT6964_STB_H; //Initial state
88 1 PT6964_CLK_H; //Intial state
89 1
90 1 Clear6964RAM();
91 1
92 1 PT6964_STB_L;
93 1 WriteData(0x03); //7 digit
94 1 PT6964_STB_H;
95 1
96 1 PT6964_STB_L;
97 1 WriteData(0x8a); //Command 3, Display ON
98 1 PT6964_STB_H;
99 1 }
100
101
102 //--------------------------------------------------------------------------
103 // Write Command to LCM
104 //--------------------------------------------------------------------------
105 void LED_DISP(INT8U Led_value,INT8U Led_bit) reentrant
106 {INT8U temp;
107 1 if(Led_value<18)
108 1 { temp=Led_value&0x1f;
109 2 PT6964_STB_L;
110 2 WriteData(0x44); //
111 2 PT6964_STB_H;
112 2 switch(Led_bit)
113 2 {case 1:Write_Adr_Data(0x00, Disp_Tab[temp]);break;
114 3 case 2:Write_Adr_Data(0x02, Disp_Tab[temp]);break;
115 3 case 3:Write_Adr_Data(0x04, Disp_Tab[temp]);break;
C51 COMPILER V7.06 PT6964 12/19/2007 09:52:38 PAGE 3
116 3 case 4:Write_Adr_Data(0x06, Disp_Tab[temp]);break;
117 3 case 5:Write_Adr_Data(0x08, Disp_Tab[temp]);break;
118 3 case 6:Write_Adr_Data(0x0a, Disp_Tab[temp]);break;
119 3 default: break;
120 3 }
121 2 Write_Adr_Data(0x0c, 0x8a);
122 2 }
123 1 }
124
125 void LED_PT6964(void) reentrant
126 {
127 1 INT8U temp1,temp2;
128 1
129 1 temp2=T_Hour&0x0f;
130 1 temp1=T_Hour>>4& 0x03;
131 1 LED_DISP(temp1,1);
132 1 LED_DISP(temp2,2);
133 1
134 1 temp2=T_Minute&0x0f;
135 1 temp1=(T_Minute>>4)&0x07;
136 1 LED_DISP(temp1,3);
137 1 LED_DISP(temp2,4);
138 1
139 1 temp2=T_Second&0x0f;
140 1 temp1=(T_Second>>4)&0x07;
141 1 LED_DISP(temp1,5);
142 1 LED_DISP(temp2,6);
143 1 }
144
145 void LED_Dip_Event(void) reentrant
146 {
147 1 LED_PT6964();
148 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 394 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = 18 ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -