?? mc145170.lst
字號:
C51 COMPILER V8.01 MC145170 03/16/2008 21:34:52 PAGE 1
C51 COMPILER V8.01, COMPILATION OF MODULE MC145170
OBJECT MODULE PLACED IN mc145170.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE mc145170.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /**************************************
2 MC145170D的驅動程序
3 *************************************/
4
5 #include <regx52.h>
6 #include <intrins.h>
7 #include<absacc.h>
8 //#include "lcd1602.H"
9
10 /**************************************
11 MC145170D控制引腳宏定義
12 *************************************/
13 sbit CLK = P0^0; /*MC145170時鐘*/
14 sbit DIN = P0^2; /*MC145170輸入*/
15 sbit _ENB = P0^1 ;/*MC145170片選*/
16 //sbit _ENB = P1^1 ;
17 #define Uchar unsigned char
18 #define Uint unsigned int
19 #define Ulong unsigned long
20 Uint Frequence=5500;
21 #define BaseFre 400
22 #define uint unsigned int
23 #define uchar unsigned char
24
25 uchar code DisplayBuffer[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x00,0x40,0xFF}; //顯示0到
-9和不顯示和顯示“-”負號,和顯示亂碼
26 uchar data c[8]={0,10,10,10,10,10,10,10}; //初始值為10是為了讓數碼管不顯示任何數字;c[5],c[4],c[3],c[
-2],c[1]分別顯示的萬位,千位,百位,十位,個位
27 void Delay400Ms(void)
28 {
29 1 Uchar i = 5;
30 1 Uint j;
31 1 while(i--)
32 1 {
33 2 j=7269;
34 2 while(j--);
35 2 };
36 1 }
37 // 短延時
38 void Delay5Ms(void)
39 {
40 1 Uint i = 552;
41 1 while(i--);
42 1 }
43
44 void delay_1ms() //延時?匯編是1ms
45 { int q;
46 1 for(q=300;q>0;q--);
47 1 }
48 /**************************************
49 名稱:delay vf
50 功能:延時模塊
51 輸入參數:n要延時的周期數
52 輸出參數:無
53 *************************************/
C51 COMPILER V8.01 MC145170 03/16/2008 21:34:52 PAGE 2
54 /*void delay(uint n)
55 {
56 uchar i;
57 i=n;
58 while(i--);
59 }*/
60 /**************************************
61 名稱:write_MC145170D
62 功能:MC145170D驅動模塊
63 輸出參數:CLK_mode所用時鐘數,value為向Register所送數據值
64 說明:mode=C表示要向C Register送數據,CLK=8;
65 mode=N表示要向N Register送數據,CLK=16;
66 mode=R1或R2表示要向R Register送數據,CLK=15或24;
67
68 C Register每位定義說明
69 C7 C7=HIGH時,PDout輸出正脈沖,PDout=PHR;C7=LOW時,PDout輸出負脈沖,PDout=PHV;PHR,PHV的輸出選擇,
70 C7=HIGH時PDout=PHR-PHV,C7=LOW時PDout=PHV-PHR;
71 C6 鑒相器輸出選擇 C6=HIGH時,從PDout輸出,否則從PHR,PHV輸出。
72 C5 =1時 鎖定輸出端 LD 有效
73 C4 C3 C2 REFout Frequency
74 0 0 0 dc (Static Low)
75 0 0 1 OSCin
76 0 1 0 OSCin /2
77 0 1 1 OSCin /4
78 1 0 0 OSCin /8 (POR Default)
79 1 0 1 OSCin /16
80 1 1 0 OSCin /8
81 1 1 1 OSCin /16
82 C1=1時 FVE啟動頻率輸出
83 C0=1時 fRE啟動頻率輸出
84 N Register取值范圍40 to 65535
85 R Register取值范圍5 to 32767
86 *************************************/
87 void writec(unsigned char d)
88 {
89 1 uchar i;
90 1 _ENB=1;
91 1 _nop_();
92 1 _ENB=0;//開始下降沿
93 1 _nop_();
94 1 for(i=0;i<8;i++)
95 1 { CLK=0;
96 2 d=d<<1;
97 2 DIN=CY;//將數據放好等待讀入
98 2 _nop_();
99 2 CLK=1;//將數據讀入
100 2 _nop_();
101 2 }
102 1 _ENB=1;
103 1 }
104 void write_R15(Uint r15)
105 {
106 1 uchar i,dh,dl;
107 1 dh=r15/256;
108 1 dl=r15%256;
109 1 dh=dh<<1;
110 1 _ENB=1;
111 1 _nop_();
112 1 _ENB=0;//開始下降沿
113 1 _nop_();
114 1
115 1 for(i=0;i<7;i++)
C51 COMPILER V8.01 MC145170 03/16/2008 21:34:52 PAGE 3
116 1 { CLK=0;
117 2 dh=dh<<1;
118 2 DIN=CY;//將數據放好等待讀入
119 2 _nop_();
120 2 CLK=1;//將數據讀入
121 2 _nop_();
122 2 }
123 1
124 1 for(i=0;i<8;i++)
125 1 { CLK=0;
126 2 dl=dl<<1;
127 2 DIN=CY;//將數據放好等待讀入
128 2 _nop_();
129 2 CLK=1;//將數據讀入
130 2 _nop_();
131 2 }
132 1 _ENB=1;
133 1 }
134 void write_N(Uint n)
135 {
136 1 uchar i,dh,dl;
137 1 dh=n/256;
138 1 dl=n%256;
139 1 _ENB=1;
140 1 _nop_();
141 1 _ENB=0;//開始下降沿
142 1 _nop_();
143 1
144 1 for(i=0;i<8;i++)
145 1 { CLK=0;
146 2 dh=dh<<1;
147 2 DIN=CY;//將數據放好等待讀入
148 2 _nop_();
149 2 CLK=1;//將數據讀入
150 2 _nop_();
151 2 }
152 1
153 1 for(i=0;i<8;i++)
154 1 { CLK=0;
155 2 dl=dl<<1;
156 2 DIN=CY;//將數據放好等待讀入
157 2 _nop_();
158 2 CLK=1;//將數據讀入
159 2 _nop_();
160 2 }
161 1 _ENB=1;
162 1 }
163 void write_R24(Uint r24)
164 {
165 1 uchar i,dh,dl;
166 1 dh=r24/256;
167 1 dl=r24%256;
168 1 _ENB=1;
169 1 _ENB=0;//開始下降沿
170 1
171 1 for(i=0;i<8;i++)
172 1 { CLK=0;
173 2 DIN=CY;//將數據放好等待讀入
174 2 _nop_();
175 2 CLK=1;//將數據讀入
176 2 _nop_();
177 2 }
C51 COMPILER V8.01 MC145170 03/16/2008 21:34:52 PAGE 4
178 1 for(i=0;i<8;i++)
179 1 { CLK=0;
180 2 dh=dh<<1;
181 2 DIN=CY;//將數據放好等待讀入
182 2 _nop_();
183 2 CLK=1;//將數據讀入
184 2 _nop_();
185 2 }
186 1
187 1 for(i=0;i<8;i++)
188 1 { CLK=0;
189 2 dl=dl<<1;
190 2 DIN=CY;//將數據放好等待讀入
191 2 _nop_();
192 2 CLK=1;//將數據讀入
193 2 _nop_();
194 2 }
195 1 _ENB=1;
196 1 }
197 /**************************************
198 名稱:mc145170復位函數
199 功能:主函數
200 輸入參數:無
201 輸出參數:無
202 *************************************/
203 void mc145170reset()
204 {
205 1 unsigned char i;
206 1 //4個以上脈沖
207 1 ENB=1;
208 1 for(i=0;i<10;i++)
209 1 { CLK=0;
210 2 _nop_();
211 2 DIN=0;
212 2 _nop_();
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -