📄 kenshin.lst
字号:
C51 COMPILER V8.02 KENSHIN 05/06/2007 10:07:58 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KENSHIN
OBJECT MODULE PLACED IN F:\信号发~1\PROGRAM\KENSHIN.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\C51.EXE F:\信号发~1\PROGRAM\KENSHIN.C DB SB OE
line level source
1 #include <reg51.h>
2 #define uchar unsigned char
3 #define uint unsigned int
4 sbit fud=P2^1; //加载AD9851的外部寄存器到内部寄存器的操作引脚
5 sbit clk=P2^0; //读取并口上的数据到外部寄存器的操作引脚
6 sbit res=P2^2; //AD9851的重启引脚
7 sbit max=P2^3; //MAX485的半双工控制引脚
8
9
10 uchar W[5]; //AD9851控制字存储叔祖
11 uchar temp; //临时变量
12 uchar p;
13 uchar i;
14
15
16 void TransData(void) //数据传输函数
17 {
18 1 max=1; //将MAX485工作方式设定为发送
19 1 SBUF='R'; //向PC机发送R,表示数据接收完全
20 1 while(!TI); //等待发送完毕
21 1 TI=0; //清除发送中断标志
22 1 max=0; //将MAX485工作方式设定为发接收
23 1 for(i=0;i<5;i++) //传数据
24 1 {
25 2 P1=W[i]; //P1口引脚输出等于W[i]
26 2 clk=1; //W_CLK上升沿将AD9851并口上的数据读进内部寄存器
27 2 clk=0;
28 2 }
29 1 fud=1; //5个控制字发送完后,在FQ_UD上升沿将数据加载
30 1 fud=0; //到内部寄存器,并改变输出
31 1 }
32
33 void Init_serial() //初始化串口函数
34 {
35 1 TMOD=0x20; //定时器1置为方式2
36 1 TL1=0xfd; //装载定时器初值,设置波特率为9600
37 1 TH1=0xfd;
38 1 SCON=0x50; //设定串口工作方式1
39 1 PCON=0x00; //不使用波特率倍增
40 1 TR1=1; //启动定时器
41 1 EA=1; //开总中断
42 1 ES=1; //开串行口中断
43 1 max=0; //MAX485工作方式设定为读
44 1 }
45
46 void main() //main函数
47 {
48 1 clk=0; //初始化
49 1 fud=0;
50 1 res=1; //RESET AD9851
51 1 res=0;
52 1 Init_serial(); //调用串口初始化函数
53 1 W[0]=0x01; //启用AD9851的6倍频功能
54 1 p=1;
55 1 while(1); //等待中断
C51 COMPILER V8.02 KENSHIN 05/06/2007 10:07:58 PAGE 2
56 1
57 1 }
58
59 void Serial_RI(void) interrupt 4 using 3 //中断程序
60 {
61 1 ES=0; //关串行口中断
62 1 if(RI==1) //如果是接收中断,执行下面函数
63 1 {
64 2 RI=0; //清除中断标志位
65 2 temp=SBUF; //读取接收寄存器
66 2 W[p]=temp; //设定控制字
67 2 max=1; //MAX485设定为发送
68 2 SBUF=temp; //将接收到的字节再发送回PC,检验是否接收正确
69 2 while(!TI); //等待发送完毕
70 2 TI=0; //清除发送中断标志
71 2 max=0; //MAX485设定为接收
72 2 p++; //p自加
73 2 if(p==5) //当p=5时,表示接收完成,向AD9851发送数据
74 2 {
75 3 TransData(); //调用数据发送函数
76 3 p=1; //将P重新设定为1
77 3 }
78 2 }
79 1 ES=1; //开串行口中断
80 1 }
C51 COMPILER V8.02 KENSHIN 05/06/2007 10:07:58 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
TransData. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
SBUF . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0099H 1
PCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0087H 1
SCON . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0098H 1
TMOD . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0089H 1
temp . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
clk. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A0H 1
fud. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A1H 1
max. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A3H 1
res. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A2H 1
TH1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008DH 1
TL1. . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 008BH 1
W. . . . . . . . . . . . . . . . . . . PUBLIC DATA ARRAY 0001H 5
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
Serial_RI. . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0006H 1
p. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0007H 1
Init_serial. . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 138 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 8 ----
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 + -