- #include "ai8051u.h"// 调用头文件
- #include "stc32_stc8_usb.h"
- #include "intrins.h"
- #define U8 unsigned char
- #define U16 unsigned int
- U8 state=0;
- U8 Run_stste=0;
- char *USER_DEVICEDESC = NULL;
- char *USER_PRODUCTDESC = NULL;
- char *USER_STCISPCMD = "@STCISP#";
- void Delay10ms(void) //@24.000MHz
- {
- unsigned char data i, j;
-
- i = 234;
- j = 115;
- do
- {
- while (--j);
- } while (--i);
- }
- void Timer1_Init(void) //3秒@24.000MHz
- {
- TM1PS = 0x5B; //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
- AUXR &= 0xBF; //定时器时钟12T模式
- TMOD &= 0x0F; //设置定时器模式
- TL1 = 0x3F; //设置定时初始值
- TH1 = 0x01; //设置定时初始值
- TF1 = 0; //清除TF1标志
- TR1 = 1; //定时器1开始计时
- ET1 = 1; //使能定时器1中断
- }
- void main(void) // 主函数
- {
- int count = 1;
- WTST=0;
- EAXFR=1;
- CKCON=0;
- P0M1 = 0x00; P0M0 = 0x00;
- 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;
-
- usb_init(); // USB CDC 接口配置
-
- IE2 |= 0x80;
- Timer1_Init();
- EA = 1;
- while (DeviceState != DEVSTATE_CONFIGURED); // 等待USB完成配置
- while (1)
- {
- if (bUsbOutReady)
- {
- // USB_SendData(UsbOutBuffer,OutNumber);//发送数据缓冲区,长度(接收数据原样返回, 用于测试)
-
- printf("一起来打王者荣耀\r\n");
- usb_OUT_done();
- }
-
- if(P32==0)
- {
- Delay10ms();
- if(P32==0)
- {
- printf("按键按下次数\xfd;%d次\r\n",(int)count);
- count++;
- while(P32==0);
- }
- }
- }
- }
- void Timer1_Isr(void) interrupt 3
- {
- state = !state;
- P20=state;
- }
复制代码
小*** 发表于 2025-3-4 12:06
学习了第七集了解定时的工作原理 只是 编译一直报错 不知道是哪里的问题
Rebuild target 'Target 1'
co ...
经过论坛大哥的帮助 已经 可以使用了 只是 一直还有警告 但是功能可以实现了 |