128分频器溢出值设置为多少是1s

义隆单片机EM78P153使用_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
喜欢此文档的还喜欢
义隆单片机EM78P153使用
阅读已结束,如果下载本文需要使用
想免费下载本文?
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
你可能喜欢如何用pic单片机写用中断法,让TMR0的T0IF是否有溢出中断,让LED二极管一秒钟闪动_百度知道
如何用pic单片机写用中断法,让TMR0的T0IF是否有溢出中断,让LED二极管一秒钟闪动
提问者采纳
#include&pic.h&//用中断法,让TMR0的T0IF是否有溢出中断,让LED二极管一秒钟闪动,因为PIC单片机如果写有定时计数器则从一上电开始计时//在使用定时计数器时一定要设置选项寄存器(OPTION_REG)和中断控制寄存器(INTCON)#define uchar unsigned char#define uint
unsigned int__CONFIG(0x3B31);//定义一个溢出中断的变量void init()//初始化接LED的RD端口为输出,及设置OPTION寄存器关闭TMR0定时计时器{ TRISD=0;//输出状态 PORTD=0;//关闭 OPTION=0x07;//设置选项寄存器为是设置PSA选择为0,PS2-PS0为111:分频比是1:256其他的为零 INTCON=0xa0;//设置中断控制寄存器为,开总中断,开允许中断,和T0IF在初始化中还不能溢出 TMR0=61;//因为PIC单片机定时计数器从一上电开始计时了,我们设置它每50ms产生溢出中断即是50000除以256等于195,也就说加了195个数后就到50ms了,那么要溢出就得加满所以要先装256-195=61个数}void main()//在主函数里中断函数不需要调用和判断是否产生中断溢出标志T0IF,因为从一上电就自动运行,一到50ms中断会自动溢出加1{ init(); while(1) {
if(initnum==20)//它每50ms产生溢出中断,20次则是一秒
initnum=0;//到了1s后清零
RD0=!RD0;//取反,再到第二次溢出又取反电平
} }}void interrupt time0()//定时器的程序,后面不用写和51单片机那样的序号,也不用就算写在主函数的后面也不用声明{
//例如:如果是T0I订丹斥柑俪纺筹尸船建F置位才能知用是TMR0定时器,如果是T1IF置位才能知道是TMR1定时器 T0IF=0;//先置零,同时知道是用TMR0定时器 TMR0=61;//也要重新装一次初值 initnum++;//加一}
提问者评价
来自:求助得到的回答
其他类似问题
按默认排序
其他1条回答
订丹斥柑俪纺筹尸船建PIC单片机初始化设置不说了,端口工作模式设为数字IO + 输出,timer设置,初始化,开TMR0中断,开外部中断、开总中断。PIC单片机的中断函数比较特别一点,所有的中断入口只有一个,中断源在中断函数内自己判断,形式如下(interrupt是关键字)void interrupt isr(void){ if(TMR1IF)
//timer1中断 做系统基准定时 {
TMR1ON = 0;
asm(&CLRWDT&);
TMR1IF = 0;
TMR1H = 0xFF - (uchar)(((SYSTEMBASETICK-40)/(4*1000000/FOSC))/255);
TMR1L = 0xFF - (uchar)(((SYSTEMBASETICK-40)/(4*1000000/FOSC))%255);
GlobeTick++;TMR1ON = 1;
} if(INTE && INTF)
//外部中断 INT {
INTE = 0; } //if(RCIF)
//串口接收中断,硬件冲突,未使用 //{ // tmp = RCREG; // TXREG = //} //GIE = 1;}
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 ppbox 1s超值版 的文章

 

随机推荐