打印

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

[复制链接]
2415|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ncyangfan|  楼主 | 2008-8-3 12:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家好,我以前是用51的片子,现在要用PIC16C56的片子做一个小产品,我只会用汇编写,以前我没用过PIC的片子,请问这个片子的定时器TMR0怎样用, 教材里没有介绍这个片子里定时器有控制位,也就没有定时溢出位,这个定时器该怎样用才好?  急, 谢谢!

相关帖子

沙发
lyjian| | 2008-8-3 14:37 | 只看该作者

PIC16C5x单片机是很烂的设计

没中断功能
定时器也是一个四肢不全的东西
没有运行控制位和溢出位的
一上电它就自由运行了,不受控制的
唯一可以做的就是给它分配预分频器和设置它为定时器或计数器
你要用定时器设置时间的话,只能先写个数,然后过一会去读它计数到了多少来判断时间

使用特权

评论回复
板凳
yewuyi| | 2008-8-4 09:00 | 只看该作者

LS看来用过PIC16C5X

呵呵,但也只能说用过。。。


没有中断的芯片虽然用起来麻烦点,但有合适的软件结构的话,其实还是可以做很多事情的。

void   main(void)
{
//系统初始化设置
while(1){
        if(当前定时器计数值<RAM中**的定时器计数值){
                                                      clrwdt();
                                                      完成某项任务并更新RAM计数值
                                                      }
        else{更新RAM中**的定时器计数值}
        }
}

呵呵,这是PIC16C5X系列定时器最好的使用方法,设计的时候要注意,所有的任务完成的时间均要小于定时器溢出翻转的时间,一般可通过预分频器将定时器溢出时间设置为1~20MS,具体多长由你自己决定,一般确定这个时间的原则和你的任务分割有关系,这个折中取值的讨论不在本贴范围内,略过不提。

从2楼的发言看,尚没有理解简单的OS思想,呵呵,批评一下。。。

使用特权

评论回复
地板
dcp| | 2008-8-4 13:43 | 只看该作者

PIC16C5X的定时软中断

;------------------------------------------------------------------------------
;------------------定时器扩展(PIC16C54)----------------------------------------
;每隔256us必须运行一次
TMR0_Extend:       btfss     TMR0_OVER    ;FLAG,Tover
                   goto      Time_next
                   btfsc     TMR0,7        ;当TMR0的第7位再回到0是即经过了256us
                   retlw     0             ;goto      Time_quit
                   bcf       TMR0_OVER     ;FLAG,7
           ;==================每24MS则进入此处begin============================




;==================每24MS则进入此处end==============================

Time_next:         btfsc     TMR0,7
                   bsf       TMR0_OVER           ;FLAG,Tover
Time_quit:         retlw     0



供LZ参考,同理可扩展100mS入口,1S入口...

使用特权

评论回复
5
李冬发| | 2008-8-4 22:11 | 只看该作者

累不累?!

使用特权

评论回复
6
yewuyi| | 2008-8-5 08:43 | 只看该作者

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

呵呵,不过俺是不主张现在还用PIC16C5X做产品开发的,选择PIC16F72X系列的多好!!!

不过估计LZ还用这个做开发主要是想用台湾省的那各种各样的16C5X的廉价兼容片,那俺就无可奈何了。。。

使用特权

评论回复
7
兰天白云| | 2008-8-5 08:51 | 只看该作者

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

如果每月出货100K,每个芯片省1元,一个月省多少?

使用特权

评论回复
8
lyjian| | 2008-8-5 09:54 | 只看该作者

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

看下面贴子8楼
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

使用特权

评论回复
9
5880527| | 2008-8-5 10:21 | 只看该作者

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

如果是为了省那一块钱折腾自己那还不如坐旁边歇会凉的,这论坛里月薪10K以上还占不到三分之一,省来干啥,没事找事,不是针对7楼,只是说说比较实际的一个现象,发一下牢骚

使用特权

评论回复
10
yewuyi| | 2008-8-5 11:37 | 只看该作者

呵呵,向lyjian道歉

呵呵,但既然知道怎么用,在2楼发言明显误导小朋友,不妥。。。



鸟枪和大**各有适用的地方,LZ用不用是他自己的事情,你既然知道,但回帖又不告诉他答案,却又发了一通牢骚就不妥了。。。



个人意见,避免口水,我闪、闪、闪。。。

使用特权

评论回复
11
lyjian| | 2008-8-5 11:44 | 只看该作者

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

这是我用过PIC16C5x后的感觉

使用特权

评论回复
12
李冬发| | 2008-8-6 14:56 | 只看该作者

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

PIC16C5x还敢用C?1个语句就把程序空间占了。
PIC太难用了,就是那个C,用的时候还得小心翼翼的,总是出些不可预知的结果!
我的案子里从不用PIC。这个1元也就不存在省与不省了。

使用特权

评论回复
13
yewuyi| | 2008-8-6 16:04 | 只看该作者

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

哈哈,没你说的那么夸张。。。



呵呵,正好看到别人写的一个例子,看看是不是能做一些事情!!!



至于说PICC‘就是那个C,用的时候还得小心翼翼的,总是出些不可预知的结果!’

俺只能说:自从俺用PICC好象还没见过什么怪事情,PICC简单不过了,这么样都说不好伺候,俺真是无话可说。。。

KEIL、IAR、GCC应该都比PICC复杂。。。
相关链接: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

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

4

帖子

1

粉丝