⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zt1.c

📁 是一个展厅灯光控制的软件
💻 C
字号:
#include <pic.h>
#include <stdio.h>
#include "usart.h"  

//#define TIMEOUT_1   78
//#define TIMEOUT_2  4600
//#define uint unsigned int
//#define nop()  asm("nop")
//#define ulong unsigned long
//#define uchar unsigned char //定义一下方便使用
#define PORTBIT(add,bit) ((unsigned)(&add)*8+(bit))//绝对寻址位操作指令
#define PORTCIT(add,bit) ((unsigned)(&add)*8+(bit))
#define PORTAIT(add,bit) ((unsigned)(&add)*8+(bit))

__CONFIG (XT&WDTDIS);
//LED DISPLAY CODE

static bit SI  @ PORTAIT(PORTA,1); //定义SI 
static bit SCP @ PORTAIT(PORTA,2); //定义scp  
static bit LCP @ PORTAIT(PORTA,3); //定义lcp   



void delayms(unsigned long number)     //延迟1ms
{
    unsigned long temp;
    for(;number>0;number--)
       {
         for(temp=34;temp>0;temp--);
       }
}



void send_byte( unsigned char out_byte)
{
  unsigned char i;
  delayms(1);
  for (i=0;i<8;i++)
      {
       SCP=0; 
       //SCP=0; 
        if ((out_byte&0x01)==0x01)
           {
            SI=1;
           }
        else
           {
            SI=0;
           }
       delayms(1); 
       SCP=1; 
       //SCP=1; 
       //SCP=0;       
       out_byte=out_byte>>1;
     }
}

void display_led(int led1,int led2,int led3,int led4,int led5,int led6,int led7,int led8)
{
  LCP=0;
  LCP=0;
  send_byte(led1);
  send_byte(led2);
  send_byte(led3);
  send_byte(led4);
  send_byte(led5);
  send_byte(led6);
  send_byte(led7);
  send_byte(led8);
  LCP=1;
  LCP=1;
}


void forstart()
{
  TRISA=0x00;
  TRISB=0x00;   
  TRISC=0X00;  
  ADCON0=0x45; //选择A/D 通道为RA0,打开A/D 转换器,在工作状态,且使A/D 转换时钟为8tosc
  ADCON1=0X07;  //设置RA口为I/O
  PORTA=0X00;  
  PORTB=0X00;      
  PORTC=0X00;   
  INTCON=0x00;  //关闭所有的中断
  //OPTION=0X0F;
  //init_comms();	
  //TXSTA=0X61;
  //RCSTA=0XD0;
}

