完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我想实现一个按键按下后LED灯亮起,再按一下LED灯熄灭,可是程序烧写后,按一下按键亮了一会儿马上又熄灭了,每次按下只亮一会儿,可以帮我看下程序吗?同样的程序在51中是可以实现的,到PIC16F1933里面就不行了(电灯程序部分)
#include #include #define uint unsigned int #define uchar unsigned char uint i,j; uchar SS; /***********************************延时函数*********************/ void delay(uint z) { uint x,y; for(x = z;x>0;x--) for(y = 100;y>0;y--) ; } /***********************************延时函数*********************/ void main() { OSCCON = 0XFB; TRISA = 0X00; TRISC = 0XFF; PORTA = 0XFF; SS=0XFF; while(1) { if(RC7 == 0) { delay(21); SS = ~SS; while(!RC7); delay(21); } PORTA = SS; } } |
|
相关推荐
5个回答
|
|
我用过PIC16F1936的芯片,跟你用的PIC16F1933差不多,只不过就是内部RAM大小不一样,我有点搞不明白,你为啥要定义uchar SS,
常量用#define SS 0XFF就好了啊(其实没有必要),PORTA端口作为输出端口对吧,要么为0XFF,要么为0X00,你要设置PORTA为数字量,上电默认为模拟量, 应该是这样子 TRISA = 0X00; ANSELA = 0XFF; //将PORTA 设为数字量 LATA = 0; //将PORTA 清0 while(1) { if(RC7 == 0) { delay(10); if(RC7 == 0) { while(!RC7); //按键松开执行LED反转 LATA = ~LATA; } } } |
|
|
|
这样你再试试看 看看有没有效果。
|
|
|
|
#include #include #define uint unsigned int #define uchar unsigned char #define LED PORTAbits.RA4 #define KEY PORTCbits.RC7 __CONFIG(0x0FA4); // __CONFIG(0x3AFF); uint i,j; uchar SS; /***********************************延时函数*********************/ void delay(uint z) { uint x,y; for(x = z;x>0;x--) for(y = 100;y>0;y--) ; } /***********************************延时函数*********************/ void main() { OSCCON = 0XFB; TRISA = 0X00; TRISC = 0xFF; //ANSELA = 0X00; //将PORTA 设为数字量 PORTA = 0XFF; //将PORTA 清0 SS = 0; while(1) { if(KEY == 0) { delay(21); if(KEY == 0) { KEY == 1; while(!KEY); //按键松开执行LED反转 SS++; if(SS == 4) { SS = 0; } } } switch (SS) { case 1:PORTA=0XFE;break; case 2:PORTA=0XDF;break; case 3:PORTA=0XEF;break; case 0:PORTA=0XFF;break; } } } |
|
|
|
panjianwei90 发表于 2015-5-28 11:15 这个问题是由于没有配置字引起的,不过非常感谢您的回答!学到挺多东西。 |
|
|
|
路过,学习了。
|
|
|
|
只有小组成员才能发言,加入小组>>
求解外围电路实现的是4脚给持续低电平复位并正常工作,高电平不工作的原因
2102 浏览 1 评论
3665 浏览 3 评论
PIC1946程序有一个变量在运行过程中恢复初始值其他变量保持不变
2353 浏览 2 评论
2779 浏览 0 评论
PIC16F1825的RC5引脚,在主程序中操作无效,在中断中可以改变是为什么?
4066 浏览 5 评论
1010浏览 0评论
用XC8编译PIC18F25K80时提示下面Error,求怎么解决这个问题
6395浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-25 14:01 , Processed in 0.741766 second(s), Total 90, Slave 73 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号