📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 10/20/2006 09:58:41 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /*******************************************************************************
2 程序名称:8位并行D/A芯片DAC0832实验
3 硬件接法:DAC0832地址为XDATA:0xA000
4 运行效果:按K1~K4键对应4个电压值输出
5 *******************************************************************************/
6
7
8 //包含头文件
9 #include <reg51.h>
10 #include <absacc.h>
11
12
13 //定义I/O接口
14 sbit K1 = P1^7;
15 sbit K2 = P3^3;
16 sbit K3 = P3^4;
17 sbit K4 = P3^5;
18
19
20 /*******************************************************************************
21 函数:Delay()
22 功能:延时0.01s~2.56s
23 参数:t>0时,延时(t*0.01)s
24 t=0时,延时2.56s
25 说明:定时10ms的定时器初值=65536-0.01/(1/(f/12)),其中f为晶振频率
26 *******************************************************************************/
27 void Delay(unsigned char t)
28 {
29 1 do
30 1 {
31 2 TH0 = 0xDC; //设置定时器初值(定时10ms)
32 2 TL0 = 0x00;
33 2 TR0 = 1; //启动定时器
34 2 while ( !TF0 ); //等待定时器溢出
35 2 TR0 = 0; //停止定时器
36 2 TF0 = 0; //清除溢出标志
37 2 } while ( --t != 0 ); //循环t次
38 1 }
39
40
41 /*******************************************************************************
42 函数:KeyScan()
43 功能:键盘扫描
44 返回:扫描码
45 *******************************************************************************/
46 unsigned char KeyScan()
47 {
48 1 unsigned char k = '\0';
49 1 if ( !K1 ) k = '1';
50 1 if ( !K2 ) k = '2';
51 1 if ( !K3 ) k = '3';
52 1 if ( !K4 ) k = '4';
53 1 return k;
54 1 }
55
C51 COMPILER V7.06 MAIN 10/20/2006 09:58:41 PAGE 2
56
57 //主函数
58 void main()
59 {
60 1 unsigned char k;
61 1 TMOD &= 0xF0;
62 1 TMOD |= 0x01;
63 1 Delay(10);
64 1 XBYTE[0xA000] = 128;
65 1 for (;;)
66 1 {
67 2 for (;;)
68 2 {
69 3 Delay(10);
70 3 k = KeyScan();
71 3 if ( k != '\0' ) break;
72 3 }
73 2 switch ( k )
74 2 {
75 3 case '1':
76 3 XBYTE[0xA000] = 50;
77 3 break;
78 3 case '2':
79 3 XBYTE[0xA000] = 100;
80 3 break;
81 3 case '3':
82 3 XBYTE[0xA000] = 150;
83 3 break;
84 3 case '4':
85 3 XBYTE[0xA000] = 200;
86 3 break;
87 3 default:
88 3 break;
89 3 }
90 2 for (;;)
91 2 {
92 3 Delay(10);
93 3 if ( KeyScan() == '\0' ) break;
94 3 }
95 2 }
96 1 }
97
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 127 ----
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 + -