任务一
#include "config.h"
#include "task.h"
#include "io.h"
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
void Delay3000ms(void) //@24.000MHz
{
unsigned long edata i;
_nop_();
_nop_();
i = 17999998UL;
while (i) i--;
}
void main(void) //主函数
{
Sys_init();
usb_init();
IE2 |= 0x80;
Timer0_Init();
Init_595();
INT1_Init();
EA = 1;
P40=0;
while (DeviceState != DEVSTATE_CONFIGURED);
// WDT_CONTR = 0X24;
while(1)
{
if (bUsbOutReady)
{
//USB_SendData(UsbOutBuffer,OutNumber);
usb_OUT_done();
}
// Task_Pro_Handler_Callback();
//
// WDT_CONTR = 0X34;
P00 = !P00;
Delay3000ms();
}
}
void Timer0_Isr(void) interrupt 1
{
Task_Marks_Handler_Callback();
}
打卡第十四集
任务一
#include "config.h"
#include "task.h"
#include "io.h"
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
void Delay3000ms(void) //@24.000MHz
{
unsigned long edata i;
_nop_();
_nop_();
i = 17999998UL;
while (i) i--;
}
void main(void) //主函数
{
Sys_init();
usb_init();
IE2 |= 0x80;
Timer0_Init();
Init_595();
// INT1_Init();
P3_IO_Init();
P4_IO_Init();
EA = 1;
P40=0;
while (DeviceState != DEVSTATE_CONFIGURED);
// WDT_CONTR = 0X24;
while(1)
{
if (bUsbOutReady)
{
//USB_SendData(UsbOutBuffer,OutNumber);
usb_OUT_done();
}
Task_Pro_Handler_Callback();
passward=0;
// if(P33!=0)
// WDT_CONTR = 0X34;
// P00 = !P00;
// Delay3000ms();
}
}
void Timer0_Isr(void) interrupt 1
{
Task_Marks_Handler_Callback();
}
打卡第十五集
任务一
任务二
#include "tim.h"
u32 Count_T1 = 0;
//void TIM1_Count_Init(void)
//{
// T1_CT = 1;
// T1_M1 = 0;
// T1_M0 = 0;
// T1_GATE = 0;
//
// TH1 = (65536-Count_num)>>8;
// TL1 = (65536-Count_num);
//
// P3PU |= 0x20;
// TR1 = 1;
// ET1 = 1;
//}
//void Timer1_Isr(void) interrupt 3
//{
// Count_T1 ++;
//}
//void T1_RunTask(void)
//{
// u32 count_th_tl=0;
// count_th_tl = ((u16)TH1<<8) + (u16)TL1;
// count_th_tl-=65526;
//
// SEG7_ShowLong(Count_T1*Count_num+count_th_tl,10);
//}
void Timer1_Isr(void) interrupt 3
{
static u32 count_p33 = 0;
if(P33==0)
{
count_p33++;
}
else
{
if(count_p33>0)
{
Count_T1 = count_p33;
}
count_p33=0;
}
}
void Timer1_Init(void) //100微秒@24.000MHz
{
AUXR |= 0x40; //定时器时钟1T模式
TMOD &= 0x0F; //设置定时器模式
TL1 = 0xA0; //设置定时初始值
TH1 = 0xF6; //设置定时初始值
TF1 = 0; //清除TF1标志
TR1 = 1; //定时器1开始计时
ET1 = 1; //使能定时器1中断
}
void T1_RunTask(void)
{
// SEG7_ShowLong(Count_T1,10);
SEG7_ShowString("%07.01f",((float)Count_T1)/10);
}
打卡第十六集
#include "usart.h"
#include "io.h"
u8 Rec_Dat;
u8 Rec_Num = 0;
bit B_TX2_Busy = 0;
void Uart2_Isr(void) interrupt 8
{
if (S2CON & 0x02) //检测串口2发送中断
{
S2CON &= ~0x02; //清除串口2发送中断请求位
B_TX2_Busy = 0;
}
if (S2CON & 0x01) //检测串口2接收中断
{
S2CON &= ~0x01; //清除串口2接收中断请求位
Rec_Dat = S2BUF;
}
}
void Uart2_Init(void) //9600bps@24.000MHz
{
P_SW2 |= 0x01; //UART2/USART2: RxD2(P4.6), TxD2(P4.7)
S2CON = 0x50; //8位数据,可变波特率
AUXR |= 0x04; //定时器时钟1T模式
T2L = 0x8F; //设置定时初始值
T2H = 0xFD; //设置定时初始值
AUXR |= 0x10; //定时器2开始计时
IE2 |= 0x01; //使能串口2中断
Rec_Num = 0;
B_TX2_Busy = 0;
}
void Uart2_SendStr(u8 *puts)
{
for(; *puts !=0;puts++)
{
S2BUF = *puts;
B_TX2_Busy = 1;
while(B_TX2_Busy);
}
}
void Usart2_RunTask(void)
{
if(Rec_Num >= 6)
{
if((Rec_Dat == '\n')&&(Rec_Dat == '\r'))
{
if((Rec_Dat == 'O')&&(Rec_Dat == 'P')&&(Rec_Dat == 'E')&&(Rec_Dat == 'N'))
{
passward = 16;
passward = 16;
passward = 16;
passward = 16;
Uart2_SendStr("打开成功!\r\n");
}
else if((Rec_Dat == 'C')&&(Rec_Dat == 'L')&&(Rec_Dat == 'O')&&(Rec_Dat == 'S')&&(Rec_Dat == 'E'))
{
passward = 17;
passward = 17;
passward = 17;
passward = 17;
Uart2_SendStr("关闭成功!\r\n");
}
Rec_Num = 0;
}
}
}
附手敲程序
页:
1
[2]