📄 main.lst
字号:
C51 COMPILER V7.50 MAIN 11/22/2005 21:08:12 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE MAIN
OBJECT MODULE PLACED IN Main.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Main.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /****************************************Copyright (c)**************************************************
2 ** 广州周立功单片机发展有限公司
3 ** 研 究 所
4 ** 产品一部
5 **
6 ** http://www.zlgmcu.com
7 **
8 ** 文 件 名: main.c
9 ** 最后修改日期: 2004年11月15日
10 ** 描 述: 用户应用程序
11 ** 版 本: V5.0
12 **********************************************************************************************************
-/
13
14 #include <reg52.h>
15 #include "D12Config.h"
16 #include "Descriptor.h"
17 #include "Chap_9.h"
18 #include "D12Driver.h"
19 #include <intrins.h>
20
21 //定义按键及LED引脚
22 sbit MCU_SWM0 = P1^0; //按键
23 sbit MCU_SWM1 = P1^1;
24 sbit MCU_LED0 = P1^2; //LED
25 sbit MCU_LED1 = P1^3;
26
27 void check_key_LED(void);
28
29 main()
30 {
31 1 INT32U cnt;
32 1
33 1 //复位后LED亮
34 1 for(cnt = 0; cnt <= 0x5000; cnt++) //延时
35 1 {
36 2 MCU_LED0 = 0; //D2和D3点亮
37 2 MCU_LED1 = 0;
38 2 }
39 1 MCU_LED0 = 1; //D2和D3灭
40 1 MCU_LED1 = 1;
41 1
42 1 if (Init_D12()!=0) //初始化D12
43 1 return; //如果初始化不成功,返回
44 1
45 1 EX0 = 1; //开外部中断0
46 1 PX0 = 0; //设置外部中断0中断优先级
47 1 EA = 1; //开80C51总中断
48 1
49 1 while(1)
50 1 {
51 2 usbserve(); //处理USB事件
52 2 if(bEPPflags.bits.configuration)
53 2 {
54 3 check_key_LED(); //连接正常,调用按键和LED控制处理
C51 COMPILER V7.50 MAIN 11/22/2005 21:08:12 PAGE 2
55 3 }
56 2 }
57 1 }
58
59
60 /******* 下面为与D12 Smart板相关的操作 *************/
61
62 /*******************************************************************
63 ** 函数名称: check_key_LED()
64 ** 功能描述: 检测D12 Smart板上的按键以及控制LED
65 ** 输 入: 无
66 ** 输 出: 无
67 ********************************************************************/
68 void check_key_LED(void)
69 {
70 1 static unsigned char c, last_key = 0xf;
71 1
72 1 c = MCU_SWM0 & MCU_SWM1; //读取两个按键状态
73 1 c &= 0x0f;
74 1
75 1 if (c != last_key) {
76 2 D12_WriteEndpoint(3, 1, &c); //按键状态改变,发送信息给主机
77 2 }
78 1
79 1 last_key = c; //保留按键状态
80 1
81 1 if(bEPPflags.bits.ep1_rxdone) {
82 2 DISABLE(); //接收到主机发来的LED控制信息
83 2 bEPPflags.bits.ep1_rxdone = 0;
84 2 ENABLE();
85 2 MCU_LED0 = !(GenEpBuf[3] & 0x1); //控制LED状态
86 2 MCU_LED1 = !(GenEpBuf[3] & 0x2);
87 2 }
88 1 }
89
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 156 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 4
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 + -