标题:
路灯控制器的设计思路
[打印本页]
作者:
19960922
时间:
2017-9-28 13:57
标题:
路灯控制器的设计思路
路灯总控制器由单片机、蜂鸣器、8位数码管、矩阵式键盘构成;终端路灯控制器由一片单片机系统和8路流水灯构成。路灯总控制器的键盘上定义一个开灯键、一个关灯键、一个确认键。路灯控制指令的数据由2个字节组成,第1个字节表示操作哪盏灯,第2个字节表示开灯还是关灯。第1个字节哪一位为1表示对该位所代表的灯进行操作,第2个字节为0xff表示开灯,为0x00表示关灯。例如:假如被传送的指令数据字节为0xff0xc0,表示打开第1、2两盏灯;假如被传送的指令数据字节为0x000x0f,表示关闭第5、6、7、8四盏灯。用户使用方法:开灯(关灯)+灯编号+确认键。假如要开第1盏灯,操作方法是按一下开灯键,再按1键,最后按确认键。再如,关灯键+1+2+3+确认键,即表示关闭第1、2、3盏灯,同时,数码管上相应的1、2、3位数码管中间的g段亮起来,当终端路灯控制器接收指令后,发回确认信息。确认信息指令:将主控端发送过来的数据原样发送回主控端,即确认信息与主控制器发出的信息一致。路灯总控制器接收确认信息后在相应数码管显示1或0表示开灯或关灯成功,同时蜂鸣器发出“嘀”的一声。
作者:
漫步经心
时间:
2017-9-28 16:51
思路很容易理清,但是实现,很多细节就没那么容易了
作者:
19960922
时间:
2017-9-29 12:42
有仿真图以及程序吗
作者:
19960922
时间:
2017-9-29 12:47
请问具体要如何做?
作者:
19960922
时间:
2017-10-20 14:07
#include<at89c51.h>
#define uint unsigned int
#define uchar unsigned char
uchar code led[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar num;
void delay(uchar x)
{
uchar y,z;
for(y=x;y>0;y--)
for(z=250;z>0;z--);
}
void display(uchar num)
{
P2_0=0;
P0=~led[num/10];
delay(5);
P2_0=1;
P2_1=0;
P0=~led[num%10];
delay(5);
P2_1=1;
}
void TAKE_SBUF(uchar dat)
{
ES=0;
SBUF=dat;
while(~TI);
TI=0;
ES=1;
}
void main()
{
SCON=0X90;
EA=1;
ES=1;
P2=0xff;
num=0;
if(P1_0==0)
TAKE_SBUF(num+1);
while(1)
{
}
}
void int0rupt() interrupt 4
{
uchar i;
num=SBUF;
if(num>99)
num=0;
for(i=200;i>0;i--)
display(num);
TAKE_SBUF(num+1);
RI=0;
}
作者:
19960922
时间:
2017-10-20 14:08
哪位可以帮我修改一下程序,谢谢
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1