📄 new.lst
字号:
C51 COMPILER V8.08 NEW 04/10/2008 14:10:12 PAGE 1
C51 COMPILER V8.08, COMPILATION OF MODULE NEW
OBJECT MODULE PLACED IN N:\Anson\Public\11111111111111\NEW.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE NEW.C ROM(SMALL) OPTIMIZE(9,SPEED) BROWSE DEBUG OBJECTEXTEND OBJECT(N:\Anso
-n\Public\11111111111111\NEW.obj)
line level source
1 #include<string.h>
2 #include"STC.h"
3
4 typedef unsigned char uchar;
5 typedef unsigned long ulong;
6
7 #define LED_NUM 32
8
9 #define LIGHT 80 // 斜光数起屏蔽
10 #define FAT 10000 //
11
12 #define MHz 1000000U // 定义 MHz
13 #define gCLK (22.1184*MHz) // 系统时钟频率
14 #define UART_BAUD 9600 // 定义所用的波特率
15
16
17 /*#define ADC_Power_On_Speed_Channel_0 0xE0
18 #define ADC_Power_On_Speed_Channel_1 0xE1
19 #define ADC_Power_On_Speed_Channel_2 0xE2
20 #define ADC_Power_On_Speed_Channel_3 0xE3
21 #define ADC_Power_On_Speed_Channel_4 0xE4
22 #define ADC_Power_On_Speed_Channel_5 0xE5
23 #define ADC_Power_On_Speed_Channel_6 0xE6
24 #define ADC_Power_On_Speed_Channel_7 0xE7
25 #define ADC_START 0x08
26 #define ADC_FLAG 0x10*/
27
28
29 sbit CK=P1^7;
30 sbit PL=P1^4;
31
32 sbit BEEP=P1^5;
33 sbit SO=P1^3;
34 sbit SO4=P1^6;
35 //sbit buzzer_time=P1^2;
36 //sbit buzzer_delay=P1^1;
37
38 sbit TRR=P3^5;
39 sbit OB=P3^4;
40
41
42 uchar Tcount,Rcont;
43 ulong FaultFlg=0x000000001;
44
45 void Delay_100us(uchar time)
46 {
47 1 uchar i;
48 1
49 1 while(time--)
50 1 {
51 2 for(i=0;i<160;i++);
52 2 }
53 1 }
54
C51 COMPILER V8.08 NEW 04/10/2008 14:10:12 PAGE 2
55
56 void BEEPSOUND (void) //暂时
57 {
58 1 BEEP=1;
59 1 Delay_100us(10);
60 1 }
61
62
63
64 void serial_init(void)
65 {
66 1 SCON = 0x50; // Mode 1: 8-bit UART 允许接收
67 1 TMOD |= 0x20; // 定时器1 Mode 2: 8-Bit reload
68 1 PCON = 0x80; // SMOD = 1
69 1 TH1 = 256 - (uchar)(gCLK/192.0F/UART_BAUD);
70 1 TR1 = 1; // 定时器 1 启动
71 1 ES = 1; // 串行中断允许
72 1 }
73
74
75 void SEND_byte(uchar dat,uchar SIZE)
76 {
77 1 uchar n=0;
78 1 n=SIZE;
79 1
80 1 TI=0; //清除发送中断标志
81 1 // dat=1<<7|dat|SIZE<<6;
82 1 // n=((dat&1)^((dat&2)>>1)^((dat&4)>>2)^((dat&8)>>3)^((dat&16)>>4)^((dat&32)>>5)^((dat&64)>>6)^((dat&128)>
->7));
83 1 // dat=dat<<1|n;
84 1 SBUF=dat; //数据送发送缓冲区
85 1 while(TI==0); //等待发送完成
86 1 TI=0; //清除中断标志
87 1 }
88
89 /*void ADC_Init(unsigned char CH)
90 {
91 ADC_CONTR=0x80; //打开A/D转换电源
92 delay_ms(10); //打开A/D转换电源 需要适当延迟以便A/D电源稳定
93 //P1M0=P1M1=0x01; //设置P1.0 设置A/D通道所在的I/O为开漏模式
94 ADC_CONTR |=CH; //选择P1.0作为A/D转换通道
95 Delay_ms(10);
96 }
97
98 int Ad_Change(unsigned char CH)
99 {
100 uchar ADC_DATA_Temp;
101 ADC_Init(CH);
102 ADC_CONTR|=ADC_START;
103 Delay_ms(10);
104 while(1)
105 {
106 if(((bit)(ADC_CONTR&ADC_FLAG)==1)&&((bit)(ADC_CONTR&ADC_START))==0) //判断A/D转换完成标志位
107 {
108 ADC_CONTR &=~ADC_FLAG; //清除A/D转换完成标志位ADC_FLAG
109 ADC_DATA_Temp=ADC_DATA; //把A/D转换结果保存到全局变量ADC_DATA_Temp中
110 return ADC_DATA_Temp;
111
112 }
113 }
114 }
115
C51 COMPILER V8.08 NEW 04/10/2008 14:10:12 PAGE 3
116 */
117
118 void RECORD()
119 {
120 1 ulong TempB;
121 1 uchar i=0,j=0,k=0,t=0;
122 1
123 1 for(i=0;i<8;i++)//i为第几L,j为灯发几次光,t为脉冲收数据
124 1 {
125 2 Delay_100us(100);
126 2 BEEP=0;
127 2 for(j=0;j<1;j++) //2周循环
128 2 {
129 3 if(((uchar)(i/4))%2)
130 3 {
131 4 // SEND_byte(7*((uchar)(i/4))-(i-((uchar)(i/4)*4)),1);
132 4 }
133 3 else
134 3 {
135 4 //SEND_byte(i,1);
136 4 }
137 3 Delay_100us(5);
138 3 PL=0;//parallel load
139 3 Delay_100us(1);
140 3 PL=1;
141 3 TempB=0;
142 3 for(t=0;t<8;t++)//32个脉冲t循环读数
143 3 {
144 4
145 4 CK=0;
146 4 CK=1;
147 4
148 4 TempB=TempB>>1;
149 4 if(SO4)
150 4 {
151 5 TempB|=0x80000000;
152 5 }
153 4 else
154 4 {
155 5 TempB&=0x7FFFFFFF;
156 5 }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -