?? f-count.lst
字號:
C51 COMPILER V8.02 F_COUNT 08/21/2008 16:09:26 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE F_COUNT
OBJECT MODULE PLACED IN F-count.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE F-count.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /*****************************************************
2 * 頻率計 *
3 * 采用中斷方式,即來一個脈沖,計數一次。 *
4 * 動態掃描顯示 *
5 * *
6 * *
7 * 制作組成員:張君波,張意,郭遠昊 *
8 * 時間:08/8/17 *
9 * *
10 ******************************************************/
11
12
13 #include <reg51.h>
14 #include<stdio.h>
15
16 #define uchar unsigned char
17 #define uint unsigned int
18
19 Uart_Init();
20 sbit P20=P2^0 ;
21 sbit P21=P2^1;
22 sbit P22=P2^2;
23 sbit P23=P2^3;
24
25 uint t=0,nIndex=0,count=0,k,k1,k2;
26 char Table[10]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
27
28 void delay_ms(uint ms) //延時毫秒級子程序
29 {
30 1 uint i,j;
31 1 for(i=0;i<ms;i++)
32 1 for(j=0;j<125;j++);
33 1 }
34
35 void Update_LED()
36 {
37 1
38 1 nIndex=k/1000;
39 1 P1=Table[nIndex];
40 1 P20=1;
41 1 delay_ms(1);
42 1 P20=0;
43 1
44 1
45 1
46 1 nIndex=(k%1000)/100;
47 1 P1=Table[nIndex];
48 1 P21=1;
49 1 delay_ms(1);
50 1 P21=0;
51 1
52 1
53 1
54 1 nIndex=(k%100)/10;
55 1 P1=Table[nIndex];
C51 COMPILER V8.02 F_COUNT 08/21/2008 16:09:26 PAGE 2
56 1 P22=1;
57 1 delay_ms(1);
58 1 P22=0;
59 1
60 1
61 1
62 1 nIndex=k%10;
63 1 P1=Table[nIndex];
64 1 P23=1;
65 1 delay_ms(1);
66 1 P23=0;
67 1
68 1 }
69
70
71
72 void jishu()
73 {
74 1 k1=TH1;
75 1 k2=TL1;
76 1 count=k1*256+k2;
77 1 }
78 void Timer0_Overflow() interrupt 1 using 0
79 { TH0=0x3C; /* 計數初值寫入TH0 */
80 1 TL0=0xB0;/* 寫入計數初值到TL0 */
81 1 if(t==20)
82 1 {
83 2 t=0;
84 2 jishu();
85 2 k=count;
86 2 EA=0;
87 2 ET0=0;
88 2 //Update_LED();
89 2 EA=1;
90 2 ET0=1;
91 2 TH1=0;
92 2 TL1=0;
93 2 TR0=1;
94 2 count=0;
95 2
96 2 }
97 1 t++;
98 1
99 1 }
100
101 Uart_Init()
102 {SCON = 0x52; /* 設置串行口控制寄存器SCON*/
103 1 TMOD = 0x21; /* 12M時鐘時波特率為2400 */
104 1 TCON = 0x69; /* TCON */
105 1 TH1 = 0xf3; /* TH1 */
106 1 }
107
108
109 void main()
110 {
111 1 Uart_Init();
112 1 TMOD=0x51;
113 1 TH0=0x3C; /* 計數初值寫入TH0 */
114 1 TL0=0xB0; /* 寫入計數初值到TL0 */
115 1 ET0=1; /* 定時器0中斷允許*/
116 1 EA=1; /* 全局中斷允許 */
117 1 TF0=0; /* 定時器0中斷標志位清0 */
C51 COMPILER V8.02 F_COUNT 08/21/2008 16:09:26 PAGE 3
118 1 TR0=1; /* 定時器0準備開始 */
119 1
120 1 TH1=0;
121 1 TL1=0;
122 1 ET1=1;
123 1 TR1=1;
124 1 // k=123;
125 1 // Update_LED();
126 1 while(1)
127 1 {
128 2
129 2 Update_LED();
130 2
131 2 }
132 1
133 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 326 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 22 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -