找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2768|回复: 0
打印 上一主题 下一主题
收起左侧

CC2530流水灯程序

[复制链接]
跳转到指定楼层
楼主
ID:633795 发表于 2019-11-1 13:01 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "ioCC2530.h"
void delay(int time)
{
  int i;
  char j;
  for(i=0;i<time;i++)
    for(j=0;j<240;j++)
    {
      asm("NOP");
      asm("NOP");
      asm("NOP");
    }
}
#define D3 P1_0     // P1_0定义为P1_0
#define D4 P1_1     // P1_0定义为P1_1
#define D5 P1_3     // P1_0定义为P1_3
#define D6 P1_4     // P1_0定义为P1_4
#define SW1  P1_2     //SW1端口宏定义
int cishu=0;
unsigned char h;

/*******************LED1初始化部分*****************/
void InitLed()
{
    P1SEL &= 0xE0;          //设置P1_0,P1_1,P1_3,P1_4,P1_2口为普通I/O口
    P1DIR |= 0x1B;          //设置P1_0,P1_1,P1_3,P1_4口为输出口
    P1=0x00;                //熄灭所有灯
}
void InitT1()
{
    T3CTL|=0x1C;
    T1CTL|=0x01;
    PERCFG=0x40;  
    P1SEL|=0x1B;         
    T1CCTL2=0x64;  
    T1CCTL1=0x64;
    T3CCTL0=0x74;
    T3CCTL1=0x74;
    T1CC2L=0xFF;        
    T1CC2H=h;
    T1CC1L=0xFF;
    T1CC1H=h;
    T3CC0=0x01;
    T3CC1=0x01;
}
/***************************************************/
void main(void)
{
    unsigned char js=0;
    unsigned char a=1;          //a=1为渐亮,a=2为渐灭
    InitLed();           //调用初始化函数
    InitT1();            
    while(1)
    {
      if(SW1==0)
      {
        delay(1);
        if(SW1==0)
          cishu++;
        if(cishu>3)
          cishu=1;
        while(!SW1);
      }
      if(cishu==1)
      {
        if((T1STAT&0x7F)>0)  //定时器1通道2中断标志,为1
      {
       T1STAT=T1STAT&0x80;   //清除中断标志,与04相反
       js++;
       if(js>=1)        //改变亮度的时间
       {
         js=0;         //清零
         if(a==1)     
         {
           delay(25);
           h=h+1;      //渐亮
         }
         else  
         {
           delay(25);
           h=h-1;   //渐灭
         }
         T1CC2L=0xff;  
         T1CC2H=h;
         T1CC1L=0xff;
         T1CC1H=h;
         T3CC0=h;
         T3CC1=h;
         if(h>=254)     //最大亮度
            a=2;       //设为渐灭
         if(h==0)       //最小亮度
            a=1;  
       }
      }  
       }
    }
}

/*if((T1STAT&0x7F)>0)
{
  js++;
  if(js>=1)
  {
    js=0;
    if(a==1)
      h=h+1;
    else
      h=h-1;
    T1CC1L=0xff;
    T1CC1H=h;
    T1CC2L=0xff;
    T1CC2H=h;
    if(h>=254)
      a=2;
    if(h==0)
      a=1;
  }
}*/


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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