英锐恩单片机论坛,Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流

 找回密码
 立即注册
搜索
电子烟方案单片机单片机开发深圳单片机开发
单片机方案国产单片机8位单片机电子烟方案开发
查看: 3233|回复: 1
打印 上一主题 下一主题

C程序

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-24 16:41:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
// PORTD轮流输出0~9,显示到LED上
// PIC16F877    11.0592MHZ 晶振,PICMATE2002 IDE,WDT关

#include
void delayms(unsigned char settime);
const char  table[]={0x21,0x5d,0x32,0x18,0x6c,0x88,0xa0,0x1d,0x20,0x08};
unsigned char i,j;
unsigned char DELAYH,DELAYL;


main()
{  
  TRISC=0X00;
  TRISD=0X00;
  
  for(i=0;i<10;++i)
    {  
   
    PORTC=table;
    PORTD=table;
    for(j=0;j<2;j++)
       {
         delayms(200);        
       }
   
    }
}  
  
  void delayms(unsigned char settime)                        //延时x ms  
  {
     DELAYH=settime;                           //延时参数设置
     #asm
       DELAY2: MOVLW 0xFA       //这一小段汇编程序延时1ms
       MOVWF _DELAYL
    DELAY1: NOP
       DECFSZ  _DELAYL,F
       GOTO DELAY1
       DECFSZ _DELAYH,F
       GOTO DELAY2
     #endasm
   }
2#
 楼主| 发表于 2009-3-24 16:41:49 | 只看该作者
const char  table[]={0x21,0x5d,0x32,0x18,0x6c,0x88,0xa0,0x1d,0x20,0x08};
unsigned char i,j;                              //不要动辄使用全局变量
unsigned char DELAYH,DELAYL;     //同上


main()                            //要养成编程的好习惯,这样的简写不妥当
{  
  TRISC=0X00;
  TRISD=0X00;
  
  for(i=0;i<10;++i)
    {  
   
    PORTC=table[i];                  
    PORTD=table[i];                    //查表操作重复
    for(j=0;j<2;j++)
       {
         delayms(200);                    //简单延时,没必要传递参数
       }
   
    }
}  
  
  void delayms(unsigned char settime)                        //延时x ms
  
  {
     DELAYH=settime;                           //延时参数设置
     #asm
       DELAY2: MOVLW 0xFA       //这一小段汇编程序延时1ms
       MOVWF _DELAYL
    DELAY1: NOP
       DECFSZ  _DELAYL,F
       GOTO DELAY1
       DECFSZ _DELAYH,F
       GOTO DELAY2
     #endasm
   }




void delayms();

const unsigned char  table[]={0x21,0x5d,0x32,0x18,0x6c,0x88,0xa0,0x1d,0x20,0x08};

void main(void)
{  

  unsigned char i;
  TRISC=0X00;
  TRISD=0X00;
  
  for(i=0;i<10;++i)
    {  
            PORTC=PORTD=table[i];
            delayms();        
    }
}  
  
  void delayms()                        
  {
     unsigned int DELAYH=10000;                           //延时参数设置,用IDE调试
     while(--DELAYH);
   }
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|公司首页|Microchip单片机,模拟器件,接口电路,麦肯单片机,单片机应用交流 ( 粤ICP备09008620号 )

GMT+8, 2024-12-25 22:12 , Processed in 0.056888 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表