打印

这是一个流水灯程序,但是GP4和GP5不能正常输出,请高手指点

[复制链接]
1619|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanquan31|  楼主 | 2013-10-6 19:41 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

/*******************************************************
文件名;LED_water.C
单片机型号;pic12f683
功能;流水灯
*******************************************************/
#include<pic.h>
#define uchar unsigned char
#define uint unsigned int
__CONFIG(FCMDIS & IESODIS & BORDIS & CPD & PROTECT & MCLRDIS & PWRTEN &WDTDIS);
void delay_ms(uint ms);
uchar FCV_LED;                        //左移或者是右移基数FCV_LED,i为移动次数
void main(void)
{ OPTION=0x07;
   OSCCON=0x77;                            //内部时钟为时钟,运行频率为8MHZ
   TRISIO=0x00;                                //所有端口均为输出        
   while(1)        
    {  uchar i;        
        FCV_LED=0x01;        
        for(i=0;i<5;i++)         
             { GPIO=FCV_LED;        
                 FCV_LED=(FCV_LED<<1);        
                     delay_ms(2000);
             }        
                 FCV_LED=0x20;               
                 for(i=0;i<5;i++)
  {
              GPIO=FCV_LED;
              FCV_LED=(FCV_LED>>1);
              delay_ms(2000)
}
                 
            }
                }

void delay_ms(uint ms)                //延时子程序
   {
            uchar i;
                 while(ms--)
                {
                 for(i=0;i<87;i++);
                }
}
沙发
wangch_sh| | 2013-10-6 19:43 | 只看该作者
看数据手册,有第二功能吧。。。。。。。。

使用特权

评论回复
板凳
lnulibin| | 2013-10-7 14:13 | 只看该作者
在WHILE(1)之前加上这样一段就可以了。

RP0=1;//选择BANK 1
ANSEL=0;//作为数字口
TRISIO=0;//设定GP<5:0>为输出。

RP0=0;//选择BANK 0
CMCON0=0X07;//取消比较输出功能。


使用特权

评论回复
地板
yewuyi| | 2013-10-8 09:17 | 只看该作者
点亮一个LED灯也需要找高手的话,估计当前的电子世界要倒退40年了。。。

这么简单的问题,自己找点书翻翻就应该能解决的,何必腆着脸上来求人?

使用特权

评论回复
5
hanquan31|  楼主 | 2013-10-8 10:05 | 只看该作者
问题已经解决了,我是学汇编的,想从汇编转向C

使用特权

评论回复
6
yewuyi| | 2013-10-8 14:41 | 只看该作者
hanquan31 发表于 2013-10-8 10:05
问题已经解决了,我是学汇编的,想从汇编转向C

看来你汇编学的也很不熟练。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

4

帖子

0

粉丝