- 打卡等级:偶尔看看II
- 打卡总天数:24
- 最近打卡:2025-06-27 08:56:01
已绑定手机
中级会员
- 积分
- 212
|
/*---定时器0初始化函数 ---*/
void Timer0_Init(void) //1秒@24.000MHz
{
TM0PS = 0x1E; //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
AUXR &= 0x7F; //定时器时钟12T模式
TMOD &= 0xF0; //设置定时器模式
TL0 = 0xFC; //设置定时初始值
TH0 = 0x03; //设置定时初始值
TF0 = 0; //清除TF0标志
TR0 = 1; //定时器0开始计时
ET0 = 1; //使能定时器0中断
}
/*---MAIN 主函数 ---*/
void main()
{
P_SW2 |= 0x80; //B7位写1,使能访问XFR
P0M1 = 0x00; P0M0 = 0x00; //初始化IO口为准双向IO口
P1M1 = 0x00; P1M0 = 0x00;
P2M1 = 0x00; P2M0 = 0x00;
P3M1 = 0x00; P3M0 = 0x00;
P4M1 = 0x00; P4M0 = 0x00;
P5M1 = 0x00; P5M0 = 0x00;
P6M1 = 0x00; P6M0 = 0x00;
P7M1 = 0x00; P7M0 = 0x00;
Timer0_Init();
usb_init(); //USB CDC 接口配置
IE2 |= 0x80; //使能USB中断
EA = 1; //IE |= 0X80;开总中断
while (DeviceState != DEVSTATE_CONFIGURED); //等待USB完成配置
while(1)
{
if (bUsbOutReady)
{
// USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
// printf("Hello World!\r\n");
// printf("X/Y=%u\r\n",(unsigned int)X/Y);
// printf("X%%Y=%u\r\n",(unsigned int)X%Y);
usb_OUT_done();
}
// ucLed_Proc();
//按键点灯
// if(P32==0)
// {
// DelayXms(20);
// if(P32==0)
// {
// Key_Number ^=1;
// P20 = Key_Number;
// while(P32==0);
// }
// }
//按键按一下亮一个灯,按二下亮两个灯,按三下亮三个灯按四下全亮。
// if(P32==0)
// {
// DelayXms(20);
// if(P32==0)
// {
// while(P32==0);
// LedDisp_Mode++;
// if(LedDisp_Mode==5)
// LedDisp_Mode=0;
// }
// }
//
// if(LedDisp_Mode==0){P2=0xFF;}
// if(LedDisp_Mode==1){P20=0;}
// if(LedDisp_Mode==2){P20=1;P21=P22=0;}
// if(LedDisp_Mode==3){P21=P22=1;P23=P24=P25=0;}
// if(LedDisp_Mode==4){P2=0x00;}
//
}
}
void Timer0_Isr(void) interrupt 1
{
ucLed_Flag=!ucLed_Flag;
P27 = ucLed_Flag;
}
|
|