📄 main.lst
字号:
C51 COMPILER V7.06 MAIN 09/05/2007 08:58:03 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN main.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE main.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 //文 件 名:CPLD.H
2 //功 能:实现单片机与CPLD器件的数据传送
3 //作 者:吕定胜
4 //创建日期:2007-09-03
5 //修改日期:
6
7 //传送端口定义
8 #include <stc12c5410ad.h>
9 #include "lcd.h"
10 sbit pwmclk = P2^3;
11 sbit senddata = P2^2;
12 sbit pwmcs = P2^5;
13 sbit outcs = P2^6;
14 unsigned char flagpower;
15 int gpwm;
16
17 void delay_50us1(unsigned char i)
18 {
19 1 unsigned char j;
20 1 while(i--)
21 1 for(j=0;j<146;j++);
22 1 }
23
24 //发送数据子程序
25 void send(int pwmdata)
26 {
27 1 unsigned char i;
28 1 pwmdata <<= 7;
29 1 pwmcs = 0;
30 1 for(i=0;i<9;i++)
31 1 {
32 2
33 2 pwmdata <<= 1;
34 2 senddata = CY;
35 2 pwmclk = 0;
36 2 pwmclk = 1;
37 2 pwmclk = 1;
38 2 pwmclk = 0;
39 2 }
40 1 pwmcs = 0;
41 1 pwmcs = 1;
42 1 }
43
44
45 void main()
46 {
47 1 P1M0 = 0x0F;
48 1 P1M1 = 0xF0; //设置P1.0~3为高阻输入,作ADC输入用.P1.4~7为推挽式
49 1 IPH = 0x01;
50 1 IP = 0x01; //设置按键中断为最高级
51 1 IT0 = 1; //设置按键中断为下降沿有效
52 1 EA = 1; //开总中断
53 1 EX0 = 1; //开键盘中断
54 1 lcdinit();
55 1 outcs = 1;
C51 COMPILER V7.06 MAIN 09/05/2007 08:58:03 PAGE 2
56 1 gpwm = 255;
57 1 send(gpwm);
58 1 while(1){;}
59 1
60 1 }
61
62
63
64 void ex0_int(void) interrupt 0
65 {
66 1 unsigned int i,j;
67 1 wr_lcd(1,49);
68 1 ADC_CONTR = 0xE0; //选择ADC0通道
69 1 do
70 1 {
71 2 ADC_CONTR |= 0x08; //启动AD转换
72 2 while(!(ADC_CONTR&0x10)); //AD转换尚未完成,继续等待
73 2 ADC_CONTR = ADC_CONTR&0xE7; //清ADC_FLAG,ADC_START,停止AD转换
74 2 i = ADC_DATA;
75 2 delay_50us1(1);
76 2
77 2 ADC_CONTR |= 0x08; //启动AD转换
78 2 while(!(ADC_CONTR&0x10)); //AD转换尚未完成,继续等待
79 2 ADC_CONTR = ADC_CONTR&0xE7; //清ADC_FLAG,ADC_START,停止AD转换
80 2 j = ADC_DATA;
81 2 }while(j!=i);
82 1
83 1 wr_lcd(1,50);
84 1
85 1 j &= 0xFC;
86 1
87 1 switch(j)
88 1 {
89 2 case 0xF0: //"开关"
90 2 wr_lcd(1,55);
91 2 if(flagpower==1)
92 2 {
93 3 outcs = 1;
94 3 gpwm = 511;
95 3 flagpower = 0;
96 3 }//关电源
97 2 else
98 2 {
99 3
100 3 gpwm = 255;
101 3 send(gpwm);
102 3 outcs = 0;
103 3 flagpower = 1;
104 3 }//开电源
105 2 break;
106 2
107 2 case 0xE4://向上
108 2 gpwm -= 5;
109 2 send(gpwm);
110 2 break;
111 2
112 2 case 0xD8://向下
113 2 gpwm += 5;
114 2 send(gpwm);
115 2 break;
116 2
117 2 case 0x3C: //按下1
C51 COMPILER V7.06 MAIN 09/05/2007 08:58:03 PAGE 3
118 2 gpwm = 5;
119 2 send(gpwm);
120 2 break;
121 2
122 2 case 0x8C: //按下2
123 2 gpwm = 505;
124 2 send(gpwm);
125 2 break;
126 2 }
127 1 display_coordinate(2,1);
128 1 i = gpwm;
129 1 wr_lcd(1,i/1000+48);
130 1 i %= 1000;
131 1 wr_lcd(1,i/100+48);
132 1 i %= 100;
133 1 wr_lcd(1,i/10+48);
134 1 wr_lcd(1,i%10+48);
135 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 942 ----
CONSTANT SIZE = 67 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 3 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 + -