📄 485se.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 + -