void main(void)
{
  forstart();
  //adinitial();
  while(1)
       {
        PORTB=0X00; 
        PORTC=0X00; 
        display_led(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(500);                           //上电后延迟0.5ms

        PORTC=0X01; 
        display_led(0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00);         
        delayms(498);
        display_led(0x03,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                          //led1.2  m1
        
        PORTC=0X03;
        display_led(0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0x0f,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                          //led3.4  m2
        
        PORTC=0X07;
        display_led(0x1f,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0x3f,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                         //led5.6  m3
        
        PORTC=0X0f;
        display_led(0x7f,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                        //led7.8   m4
        
        PORTC=0X1f; 
        display_led(0xff,0x01,0x00,0x00,0x00,0x00,0x00,0x00);        
        delayms(498);
        display_led(0xff,0x03,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                       //led9.10   m5
        
        PORTC=0X3f;
        display_led(0xff,0x07,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0x0f,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                      //led11.12   m6
        
        PORTC=0X7f; 
        display_led(0xff,0x1f,0x00,0x00,0x00,0x00,0x00,0x00);        
        delayms(498);
        display_led(0xff,0x3f,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                     //led13.14    m7
        
        PORTC=0Xff; 
        display_led(0xff,0x7f,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                     //led15.16    m8
        
        PORTB=0X01; 
        PORTC=0Xff; 
        display_led(0xff,0xff,0x01,0x00,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0x03,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                    //led17.18     m9
        
        PORTB=0X03; 
        PORTC=0Xff; 
        display_led(0xff,0xff,0x07,0x00,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0x0f,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                    //led19.20    m10
        
        PORTB=0X07; 
        PORTC=0Xff; 
        display_led(0xff,0xff,0x1f,0x00,0x00,0x00,0x00,0x00);        
        delayms(498);
        display_led(0xff,0xff,0x3f,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                    //led21.22   m11
        
        PORTB=0X0f; 
        PORTC=0Xff; 
        display_led(0xff,0xff,0x7f,0x00,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0x00,0x00,0x00,0x00,0x00);
        delayms(498);                    //led23.24   m12
        
        PORTB=0X1f; 
        PORTC=0Xff;
        display_led(0xff,0xff,0xff,0x01,0x00,0x00,0x00,0x00);          
        delayms(498);
        display_led(0xff,0xff,0xff,0x03,0x00,0x00,0x00,0x00);
        delayms(498);                    //led25.26   m13
        
        PORTB=0X3f; 
        PORTC=0Xff; 
        display_led(0xff,0xff,0xff,0x07,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0x0f,0x00,0x00,0x00,0x00);
        delayms(498);                    //led27.28   m14
        
        PORTB=0X7f; 
        PORTC=0Xff; 
        display_led(0xff,0xff,0xff,0x1f,0x00,0x00,0x00,0x00);        
        delayms(498);
        display_led(0xff,0xff,0xff,0x3f,0x00,0x00,0x00,0x00);
        delayms(498);                   //led29.30   m15
        
        PORTB=0Xff; 
        PORTC=0Xff; 
        display_led(0xff,0xff,0xff,0x7f,0x00,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00);
        delayms(498);                   //led31.32  m16
        
        display_led(0xff,0xff,0xff,0xff,0x01,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0x03,0x00,0x00,0x00);
        delayms(498);                   //led33.34
        
        display_led(0xff,0xff,0xff,0xff,0x07,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0x0f,0x00,0x00,0x00);
        delayms(498);                   //led35.36
        
        display_led(0xff,0xff,0xff,0xff,0x1f,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0x3f,0x00,0x00,0x00);
        delayms(498);                  //led37.38
        
        display_led(0xff,0xff,0xff,0xff,0x7f,0x00,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0xff,0x00,0x00,0x00);
        delayms(498);                  //led39.40
        
        display_led(0xff,0xff,0xff,0xff,0xff,0x01,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0xff,0x03,0x00,0x00);
        delayms(498);                  //led41.42
        
        display_led(0xff,0xff,0xff,0xff,0xff,0x07,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0xff,0x0f,0x00,0x00);
        delayms(498);                  //led43.44
        
        display_led(0xff,0xff,0xff,0xff,0xff,0x1f,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0xff,0x3f,0x00,0x00);
        delayms(498);                 //led45.46
        
        display_led(0xff,0xff,0xff,0xff,0xff,0x7f,0x00,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x00,0x00);
        delayms(498);                 //led47.48
        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x01,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x03,0x00);
        delayms(498);                //led49.50
        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x07,0x00);
        delayms(498);
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x0f,0x00);
        delayms(498);                //led51.52
        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x1f,0x00);
        delayms(498);        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x3f,0x00);
        delayms(498);                //led53.54
        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0x7f,0x00);
        delayms(498);        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x00);
        delayms(498);                //led55.56
        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x01);
        delayms(498);        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x03);
        delayms(498);                //led57.58
        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x07);
        delayms(498);        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x0f);
        delayms(498);                //led59.60
        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x1f);
        delayms(498);        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x3f);
        delayms(498);                //led61.62
        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0x7f);
        delayms(498);        
        display_led(0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff);
        delayms(498);               //led63.64
        
        delayms(8000);              //延时8s
        
        PORTB=0X00; 
        PORTC=0X00; 
        display_led(0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
        delayms(102272);             //全熄灭90s
       

       }
}

  



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -