找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

求助单片机简单编程

查看数: 4624 | 评论数: 8 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2017-4-20 13:38

正文摘要:

想弄成,按灯的数字顺序点亮,然后闪烁5秒,再全亮3秒,但是,,学艺不精,就要交作业了。。求大神帮修改些程序,大二下刚开始学单片机,,有些符号不是很懂,可以改改我能看的懂的最好啦, ,,防老师提问。。。

回复

ID:1050867 发表于 2022-11-9 15:27
解决了吗?求教程
ID:7485 发表于 2017-4-21 07:04
q3075105 发表于 2017-4-20 17:31
只是个作业。。。怎么能算作弊呢。。。。。

好吧,你说的是。
ID:191598 发表于 2017-4-20 17:31
ahshmj 发表于 2017-4-20 14:37
又帮你作弊的嫌疑。

只是个作业。。。怎么能算作弊呢。。。。。
ID:111634 发表于 2017-4-20 16:01
本帖最后由 zl2168 于 2017-4-20 16:05 编辑

随便你怎么闪,只要编制相应的亮灯数组。
实例9  键控花样循环灯



花样循环1


从两边到中心依次点亮,每次增加1个,直至全亮;


从两边到中心依次暗灭,每次减少1个,直至全暗;


闪烁1次;


重复上述过程,不断循环(亮灯间隔0.5秒)。


花样循环2


从中心到两边,每次亮2个,并重复一次;


从中心到两边,每次亮3个,并重复一次;


每次亮4个,并重复一次;


重复上述过程,不断循环(亮灯间隔0.5秒)。


花样循环3


每次间隔亮4个,并重复一次;


从上至下,每次亮2个;


从上至下,每次增加亮2个,直至全亮;


闪烁2次;


重复上述过程,不断循环(亮灯间隔0.5秒)。


花样循环4


全亮;


从上至下依次暗灭,每次减少一个,直至全灭;


从上至下依次点亮,每次增加一个,直至全亮;


重复上述过程,不断循环(亮灯间隔0.5秒)。



Proteus仿真一下,确认有效。
实例9 键控花样循环灯.rar (36.47 KB, 下载次数: 5)


以上摘自张志良编著《80C51单片机Proteus仿真设计实例教程》清华大学出版社ISBN 978-7-302-41682-1。书中电路和程序设计有详细说明,程序语句条条有注解。



评分

参与人数 1黑币 +5 收起 理由
q3075105 + 5 很给力!

查看全部评分

ID:191631 发表于 2017-4-20 14:58
这个多花时间学习 还是不难的
ID:7485 发表于 2017-4-20 14:37
又帮你作弊的嫌疑。
ID:191598 发表于 2017-4-20 13:42
按灯的数字顺序点亮,然后闪烁5秒,灭一秒,再从左往右全亮,L- E- D  ,后再全亮3秒
ID:191598 发表于 2017-4-20 13:41
#include <reg51.h>
#define unsigned int

sbit S1=P1^7;                                                                 //按下启动开关
void delay(ms)                                          //延时函数
{
    int i;
        while(ms--)
        {
                 for(i=0;i<120;i++);
        }
}
void main()
{
    int i=0,run=0;                                                 //定义变量
       
       
        while(1)
        {                                                                         
             if(S1==0)                                                 //延时去抖动
                 {
                   delay(20);
                   if(S1==0)
                   {  
                      for(i=0;i<7;i++)
                             {
                             P1=P1&(~(1<<i));              //从P1.0口依次输出点亮,L依次亮
                                   delay(50);
                          }
                             for(i=0;i<8;i++)
                          {
                                   P3=P3&(~(1<<i));                           //从P3.0口依次输出点亮  E依次亮
                                 delay(50);
                          }
                             for(i=0;i<8;i++)
                          {
                                   P2=P2&(~(1<<i));                           //从2.0口依次输出点亮   E依次亮
                                   delay(50);
                          }
                          for(i=0;i<8;i++)                                  
                          {
                             P0=P0&(~(1<<i));                           //从0.0口依次输出点亮   D依次亮
                                 delay(50)        ;
                          }
                          delay(200);
                          for(i=0;i<8;i++)
                      {
                                 P1=0xff;P2=0xff;P3=0xff;P0=0xff;
                                 delay(250);
                                 P1=0x80;P2=0x00;P3=0x00;P0=0x00;
                                 delay(250);
                          }
                          
                                 P0=0xff;P1=0xff;P2=0xff;P3=0xff;          //端口设置为高电平
                             delay(500);
                   }
                 }

        }



}

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表