89C52 流水灯

[复制链接]
5007|35
diy1997 发表于 2013-11-7 16:26 | 显示全部楼层
你都说得那么清楚了,还叫没有思路?
刚学不要想一开始就能写精简高效的程序,就照你说的一步一步来写,最后调试修改这样就能积累经验了.
sunboy428 发表于 2013-11-7 16:54 | 显示全部楼层
maicon_lb 发表于 2013-11-6 23:04
高手都在忙,没人来看帖子,大家都是菜鸟来网上找解答,然后都没人答

其实我找到我要的答案了,只不过在自己想。
16777216 发表于 2013-11-7 17:07 | 显示全部楼层
学校作业吗  
自己做的话一步步来 像其他大神说的 分开拆解,感觉你基本的都不会,就想弄这么指定的要求。。。

个人感觉是课堂实验,,,,,,,应付一下的话就算了吧
飞鹰嵌入式 发表于 2013-11-7 17:10 | 显示全部楼层
**啊!
unciauncia 发表于 2013-11-7 17:25 | 显示全部楼层
77的回答就很不错啊,单片机的东西  这个要自己多试验才行
jing123710 发表于 2013-11-7 19:49 | 显示全部楼层
初学者 顶一个
jing123710 发表于 2013-11-7 19:50 | 显示全部楼层
其实 我比你还菜
jing123710 发表于 2013-11-7 19:50 | 显示全部楼层
liu6930892 发表于 2013-11-7 20:24 | 显示全部楼层
学习中
栋无止境 发表于 2013-11-7 21:43 | 显示全部楼层
找一下郭天祥的51单片机教程看看吧,最近我也在研究,
卧龙生 发表于 2013-11-7 21:54 | 显示全部楼层
这个问题,拙计
黄小俊 发表于 2013-11-7 22:51 | 显示全部楼层
写四个死循环,每个循环里是每一个状态。每个循环里都有键盘检测程序。,然后键盘检测的时候,四种不同状态进入四个死循环。那个需要保存状态的用个全局变量。。这种办法效率不高。。。这样明白了吗?
woosoo521 发表于 2013-11-7 22:57 来自手机 | 显示全部楼层
祝楼主成功
zdcmac 发表于 2013-11-7 23:14 | 显示全部楼层
刚看了帖子写的,参考下,没有长按,长按我还没想出来
#include<reg51.h>
#include<intrins>

#define uint unsigned int

uint temp,number;

sbit key1=P1^1
sbit key2=P1^2

void delay(uint k);

void main()
{
        P0=0xf0;
        P1=0xff;
        while(1)
        {
                if(key1==0)
                {
                        delay(5);
                        if(key1==0)
                        {
                                temp=P0;
                                temp=_crol_(temp,1);
                                while(!key1);
                        }
                else
                {
                        temp=P0;
                        temp=_crol_(temp,1);
                }
                if(key2==0)
                {
                        delay(5);
                        if(key2==0)
                        {
                                temp=P0;
                                temp=_cror_(temp,1);
                                while(!key2);
                        }
                else
                {
                        temp=P0;
                        temp=_cror_(temp,1);
                }
                }
        }
}
zdcmac 发表于 2013-11-7 23:16 | 显示全部楼层
额,,,,
是 uint temp;不是uint temp,number;想用定时中断去写长按,还没想到
zdcmac 发表于 2013-11-8 10:21 | 显示全部楼层
上面那个是不行的,这问题不像是初学的。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部