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

📄 485se.c

📁 硬件单片机rs485读写程序--通信发送程序。
💻 C
字号:
#include<regx52.h>
#define uchar unsigned char
#define uint unsigned int

sbit EN_485=P1^7;//485收发使能端,等于1时为发送,等于0时为接收
/*----延时程序----12M--*/
void delay(uint j)                /*XXXXms延时*/
{while(j--){        
	   uchar i;                   
	    for(i=0;i<125;i++)      /* 1ms延时*/
         {;}                          
	 }
  } 
//////////////////////////////////////发地址或命令
void send_ADDR(uchar addr)
{
TB8=1;
SBUF=addr;//addr=0x55表示命令,让所有从机启动扫灯程序
while(TI==0);TI=0;
TB8=0;
}
//////////////////////////////////////发数据
void send_DATA(uchar DATA)
{
SBUF=DATA;
while(TI==0);TI=0;
}
/////////////////////////////////////跳变
void scan_JMP()
{
uchar i,j,k,m;
for(i=0;i<7;i++){
    for(j=0;j<7;j++){
        send_ADDR(j+1);
		if(j==i){send_DATA(0xff);}else{send_DATA(0x00);}
		     }
	   send_ADDR(0x55);//从机启动扫灯程序
       delay(200);
		}
for(k=7;k>0;k--){
    for(m=7;m>0;m--){
        send_ADDR(m);
		if(m==k){send_DATA(0xff);}else{send_DATA(0x00);}
		     }
	   send_ADDR(0x55);//从机启动扫灯程序
       delay(200);
		}
}
/////////////////////////////////////////叠加
void scan_ADD()
{
uchar i,j,k,m;
for(i=0;i<7;i++){
    for(j=0;j<7;j++){
        send_ADDR(j+1);
		if(j<i+1){send_DATA(0xff);}else{send_DATA(0x00);}
		     }
	   send_ADDR(0x55);//从机启动扫灯程序
       delay(200);
		}
for(k=7;k>0;k--){
    for(m=7;m>0;m--){
        send_ADDR(m);
		if(m<k){send_DATA(0xff);}else{send_DATA(0x00);}
		     }
	   send_ADDR(0x55);//从机启动扫灯程序
       delay(200);
		}
}
/////////////////////////////////////1S闪一下
void scan_shine()
{
uchar i,j;
for(i=0;i<14;i++){
    for(j=0;j<7;j++){
        send_ADDR(j+1);
		if((i%2)==0){send_DATA(0xff);}
		if((i%2)==1){send_DATA(0x00);}
		     }
	   send_ADDR(0x55);//从机启动扫灯程序
       delay(200);
		}
}
/////////////////////////////////////渐变
void scan_SHA()
{
uchar i,j,k,m;
for(i=0;i<255;i++){
    for(j=0;j<7;j++){
        send_ADDR(j+1);
		send_DATA(i);
		     }
	   send_ADDR(0x55);//从机启动扫灯程序
       delay(10);
		}
for(k=255;k>0;k--){
    for(m=0;m<7;m++){
        send_ADDR(m+1);
		send_DATA(k);
		     }
	   send_ADDR(0x55);//从机启动扫灯程序
       delay(10);
		}
}
//////////////////////////////////////
void main (void)
{
uchar i,j,k;
SCON=0x90;
EN_485=1;
delay(100);
while(1){
for(i=0;i<5;i++){scan_JMP();}
for(j=0;j<5;j++){scan_ADD();}
for(k=0;k<5;k++){scan_SHA();}
scan_shine();
        }
     }///////////////////////////

⌨️ 快捷键说明

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