📄 mainloop.c
字号:
/*
//*************************************************************************
//
// ZLGMCU
// www.zlgmcu.com
// File Name: mainloop.C
// Revision: 0.4(2002-07-08)
// Author: Liu Ying Bin
// Use library: USB51S.LIB
// Note: USB51S.LIB不带DMA控制功能
//*************************************************************************
*/
#include <stdio.h>
#include <string.h>
#include <reg51.h> /* special function register declarations */
#include "mainloop.h"
#include "isr.h"
#include "protozlg.h"
/*
//*************************************************************************
// Public static data
//*************************************************************************
*/
extern EPPFLAGS bEPPflags;
extern unsigned char idata GenEpBuf[];
extern unsigned char idata EpBuf[];
extern unsigned int data d12_addr;
extern unsigned int data D12_DATA;
extern unsigned int data D12_COMMAND;
sfr CKCON = 0x8F;//87C52x2用
//sbit clksel = P2^0;
sbit test_bit = P2^0;
//D12中断服务
usb_isr() interrupt 0
{
DISABLE;
fn_usb_isr();//调用D12中断服务子程序
test_bit = ~ test_bit;
ENABLE;
}
void main(void)
{
P0 = 0xFF;//初始化I/O口
P1 = 0xFF;
P2 = 0xFF;
P3 = 0xFF;
// CKCON = 0x00;
CKCON = 0x01;
// if(clksel == 1)
// CKCON = CKCON | 0x01;
D12_DATA = 0xff02; //定义数据地址
D12_COMMAND = 0xff03; //定义命令地址
MCU_D12CS = 0x0;
D12SUSPD = 0x0;
IT0 = 0;//初始化中断
EX0 = 1;
PX0 = 0;
EA = 1;
MCU_D12CS = 0x1;
MCU_D12CS = 0x0;
D12_SetDMA(0x0);
bEPPflags.value = 0;
reconnect_USB();//联接USB总线
/* Main program loop */
while( TRUE ){
if(bEPPflags.bits.configuration)
check_key_LED();//连接正常,调用按键和LED控制处理
usbserve();//USB服务数据处理
} // Main Loop
}
void check_key_LED(void)
{
static unsigned char c, last_key = 0xf;
c = MCU_SWM0 & MCU_SWM1;
c &= 0x0f;
if (c != last_key) {
D12_WriteEndpoint(3, 1, &c);//按键状态改变,发送信息给主机
}
last_key = c;
if(bEPPflags.bits.ep1_rxdone) {
DISABLE;//接收到主机发来的LED控制信息
bEPPflags.bits.ep1_rxdone = 0;
ENABLE;
MCU_LED0 = !(GenEpBuf[3] & 0x1);//控制LED状态
MCU_LED1 = !(GenEpBuf[3] & 0x2);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -