- 打卡等级:常住居民III
- 打卡总天数:163
- 最近打卡:2025-06-16 09:49:58
已绑定手机
高级会员
- 积分
- 520
|
#include "AI8051U.h"
#include "stdio.h"
#include "intrins.h"
#include "config.h"
#include "task.h"
#include "io.h"
#include "tim.h"
#include "18b20.h"
#include "adc.h"
#include "eeprom.h"
//typedef unsigned char u8;
//typedef unsigned int u16;
//typedef unsigned long u32;
#define MAIN_Fosc 24000000UL
char *USER_DEVICEDESC = NULL;
char *USER_PRODUCTDESC = NULL;
char *USER_STCISPCMD = "@STCISP#";
void delay_ms(u8 ms);
void Delay3000ms(void) //@24.000MHz
{
unsigned long edata i;
_nop_();
_nop_();
i = 17999998UL;
while (i) i--;
}
void main(void)
{
WTST = 0; //设置程序指令延时参数,赋值为0可将CPU执行指令的速度设置为最快
EAXFR = 1; //扩展寄存器(XFR)访问使能
CKCON = 0; //提高访问XRAM速度
P0M1 = 0x00; P0M0 = 0xff; //设置为推挽输出
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; //设置为准双向口
P40 = 0; //LED Power On
Sys_init(); //系统初始化
usb_init(); //USB CDC 接口配置
IE2 |= 0x80; //使能USB中断
Timer0_Init(); //定时器初始化
Init_595();
Timer1_Init();
ADC_Init();
EA = 1; //IE |= 0X80;
P40 = 0;
while (DeviceState != DEVSTATE_CONFIGURED); //等待USB完成配置
Parm_Init(); //上电次数的判断
while(1)
{
P00 = 0; //LED On
delay_ms(250);
P00 = 1; //LED Off
P01 = 0; //LED On
delay_ms(250);
P01 = 1; //LED Off
P02 = 0; //LED On
delay_ms(250);
P02 = 1; //LED Off
P03 = 0; //LED On
delay_ms(250);
P03 = 1; //LED Off
P04 = 0; //LED On
delay_ms(250);
P04 = 1; //LED Off
P05 = 0; //LED On
delay_ms(250);
P05 = 1; //LED Off
P06 = 0; //LED On
delay_ms(250);
P06 = 1; //LED Off
P07 = 0; //LED On
delay_ms(250);
P07 = 1; //LED Off
if (bUsbOutReady) //如果接收到了数据
{
//USB_SendData(UsbOutBuffer,OutNumber); //发送数据缓冲区,长度(接收数据原样返回, 用于测试)
usb_OUT_done(); //
}
Task_Pro_Handler_Callback(); //执行功能函数
SEG_Show_U32( SYS_Run_times ); //显示开机次数
}
}
void delay_ms(u8 ms)
{
u16 i;
do{
i = MAIN_Fosc / 6000;
while(--i);
}while(--ms);
}
void Timer0_Isr(void) interrupt 1 //1MS执行一次
{
Task_Marks_Handler_Callback(); //系统计时
}
|
|