我想做一个单片机流水灯,大概思路是让单片机通过四个独立键盘控制四种形势的流水灯,向前辈求教程序

 我来答
意法半导体(中国)投资有限公司 2020-01-15
展开全部
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
zxqhiii
推荐于2018-04-19
知道答主
回答量:79
采纳率:0%
帮助的人:0
展开全部
#include<reg51.h>
sbit S1=P1^4;
sbit S2=P1^5;
sbit S3=P1^6;
sbit S4=P1^7;
unsigned char keyval;

void led_delay(void)
{
unsigned char i,j;
for(i=0;i<250;i++)
for(j=0;j<250;j++)
;
}
void delay20ms(void)
{
unsigned char i,j;
for(i=0;i<100;i++)
for(j=0;j<60;j++)
;
}
/*正向流水点亮LED*/
void forward(void)
{
P3=0xfe;
led_delay();
P3=0xfd;
led_delay();
P3=0xfb;
led_delay();
P3=0xf7;
led_delay();
P3=0xef;
led_delay();
P3=0xdf;
led_delay();
P3=0xbf;
led_delay();
P3=0x7f;
led_delay();
P3=0xff;
P3=0xfe;
led_delay();
}
/*反向流水点亮LED*/
void backward(void)
{
P3=0x7f;
led_delay();
P3=0xbf;
led_delay();
P3=0xdf;
led_delay();
P3=0xef;
led_delay();
P3=0xf7;
led_delay();
P3=0xfb;
led_delay();
P3=0xfd;
led_delay();
P3=0xfe;
led_delay();
}
/*关闭所有LED*/
void stop(void)
{
P3=0xff; //关闭8个LED
}
/*闪烁点亮LED*/
void flash(void)
{
P3=0xff; //关闭8个LED
led_delay();
P3=0x00; //点亮8个LED
led_delay();
}

void main(void)
{
TMOD=0x01;
EA=1;
ET0=1;
TR0=1;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
keyval=0;
while(1)
{
switch(keyval)
{
case 1:forward();
break;
case 2:backward();
break;
case 3:stop();
break;
case 4: flash();
break;
}
}
}
void Time0_serve(void) interrupt 1 using 1
{
if((P1&0xf0)!=0xf0)
{
delay20ms();
if(S1==0)
keyval=1;
if(S2==0)
keyval=2;
if(S3==0)
keyval=3;
if(S4==0)
keyval=4;
}
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;
}
用 AT89C51
意法半导体(中国)投资有限公司
2021-01-14 广告
可以写对它写程序,让它听从你的安排,你让它实现什么功能它就能实现,比如电子钟、电子琴、打印机、手机、电梯控制,智能家具如:空调、冰箱、洗衣机等,如果这些家电没有它,什么都不能工作。单片机内部很复杂,你研究的越深你就会越爱上它,它可以帮你实现... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
wgf1975
2011-06-24 · TA获得超过799个赞
知道小有建树答主
回答量:981
采纳率:50%
帮助的人:210万
展开全部
个人认为,在每个流水灯子程序循环中,如检测到键盘变化,跳出,根据键值,再跳入对应子程序中。不知可否。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xuanchi01
2011-06-24 · TA获得超过366个赞
知道答主
回答量:610
采纳率:0%
帮助的人:342万
展开全部
问题补充:一个小程序,两个子函数分别为控制流水灯和让电机旋转,想让两个另外,通过你的程序可以看出,你没有延时函数,这将导致你的八个灯同时亮,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
tang_worried
2011-06-24
知道答主
回答量:74
采纳率:10%
帮助的人:14万
展开全部
你是要汇编的还是C语言的啊
追问
C语言的最好
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
知识浪
2011-06-24 · 超过13用户采纳过TA的回答
知道答主
回答量:87
采纳率:0%
帮助的人:35.6万
展开全部
这个可是很简单,你自己先看看,遇到什么问题再问,这样提高快一些
追问
就像是分别做了四种花样的流水灯,但是要通过单片机上的四个独立键盘控制让四次试验能在一次试验中完成  主要是加入键盘操作这块不会弄
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式