第七集定时器:感觉刚开始看示例还行,后边有点难了,好在可以自动生成需要的
- #include <ai8051.h>
- #include "ai_usb.h"
- #define PRINT_HID
-
- u8 state=0;
-
- void Timer0_Init(void) //3秒@24.000MHz
- {
- TM0PS = 0x5B; //设置定时器时钟预分频 ( 注意:并非所有系列都有此寄存器,详情请查看数据手册 )
- AUXR &= 0x7F; //定时器时钟12T模式
- TMOD &= 0xF0; //设置定时器模式
- TL0 = 0x3F; //设置定时初始值
- TH0 = 0x01; //设置定时初始值
- TF0 = 0; //清除TF0标志
- TR0 = 1; //定时器0开始计时
- ET0 = 1; //使能定时器0中断
- }
-
- void main(){
- int count=1;
- P_SW2 |= 0x80;
-
- 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;
- EA = 1;
- Timer0_Init();
- while (1)
- {
- if (bUsbOutReady)
- {
- // USB_SendData(UsbOutBuffer,OutNumber);
- printf_usb("1. Read Num:%d\n", OutNumber);
- printf_usb("2. Read Num:%d\n", OutNumber);
- printf_usb("3. Read Num:%d\n", OutNumber);
- printf_usb("4. Read Num:%d\n", OutNumber);
-
- usb_OUT_done();
-
- }
- if(P32==0){
- if(P32==0){
- printf_usb("COUNT:%d\r\n",(int)count);
- count++;
- while(P32==0);
- }
- }
- }
- }
-
- void Timer0_Isr(void) interrupt 1
- {
- state=!state;
- P20=state;
- }
-
复制代码
|