完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
/* ******************************
晶振频率为6MHz。 使用T0和T1两个计时器产生方波, T0产生10Hz的方波,T1产生5Hz的 方波。 分别通过P2.0和P2.1两个引脚输出。 首先,输出T0产生的10Hz方波,2分 钟后输出T1产生的5Hz方波。于此同 时关闭T0中断,停止输出10Hz方波。 ****************************** */ #include ***it P20=P2^0; ***it P21=P2^1; unsigned char i; unsigned char z; unsigned char counter1; void main (void) { TR0=0; // 禁止T0 TMOD=0x11; // T0和T1均选择工作方式1,16位定时器 TL0=0x58; // T0和T1均定时50ms TH0=0x9e; TL1=0x58; TH1=0x9e; i=1; //计数变量i赋初值 z=2; //计数变量z赋初值 P20=0; // P2.0输出低电平 counter1=0; //中断次数为0 ET0=1; // 使能T0溢出中断 ET1=1; // 使能T1溢出中断 EA=1; // 使能CPU中断 TR0=1; //T0开始运行 while(1) // 等待中断 {;} } void T0_ISR (void) interrupt 1 //T0中断服务函数 { i--; //计数变量减1 counter1++; //中断次数加1 if(i==0) { P20=!P20; //将P2.0取反 i=1; // 重新给计数变量赋值 } if(counter1==2400) { TR1=1; //开启T1中断 } } void T1_ISR (void) interrupt 2 // T1中断服务函数 { TR0=0; //关闭T0中断 z--; //计数变量减1 P21=0; //P2.1输出低电平 if(z==0) { P21=!P21; //P2.1输出高电平 z=2; //重新给计数变量赋值 } } 求大神看看这段程序,现在我只能由T0产生信号,T1的信号无法产生,希望大神们能帮我改一改,使代码的功能完全实现。小弟在此谢过了!! |
|
相关推荐
6个回答
|
|
|
|
|
|
|
|
2016-4-26 22:55:15
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2017-9-30 17:39:11
头像被屏蔽
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2076 浏览 1 评论
3489 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2329 浏览 2 评论
2754 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4012 浏览 5 评论
960浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6346浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 13:53 , Processed in 0.682498 second(s), Total 86, Slave 68 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号