自己用单片机的串口 做一个控制小车的试验!在程序流程图上该怎么做!怎么样使程序更优化!
我用过这个单片机,但是没有用来做过汽车防盗。此单片机有两个UART,可以设置不同波特率,倒是可以用来接两个带UART的模块,做一般的汽车防盗,应该还是没问题哈。
主要是你要看书,遥控器还需要远红外遥感的。具体的,这些资料,网上很多。
#include <reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit IN4=P1^3;
sbit LEFT=P1^4;
sbit RIGHT=P1^5;
uint m,n;
void int_t0() interrupt 1 using 1
{ TR0=0;
TH0=-1000/32;
TL0=-1000%32;
if(m<5000)
{ m++;
TR0=1;
}
if(m=5000)
{ IN1=1;
IN2=0;
IN3=1;
IN4=0;
TR0=0;
}
}
void int_t1() interrupt 3 using 2
{ TR1=0;
TH1=-5000/256;
TL1=-5000%256;
if(n<18000)
{ n++;
TR1=1;
}
if(n==18000)
{ IN1=1;
IN2=1;
IN3=1;
IN4=1;
TR0=0;
}
}
void main()
{ uchar l,r;
uint i,j;
TMOD=0x10;
TH1=-5000/256;
TL1=-5000%256;
EA=1;
ET1=1;
IP=0x08;
TR1=1;
while(1)
{ LEFT=1;
RIGHT=1;
r=RIGHT;
l=LEFT;
if(l==1&&r==1)
{ IN1=1;
IN2=0;
IN3=1;
IN4=0;
}
if(l==1&&r==0)
{ IN1=1;
IN2=0;
IN3=1;
IN4=1;
}
if(l==0&&r==1)
{ IN1=1;
IN2=1;
IN3=1;
IN4=0;
}
if(l==0&&r==0)
{ IN1=1;
IN2=0;
IN3=1;
IN4=0;
i++;
if(i<4)
for(j=0;j<30000;j++);
if(j==4)
{ TMOD=0x00;
TH0=-1000/32;
TL0=-1000%32;
EA=1;
ET0=1;
TR0=1;
while(m<5000);
}
}
}
}
诏姣白芝: void key() { p3=0xff; if(key1==0) { delay(10); d1=~d1; } 你把这段程序改为:void key() { p3=0xff; if(key1==0) { delay(10); d1=~d1; while(!key1);//这是检测你的手是否释放按键 }
仙游县19569325586: 用51单片机的10做10个按键和串口控制一盏灯的亮和灭. - ?
诏姣白芝: 写程序就算了,给你思路吧.P0口和P1.0\P1.1所做的按键按下时,都做同一件事,比如:sbit SW7=P1^1; sbit LED=P1^3; bool led_flag; if(!SW7) //按键7被按下 { led_flag=~led_flag; //将灯亮灭标志位取反 while(!SW7); //等待松开按键 } 而在主函数mian中还有一个灯亮灭的函数 led() { if(led_flag) //如果是灯灭的指令,则延时3秒,再将灯引脚电平翻转 Delay3s(); LED=led_flag; } 串口的不多说了.做的事情都是一样的
仙游县19569325586: 想用电脑串口来控制一个12V的电源小开关,不知道如何办 - ?
诏姣白芝: 有 带串口 的 继电器控制器的!^_^
仙游县19569325586: 单片机通过串口控制微型打印机 - ?
诏姣白芝: 不用这么麻烦的,51单片机可以直接带动微型打印机的,就像超市的微型打印机那种,你看超市打印售货小条时用电脑了吗?具体连接方法就看微型打印机的接口是什么样的,要是串口的就方便了,直接与单片机的串口连接就行了.
仙游县19569325586: pc通过串口控制单片机来控制小灯 - ?
诏姣白芝: 挺简单的呀 主程序里面的循环体while里面加上 switch(rechar) { case 0x01:P0 = 0x01;break; case 0x02:P0 = 0x02;break;...default: P0 = 0x00;break; } 在UART的中断里面将接收到的字符存放在rechar里面,如果怕遇到干扰什么的误操作,还可以在通信内加入协议什么的.譬如7e开始 0d结束,中间加入数据长度字还有数据和校验字节什么的.这个都是后话,先从简单的调起,调出来了再根据自己的需求修改.
仙游县19569325586: 谁来帮我用汇编语言写一个用串口、中断来控制小灯的实例诶,(飞思卡尔单片机) - ?
诏姣白芝: //发送一个字节 { while(SCI1S1_TDRE==0); SCI1D=TransByte; } /*main()*/ void main(void) { IsSCI = 0; InitSCI0(); EnableInterrupts;
仙游县19569325586: 我的单片机有一个RS232的串口,但是控制两个外设,可以怎么做啊???? - ?
诏姣白芝: 这个需要你从硬件软件上实现,硬件可以将RS232分为2个,然后软件编程的时候发送一定格式的帧,需要标示下源地址与目的地址,这样应该就可以了
仙游县19569325586: 如何用单片机的串口控制数码管 - ?
诏姣白芝: 单片机的串口控制数码管,要怎么控制,是控制显示什么数吗? 用串口控制,是单片机的串口接收数据吗?那就要电脑串口发送数据了. 那你想怎么控制呢,电脑发送一个数据,你自己确定,单片机串口接收到这个数据 了,数据就应该怎样就行了.
仙游县19569325586: 用电脑的串口、并口控制电子元件(电路) - ?
诏姣白芝: 可以用单片机电路控制,你需要写一个单片机程序,通过电脑串口向单片机发送命令控制.我画了一个电路供你参考,用继电器控制电路通断,用达林顿三机管驱动电机,因为不知道你的电机工作电压是多少V ,我电路图中假设为24V,你需要找一个24V电源为电路板供电.电路中所用的器件可以到电子元件市场买,如果附近没有电子元件市场可以上网上去买.
仙游县19569325586: 淘宝上买了一个ch340模块,并且自己焊了一个最小系统,如何再设计一个控制电源的开关的电路 - ?
诏姣白芝: 如果我理解的没错,要实现你的目的应该的大体思路是:选一款带串口的单片机也做成一个最小系统用任意输出口驱动一微型继电器,其常开触点就可以做你的最小系统电源开关了,将单片机串口与你的CH340模块连接,然后,在单片机程序里可以读串口字符来判定开关,比如收到A是开收到B是关,这样就可以在你的电脑中用串口调试软件通过发字符的方式来开关你的最小系统了.