完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 robin_chen559 于 2013-11-29 16:19 编辑
用51(STC)单片机的时候端口定义LED ,!LED即可改变LED的状态,现在练习PIC12Lf1822好像不好用。 定时后中断: if(A==1) { LED_G = 0; A = 0; } else { LED_G = 1; A = 1; } 好使,但是LED_G = !LED_G;或LED_G = ~LED_G都没反应,为啥呢? 库文件没有这个运算符么? 源程序: #include #define LED_G RA0 unsigned char TMR1_NUM = 0; bit A; //子程序说明 void Init_Star(void); //开机初始化 void Init_TMR1(void); //定时器1初始化 //子程序 void Init_Star(void) //开机初始化 { OSCCON = 0b01101010; //内部4M系统时钟 TRISA0 = 0; //RA0输出 A = 1; LED_G = 1; } void Init_TMR1(void) //定时器1初始化 { TMR1H = 0x3c; //(65536-50000)/256 TMR1L = 0xaf; //(65536-50000)%256 TMR1IE = 1; INTCON = 0b11000000; //GIE、PEIE置1,中断设置 T1CON = 0b00010101; //TMR1内部1:2预分频,100mS计数 } void interrupt ISR(void) //中断服务子程序 { if(TMR1IF == 1) { TMR1IF = 0; TMR1H = 0x3c; //重装定时器1初值 TMR1L = 0xaf; TMR1_NUM++; if(TMR1_NUM >=5) { TMR1_NUM = 0; // LED_G = !LED_G; /****** *****/ if(A==1) { LED_G = 0; A = 0; } else { LED_G = 1; A = 1; } } } } void main(void) //主程序 { Init_Star(); //开机初始化 Init_TMR1(); //定时器TMR1初始化 while(1); } /*****************************************************/ 附件 :protues 7.10 mplab8.70 备注:由于MPLAB是设置配置字,仿真的时候PIC12LF1822的属性里边配置字要跟MPLAB的一样才行,不然仿真出来的周期不一样 |
|
相关推荐
2个回答
|
|
ret~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
|
|
楼主,解决了没有,我也是这问题啊,
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
298 浏览 1 评论
《DNESP32S3使用指南-IDF版_V1.6》第二十六章 INFRARED_RECEPTION实验
309 浏览 0 评论
826 浏览 0 评论
求助一下关于51系列单片机的Timer0的计时问题,TH0、TL0+1的时间是怎么算的?
1911 浏览 2 评论
【RA-Eco-RA4E2-64PIN-V1.0开发板试用】开箱+Keil环境搭建+点灯+点亮OLED
1427 浏览 0 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12031 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 03:13 , Processed in 0.789846 second(s), Total 41, Slave 34 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号