找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4023|回复: 9
打印 上一主题 下一主题
收起左侧

求助单片机简单编程

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

)0W{751[}HF~GV1T{}]6S9X.png (89.65 KB, 下载次数: 89)

)0W{751[}HF~GV1T{}]6S9X.png

4}5724XY{TQ~88`6@1887MY.png (111.18 KB, 下载次数: 84)

4}5724XY{TQ~88`6@1887MY.png

作业.zip

58.4 KB, 下载次数: 6

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶1 踩
回复

使用道具 举报

沙发
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);
                   }
                 }

        }



}
回复

使用道具 举报

板凳
ID:191598 发表于 2017-4-20 13:42 | 只看该作者
按灯的数字顺序点亮,然后闪烁5秒,灭一秒,再从左往右全亮,L- E- D  ,后再全亮3秒
回复

使用道具 举报

地板
ID:7485 发表于 2017-4-20 14:37 | 只看该作者
又帮你作弊的嫌疑。
回复

使用道具 举报

5#
ID:191631 发表于 2017-4-20 14:58 | 只看该作者
这个多花时间学习 还是不难的
回复

使用道具 举报

6#
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 很给力!

查看全部评分

回复

使用道具 举报

7#
ID:191598 发表于 2017-4-20 17:31 | 只看该作者
ahshmj 发表于 2017-4-20 14:37
又帮你作弊的嫌疑。

只是个作业。。。怎么能算作弊呢。。。。。
回复

使用道具 举报

8#
ID:7485 发表于 2017-4-21 07:04 | 只看该作者
q3075105 发表于 2017-4-20 17:31
只是个作业。。。怎么能算作弊呢。。。。。

好吧,你说的是。
回复

使用道具 举报

9#
ID:1050867 发表于 2022-11-9 15:27 | 只看该作者
解决了吗?求教程
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

Powered by 单片机教程网

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