请教PIC16C56单片机定时器怎样用,谢谢!

[复制链接]
3599|12
 楼主| ncyangfan 发表于 2008-8-3 12:28 | 显示全部楼层 |阅读模式
大家好,我以前是用51的片子,现在要用PIC16C56的片子做一个小产品,我只会用汇编写,以前我没用过PIC的片子,请问这个片子的定时器TMR0怎样用, 教材里没有介绍这个片子里定时器有控制位,也就没有定时溢出位,这个定时器该怎样用才好?  急, 谢谢!
lyjian 发表于 2008-8-3 14:37 | 显示全部楼层

PIC16C5x单片机是很烂的设计

没中断功能<br />定时器也是一个四肢不全的东西<br />没有运行控制位和溢出位的<br />一上电它就自由运行了,不受控制的<br />唯一可以做的就是给它分配预分频器和设置它为定时器或计数器<br />你要用定时器设置时间的话,只能先写个数,然后过一会去读它计数到了多少来判断时间<br />
yewuyi 发表于 2008-8-4 09:00 | 显示全部楼层

LS看来用过PIC16C5X

呵呵,但也只能说用过。。。<br /><br /><br />没有中断的芯片虽然用起来麻烦点,但有合适的软件结构的话,其实还是可以做很多事情的。<br /><br />void&nbsp;&nbsp;&nbsp;main(void)<br />{<br />//系统初始化设置<br />while(1){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(当前定时器计数值&ltRAM中**的定时器计数值){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;clrwdt();<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;完成某项任务并更新RAM计数值<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else{更新RAM中**的定时器计数值}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br /><br />呵呵,这是PIC16C5X系列定时器最好的使用方法,设计的时候要注意,所有的任务完成的时间均要小于定时器溢出翻转的时间,一般可通过预分频器将定时器溢出时间设置为1~20MS,具体多长由你自己决定,一般确定这个时间的原则和你的任务分割有关系,这个折中取值的讨论不在本贴范围内,略过不提。<br /><br />从2楼的发言看,尚没有理解简单的OS思想,呵呵,批评一下。。。
dcp 发表于 2008-8-4 13:43 | 显示全部楼层

PIC16C5X的定时软中断

;------------------------------------------------------------------------------<br />;------------------定时器扩展(PIC16C54)----------------------------------------<br />;每隔256us必须运行一次<br />TMR0_Extend:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btfss&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMR0_OVER&nbsp;&nbsp;&nbsp;&nbsp;;FLAG,Tover<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;goto&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time_next<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btfsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMR0,7&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;当TMR0的第7位再回到0是即经过了256us<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retlw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;goto&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Time_quit<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bcf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMR0_OVER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;FLAG,7<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;==================每24MS则进入此处begin============================<br /><br /><br /><br /><br />;==================每24MS则进入此处end==============================<br /><br />Time_next:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;btfsc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMR0,7<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bsf&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMR0_OVER&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;FLAG,Tover<br />Time_quit:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;retlw&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0<br /><br /><br /><br />供LZ参考,同理可扩展100mS入口,1S入口...<br /><br />
李冬发 发表于 2008-8-4 22:11 | 显示全部楼层

累不累?!

  
yewuyi 发表于 2008-8-5 08:43 | 显示全部楼层

累不累不是我的事情。。。

呵呵,不过俺是不主张现在还用PIC16C5X做产品开发的,选择PIC16F72X系列的多好!!!<br /><br />不过估计LZ还用这个做开发主要是想用台湾省的那各种各样的16C5X的廉价兼容片,那俺就无可奈何了。。。
兰天白云 发表于 2008-8-5 08:51 | 显示全部楼层

回:李冬发 如果每月出货100K,每个芯片省1元,一个月省多少?

如果每月出货100K,每个芯片省1元,一个月省多少?
lyjian 发表于 2008-8-5 09:54 | 显示全部楼层

回3楼:不只你会这样用,不要太沾沾自喜

看下面贴子8楼<br />https://bbs.21ic.com/club/bbs/list.asp?boardid=11&t=2484491&tp=%u5B9A%u65F6%u5668%u6CA1%u6709%u4E2D%u65AD%u4E5F%u80FD%u7B80%u5355%u5B9E%u73B0
5880527 发表于 2008-8-5 10:21 | 显示全部楼层

省100K你以为老板能表扬你,物质奖励你呀

如果是为了省那一块钱折腾自己那还不如坐旁边歇会凉的,这论坛里月薪10K以上还占不到三分之一,省来干啥,没事找事,不是针对7楼,只是说说比较实际的一个现象,发一下牢骚
yewuyi 发表于 2008-8-5 11:37 | 显示全部楼层

呵呵,向lyjian道歉

呵呵,但既然知道怎么用,在2楼发言明显误导小朋友,不妥。。。<br /><br /><br /><br />鸟枪和大**各有适用的地方,LZ用不用是他自己的事情,你既然知道,但回帖又不告诉他答案,却又发了一通牢骚就不妥了。。。<br /><br /><br /><br />个人意见,避免口水,我闪、闪、闪。。。
lyjian 发表于 2008-8-5 11:44 | 显示全部楼层

我在2楼所说的确实是PIC16C5x的缺点

这是我用过PIC16C5x后的感觉
李冬发 发表于 2008-8-6 14:56 | 显示全部楼层

2楼可没有误导他们,这东西对于厂家来说是举手之劳

PIC16C5x还敢用C?1个语句就把程序空间占了。<br />PIC太难用了,就是那个C,用的时候还得小心翼翼的,总是出些不可预知的结果!<br />我的案子里从不用PIC。这个1元也就不存在省与不省了。
yewuyi 发表于 2008-8-6 16:04 | 显示全部楼层

嘿嘿,LS,16C5X用C写完全可以。。。

哈哈,没你说的那么夸张。。。<br /><br /><br /><br />呵呵,正好看到别人写的一个例子,看看是不是能做一些事情!!!<br /><br /><br /><br />至于说PICC‘就是那个C,用的时候还得小心翼翼的,总是出些不可预知的结果!’<br /><br />俺只能说:自从俺用PICC好象还没见过什么怪事情,PICC简单不过了,这么样都说不好伺候,俺真是无话可说。。。<br /><br />KEIL、IAR、GCC应该都比PICC复杂。。。 <br /> 相关链接:<a href='http://www.goldenchip.com.cn/gdbbs/dispbbs.asp?ID=20039201124424574&announceid=20039201124424574&prefile=searchlist.asp&boardid=2&searchkey=学习C&area=0&dateandtime=all&username=&dpi=1&page=1&skin=1'>http://www.goldenchip.com.cn/gdbbs/dispbbs.asp?ID=20039201124424574&announceid=20039201124424574&prefile=searchlist.asp&boardid=2&searchkey=学习C&area=0&dateandtime=all&username=&dpi=1&page=1&skin=1</a>
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部