📄 信号发生器.lst
字号:
C51 COMPILER V8.02 信号发蒧芲 12/06/2008 21:34:48 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 信号发蒧芲
OBJECT MODULE PLACED IN 信号发生器.OBJ
COMPILER INVOKED BY: F:\单片机\keil\C51\BIN\C51.EXE 信号发生器.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <absacc.h>
2 #include <reg51.h>
3 #define DA0832 XBYTE[0xfffe]
4 #define uchar unsigned char
5 #define uint unsigned int
6 void delay(uchar z)
7 {
8 1 uchar i;
9 1 while(z--)
10 1 for(i=0;i<125;i++);
11 1 }
12 void sawtooth()//锯齿波
13 {
14 1 uchar i;
15 1 for(i=0;i<255;i++)
16 1 DA0832=i;
17 1 }
18 void triangular()//三角波
19 {
20 1 uchar i;
21 1 for(i=0;i<255;i++)
22 1 DA0832=i;
23 1 for(i=255;i>0;i--)
24 1 DA0832=i;
25 1 }
26 void square()//方波
27 {
28 1 DA0832=255;
29 1 delay(1);
30 1 DA0832=0;
31 1 delay(1);
32 1 }
33 /****波形产生**************************************************************
34 ****通过点击信号发生器.exe相关按钮向串口发送对应十六进制数*********
35 ****需要两个连通的串口COM1(信号发生器.exe)、COM2(Proteus)**/
36 void ser_generator()
37 {
38 1 if(SBUF==0xfd)
39 1 sawtooth();//锯齿波
40 1 if(SBUF==0xfe)
41 1 triangular();//三角波
42 1 if(SBUF==0xff)
43 1 square();//方波
44 1 }
45 void initser()//初始化串口中断
46 {
47 1 SM0=0;
48 1 SM1=1;//方式1
49 1 EA=1;
50 1 ES=1;
51 1 REN=1;//接收允许
52 1 TMOD=0x20;//定时器1方式2:自动重装
53 1 TH1=0xfd;
54 1 TL1=0xfd;
55 1 PCON=0;//波特率9600
C51 COMPILER V8.02 信号发蒧芲 12/06/2008 21:34:48 PAGE 2
56 1 TR1=1;//定时器1计时
57 1 }
58 void main()
59 {
60 1 initser();
61 1 while(1)
62 1 ser_generator();
63 1 }
64 void ser() interrupt 4 //串口中断
65 {
66 1 while(RI==0);
67 1 RI=0;
68 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 133 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -