大侠你好,我刚学PIC单片机,学了个程序有点问题,能帮我看看吗?感激不尽。

#include<pic.h>unsignedchari,sec;voidinit(){TRISC5=0;//C5输出模式T0CS=0;//内部时钟(定时器模式)PSA=... #include <pic.h>
unsigned char i,sec;
void init()
{
TRISC5=0; //C5输出模式
T0CS=0; //内部时钟(定时器模式)
PSA=0; //预分频定时器
PS2=0; //1:4预分频 250*4=10ms
PS1=0;
PS0=1;
GIE=1; //全局中断使能
T0IE=1; //定时器中断使能
T0IF=0; //TO中断标志位清零
TMR0=6; //T0赋初值
RC5=1;
}
void main()
{
init();
while(1);
}
void interrupt tmr1()
{
if(T0IF==1)
{
T0IF=0; //标志位清零
i++;
TMR0=6;
if(i==100)//1S
{
i=0;
sec++;
if(sec==100)//10S
{
sec=0;
RC5=!RC5;
}
}
}
}
展开
 我来答
匿名用户
2012-02-29
展开全部
这是一个计时器,类似于时钟的一个程序,用TMR0延时10ms的基本延时,对1s(延时100次)和10秒计数,每达到10s时,引脚RC5的电平翻转(即高变低,低变高,这个引脚可能是接发光管).
变量i就是累计延时10ms的次数,sec就累计秒数.
程序中采用TMR0中断方式,所以表面上看是死循环,实际是每隔10ms中断一次,进入中断服务程序interrupt tmr1().
初始化程序void init()是对定时器TMR0的分频比设计,引脚RC5的设置,中断的设置.
来自:求助得到的回答
409985369
2012-02-28 · TA获得超过6196个赞
知道答主
回答量:267
采纳率:0%
帮助的人:102万
展开全部
程序呢???

while(1); 死循环
追问
大侠,该如何修改?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
谢应宸
2012-02-29 · TA获得超过2640个赞
知道大有可为答主
回答量:2731
采纳率:66%
帮助的人:2184万
展开全部
有什么问题?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式