
void PCA_Init (void)
{
PCA0MD &=~0x40//关闭开门狗
//0号舵机
PCA0MD=0x04//0000 0100 定时器0溢出,禁止看门狗.
PCA0CPM0=0x42//0100010 使能8位脉宽调制方式
PCA0CPL0=235//
PCA0CPH0=235//初始化为角度为0
}
/***************************************************************************************/
void Counter_Init(void)
{ TCON=0x10 //0001 0000 启动定时器T0&T1
CKCON=0x00 //定时时钟来源 系统时钟12分频( 2MHZ)
TMOD=0x02 //0000 00(计时)10(方式2) Timer0 工作在方式28位计数器自动重载,
TL0=120 //计数器初 值 256-156=100 50HZ(20ms/256 计156次)120 58HZ 150 74HZ 延时20 80 45HZ 延时50
TH0=120 //计数器重载值
}
/*************************************************************************************************/
这是一个延时函数调用delay_ms()当主函数给i赋值,例如将在主函数中会出现延时语句如 delay_ms(1000);
这表示给i的赋值为1000即可以发现for(i>0i--)delay_1ms()中的i=1000是大于0,因此进行1000次递减,那它递减一次将调用void delay_1ms()函数,递减1000次所用时间为1000ms也就是1s;
另外void delay_1ms()函数根据程序可以知道延时1ms系统将递减3060次;
可以的,c8051系列有用户可擦写flash区,程序放在这个区域就可以通过USB下载,但是整个flash里面可能要有Boot程序,用来写USB的驱动和上位机通信,否则无法识别,简单说就是能用USB升级的只是其中flash的一部分欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)