永发信息网

80C51单片机外部脉冲计数怎么设置

答案:4  悬赏:70  手机版
解决时间 2021-03-05 04:00
计数器设置好后不是会自动计数吗那怎么才能设置成外部脉冲计数,不是外部中断
最佳答案
TMOD=0x05或者TMOD=0x50
分别是定时器1和定时器0的外部计数方式
然后启动 TR1=1或 TR0=1
全部回答
* 程序名称:pwm占空比调整演示程序 * *程序思路说明: * * 只需要4个按键。 * *关于频率和占空比的确定,对于12m晶振,输出频率为1khz,这样定时中断次数设定为 * *10,即0.01ms中断一次,则th0=ff,tl0=f6;由于设定中断时间为0.01ms,这样可以设 * *定占空比可从1-99%变化。即0.01ms*100=1ms * ******************************************************************************/ #include #define uchar unsigned char #define uint unsigned int uchar timer0_tick,zkb=1;//timer0_tick计数,zkb占空比 uchar i=0,n=0,temp=0; code seven_seg[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//1,2,3, 4, 5, 6, 7, 8, 9 code scan[2]={0xfd,0xfe}; uchar counter[2]={0,0}; sbit an1=p3^2;//调整个位 sbit an2=p3^3;//调整十位 sbit an3=p3^4;//启动按键 sbit an4=p3^5;//确认按键 void delay(uint z)//软件延时函数 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } static void timer0_isr(void) interrupt 1 using 0 //中断函数 { tr0=0; tl0=0xf6; th0=0xff; tr0=1; if (zkb>99) zkb=1; if (zkb<1) zkb=99; counter[0]=zkb%10; counter[1]=zkb/10; n++; if(n==100) { n=0; i++; if(i==2) i=0; p0=seven_seg[counter[i]]; p2=scan[i]; } timer0_tick++; if(timer0_tick++==100) { timer0_tick=0; } if(an2==0) { delay(100); if(an2==0) { temp=1; counter[0]++; if(counter[0]==10) { counter[0]=0; } } } if(an1==0) { delay(100); if(an1==0) { temp=1; counter[1]++; if(counter[1]==10) { counter[1]=0; } } } zkb=counter[0]+counter[1]*10; if(an4==0) { delay(5); if(an4==0) temp=0; } if(temp==1) p3_7=0;// p3_7为脉冲输出引脚 else { if (timer0_tick<=zkb) { p3_7=1; } else { p3_7=0; } } } static void timer0_initialize(void)//中断初始化 { ea=0; timer0_tick=0; tr0=0; tmod=0x01; tl0=0xf6; th0=0xff; pt0=0; et0=1; tr0=1; ea=1; } void main(void) { star: delay(100); if(an3!=0) goto star;//按键3启动脉冲 timer0_initialize(); while(1); } //按按键3启动脉冲器,初始设置占空比为1%,按键1调整十位, //按键2调整个位,一旦调整,输出为0,必须按确认键确认, //输出正确脉冲.可以占空比1-99%任意调节。
TMOD的D2(T0)或D6(T1)置1即可。比如: TMOD=0x55;即T0与T1设为计数器,模式1(16位计数器模式)
把TMOD C/T设置为1就可以了 TMOD 示意表格 下面的表格列出了TMOD各个位的名字,点击下面的1和0就可以给各个位置1或者置0,控制两个定时器/计数器的工作方式。 7 6 5 4 3 2 1 0 GATE C/T M1 M0 GATE C/T M1 M0 然后在对应的T0,T1输入脉冲就可以计数了 还可以通过M0,M1设置工作在什么方式,方式同定时器。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
十年前的欠债,如今就凭当年的欠条能收回钱吗
女性,21岁,现妊娠9周,要求人工流产终止妊
ps调色调不好,是不是我对色彩不敏感啊
龙凤家具城地址在哪,我要去那里办事
4.8x+3.6x=42怎么解
女友因为忘不了前男友和我分手,分开后她没有
汉字有哪几种造字法?分别举例说明。
有没有在孕期服用过润康的妈妈
一品砂锅地址在什么地方,想过去办事
security boot什么意思
你是怎么用支付宝充值苹果的??
漳州市电影发行放映公司在什么地方啊,我要过
苹果手机上之前有个别人的ID,后来我又换成了
四棱锥P-ABCD的底面为矩形,PA⊥底面ABCD,PA=A
剑网3万花和少林野外 PvP哪个厉害!这两个职
推荐资讯
徐老师来巡山2017最新一期5-13期,加里奥跳龙
青岛格力空调每年什么时间搞活动
我是学人力资源管理的,做了两年的人力资源,
中信银行住房抵押贷款计算器
我的手柄式罗技F310
手机话费里的“专款余额”是什么意思?
中国的四灵中的麒麟是怎样的形象?
原来喜欢不可以伪装,原来快乐不可以假装,原
用手机号注册的新微信号 怎么解绑手机号
启信钢材市场地址在什么地方,想过去办事
铁锋区齐齐哈尔蒲公英(铁锋百花店)怎么去啊,
请问如何查看电脑的带有 WDDM 1.0 或更高版本
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?