要求:

1、至少10个发光管4种花样自动变换,循环往复。

2、彩灯花样变换的快慢节拍可以手动和自动方式控制,手动控制按钮按一次转换一次;自动控制方式每15秒变换一次,1分钟循环一遍。

3、系统复位清零开关。

获取该 程序+protues 的方式:

1、CSDN下载:

https://download.csdn.net/download/qq_38351824/11274657

2、关注微信公众号下载:

     ① 关注微信公众号:Tech云  

     ②

3、可以关注点赞并在下方评论,我给你邮箱发过去。

一、Protues仿真图:

二、程序源码:

因为注释非常的全,这里就不再进行讲解了。

/*******************************************************************************
================================================================================
【平    台】STC89C51平台
【编    写】Sumjess
【E-mail  】1371129880@qq.com
【软件版本】V2.0
【最后更新】2018年09月06日
【相关信息参考下列地址】
【网    站】Sumejss博客  https://blog.csdn.net/qq_38351824电子发烧友  http://bbs.elecfans.com/zhuti_mcu_1.html中国电子网  http://bbs.21ic.com/icfilter-typeid-11-214.html
---------------------------------------------------------------------------------
【dev.env.】MDK4.14及以上版本
【Target  】STC89C51
第一次修订:2019/05/23
第二次修订:2018/05/24
第三次修订:2018/05/26
================================================================================
********************************************************************************/
#include <reg52.h>             //调用单片机头文件
#define uchar unsigned char  //无符号字符型 宏定义   变量范围0~255
#define uint  unsigned int   //无符号整型 宏定义    变量范围0~65535sbit led0 = P0^0;     //led定义
sbit led1 = P0^1;    //led定义
sbit led2 = P0^2;    //led定义
sbit led3 = P0^3;    //led定义
sbit led4 = P0^4;    //led定义
sbit led5 = P0^5;    //led定义
sbit led6 = P0^6;    //led定义
sbit led7 = P0^7;    //led定义
sbit led8 = P2^0;    //led定义
sbit led9 = P2^1;    //led定义sbit key0 = P3^2;   //定义手动控制按键
sbit key1 = P3^3;    //定义自动控制按键uchar x =50;             //调节LED闪烁速率
uint js = 0,flag_auto=0;//定义计数15秒,自动变花样标志位void delayms(uint z)  //毫秒
{uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);
}void Timer0_init()             //定时器0初始化
{TMOD=0x01;                    //设置定时器0为工作方式1(M1M0为01)TH0=(65536-45872)/256;      //装初值11.0592M晶振定时50ms数为45872TL0=(65536-45872)%256;     ET0=1;                     //开定时器0中断EA=1;                     //开总中断
}void timer0() interrupt 1 using 1  //定时器0中断服务函数
{TH0=(65536-45872)/256;        //装初值11.0592M晶振定时50ms数为45872TL0=(65536-45872)%256; js++;                     //叠加20次 是一秒if(js==300) { js=0;                       //清空flag_auto=flag_auto+1;        //产生15s的倒计时if(flag_auto>3)  flag_auto=1;    //限幅,最多4个花样}
}void LED0();  //花样1
void LED1();  //花样2
void LED2();  //花样3
void LED3();  //花样4void main()
{Timer0_init(); //定时器初始化while(1){if(key1==0)   //自动控制按键{  delayms(3); //去除按键抖动if(key1==0){ while(!key1);     //以上表示按下开始按键flag_auto=0;    //清零TR0=1;            //开启定时器while(1){if(key0==0)        //调节到手动模式{TR0=0;      //关闭定时器js=0;  flag_auto=0;//计数、自动换花样变量清零break;     //跳出}switch(flag_auto)//花样自动变化{case 0:  LED0(); break;case 1:  LED1(); break;case 2:  LED2(); break;case 3:  LED3(); break;}}}}if(key0==0)   //手动控制按键{  delayms(3); //去除按键抖动if(key0==0){ while(1){if(key1==0)           //调节到自动模式{TR0=0;            //关闭定时器js=0;  flag_auto=0;//计数、自动换花样变量清零break;           //跳出}if(key0==0)      ++flag_auto;//换花样if(flag_auto>3)  flag_auto=1;    //限幅,最多4个花样switch(flag_auto) //花样手动变化{case 0:  LED0(); break;case 1:  LED1(); break;case 2:  LED2(); break;case 3:  LED3(); break;}}}}}}void LED0(){
led0 = 1;    //led赋值
delayms(x);
led1 = 1;    //led赋值
delayms(x);
led2 = 1;    //led赋值
delayms(x);
led3 = 1;    //led赋值
delayms(x);
led4 = 1;    //led赋值
delayms(x);
led5 = 1;    //led赋值
delayms(x);
led6 = 1;    //led赋值
delayms(x);
led7 = 1;    //led赋值
delayms(x);
led8 = 1;    //led赋值
delayms(x);
led9 = 1;    //led赋值
delayms(x);
led0 = 0;    //led赋值
delayms(x);
led1 = 0;    //led赋值
delayms(x);
led2 = 0;    //led赋值
delayms(x);
led3 = 0;    //led赋值
delayms(x);
led4 = 0;    //led赋值
delayms(x);
led5 = 0;    //led赋值
delayms(x);
led6 = 0;    //led赋值
delayms(x);
led7 = 0;    //led赋值
delayms(x);
led8 = 0;    //led赋值
delayms(x);
led9 = 0;    //led赋值
delayms(x);}
void LED1(){
led0 = 1;    //led赋值
led1 = 1;    //led赋值
delayms(x);
led2 = 1;    //led赋值
led3 = 1;    //led赋值
delayms(x);
led4 = 1;    //led赋值
led5 = 1;    //led赋值
delayms(x);
led6 = 1;    //led赋值
led7 = 1;    //led赋值
delayms(x);
led8 = 1;    //led赋值
led9 = 1;    //led赋值
delayms(x);
led0 = 0;    //led赋值
led1 = 0;    //led赋值
delayms(x);
led2 = 0;    //led赋值
led3 = 0;    //led赋值
delayms(x);
led4 = 0;    //led赋值
led5 = 0;    //led赋值
delayms(x);
led6 = 0;    //led赋值
led7 = 0;    //led赋值
delayms(x);
led8 = 0;    //led赋值
led9 = 0;    //led赋值
delayms(x);
}
void LED2(){
led0 = 1;    //led赋值
led1 = 1;    //led赋值
led2 = 1;    //led赋值
delayms(x);
led3 = 1;    //led赋值
led4 = 1;    //led赋值
led5 = 1;    //led赋值
delayms(x);
led6 = 1;    //led赋值
led7 = 1;    //led赋值
led8 = 1;    //led赋值
led9 = 1;    //led赋值
delayms(x);
led0 = 0;    //led赋值
led1 = 0;    //led赋值
led2 = 0;    //led赋值
delayms(x);
led3 = 0;    //led赋值
led4 = 0;    //led赋值
led5 = 0;    //led赋值
delayms(x);
led6 = 0;    //led赋值
led7 = 0;    //led赋值
led8 = 0;    //led赋值
led9 = 0;    //led赋值
delayms(x);
}
void LED3(){
led0 = 1;    //led赋值
delayms(x);
led0 = 0;    //led赋值
delayms(x);
led1 = 1;    //led赋值
delayms(x);
led1 = 0;    //led赋值
delayms(x);
led2 = 1;    //led赋值
delayms(x);
led2 = 0;    //led赋值
delayms(x);
led3 = 1;    //led赋值
delayms(x);
led3 = 0;    //led赋值
delayms(x);
led4 = 1;    //led赋值
delayms(x);
led4 = 0;    //led赋值
delayms(x);
led5 = 1;    //led赋值
delayms(x);
led5 = 0;    //led赋值
delayms(x);
led6 = 1;    //led赋值
delayms(x);
led6 = 0;    //led赋值
delayms(x);
led7 = 1;    //led赋值
delayms(x);
led7 = 0;    //led赋值
delayms(x);
led8 = 1;    //led赋值
delayms(x);
led8 = 0;    //led赋值
delayms(x);
led9 = 1;    //led赋值
delayms(x);
led9 = 0;    //led赋值
delayms(x);
}

课程设计题四:LED彩灯控制器设计相关推荐

  1. LED彩灯控制器设计 51单片机 流水灯 PROTEUS 仿真

    课程设计题四:LED彩灯控制器设计 要求: 1.至少10个发光管4种花样自动变换,循环往复. 2.彩灯花样变换的快慢节拍可以手动和自动方式控制,手动控制按钮按一次转换一次:自动控制方式每15秒变换一次 ...

  2. 单片机彩灯c语言程序设计,(定稿)毕业论文基于AT89C51单片机的LED彩灯控制器设计(完整版)...

    <[毕业论文]基于AT89C51单片机的LED彩灯控制器设计.doc>由会员分享,可免费在线阅读全文,更多与<(定稿)毕业论文基于AT89C51单片机的LED彩灯控制器设计(完整版) ...

  3. 彩灯控制器课程设计vhdl_基于VHDL的彩灯控制器设计与实现毕业设计(DOC毕业设计论文)...

    基于VHDL的彩灯控制器设计与实现毕业设计(DOC毕业设计论文) <计算机组成原理>课程设计报告目 录任务书 .2摘 要 .5Abstract .61 引 言 71.1VHDL 技术介绍7 ...

  4. 单片机C语言节日彩灯,单片机c语言节日彩灯控制器设计.docx

    单片机c语言节日彩灯控制器设计 湖南涉外经济学院课程设计报告课程名称:单片机原理及应用报告题目:节日彩灯控制器的设计学生姓名:所在学院:信息科学与工程学院专业班级:电子信息工程1102班学生学号:指导 ...

  5. 数电实验4:彩灯控制器设计

    数电实验4:彩灯控制器设计 一.实验目的 二.实验内容 三.预习要求 四.实验报告要求 五.Verilog代码.RTL视图及仿真波形 1.Verilog代码 2.RTL视图 3.仿真波形 西南交大数电 ...

  6. 单片机c语言彩灯依次点亮,基于单片机的LED彩灯控制器

    1 引言 随着人们生活环境的不断改善和美化,在许多场合可以看到彩色霓虹灯. led 彩灯由于其丰富的灯光色彩,低廉的造价以及控制简单等特点而得到了广泛的应用,用彩灯来装饰已经成为一种时尚.但目前市场上 ...

  7. 自动化测试用例设计(四)自动化测试用例设计实例

    自动化测试用例设计(四)自动化测试用例设计实例 编写自动化测试用例的原则: 1.一个脚本是一个完整的场景,从用户登陆操作到用户退出系统关闭浏览器. 2.一个脚本脚本只验证一个功能点,不要试图用户登陆系 ...

  8. 基于FPGA的大屏幕全彩LED扫描控制器设计

    关键字:FPGA 大屏幕 LED 1 引言 作为大型平板显示设备的一种,LED 显示屏以其使用寿命长.维护费用低.功耗低等特点在显示领域占有重要的位置.特别在近年,带有红.绿.蓝三基色以及灰度显示效果 ...

  9. 高级计算机培训 英语教案设计,第四课时英语教案设计

    第四课时英语教案设计 教学重点:询问对方的姓名及回答的用语What's your name? My name is- 的学习,以及另一种表达道别的表达法:See you. 教学难点:What's yo ...

  10. app开发人脸登录和指纹登录_App产品登录环节如何设计?四步掌握登录设计思路...

    智能手机已经成为人类不可分割的器官,人们在线上处理生活的方方面面的习惯已经形成,APP作为线上渠道最主要的方式之一,已被各行各业广泛使用.这里将持续的和大家一同谈论关于APP产品设计的各模块.细节的设 ...

最新文章

  1. Springmvc与Struts2不同
  2. MySQL 之视图、 触发器、事务、存储过程、内置函数、流程控制、索引(一)
  3. CentOS7开机启动图形界面的开启与关闭
  4. 《openssl 编程》之文本数据库
  5. Elasticsearch filter和query的不同
  6. ubuntu下面调整Atom的python运行结果中的字体大小
  7. centos mysql 5.6 源码_Centos7环境中mysql-5.6.39 源码安装
  8. 【机器学习-西瓜书】六、支持向量机:核技巧;软间隔;惩罚因子C;松弛变量
  9. DNS DDNS NBNS mDNS LLMNR LLDPDU SSDP协议
  10. DCDC和LDO原理和关键技术(学习笔记1-buck电路)
  11. 游戏优化利器 | Android GPU Inspector 开放 Beta 测试版
  12. 电脑桌面云便签软件怎么显示最小化按钮?
  13. Matlab系列之GUI设计实例1
  14. 深澜校园网web认证自动登录脚
  15. C++:从入门到放弃[1]基础知识
  16. 宁夏中卫市:新一代云计算走向世界
  17. 基于angularjs的单页面实例_基于AngularJs的单页面程序
  18. vi笔记 - 使用vi加xxd完成对二进制文件的内容修改
  19. PCB设计笔记-AD(二)-如何将元器件库导入AD中
  20. 别让外包关系在谈判后止步(转)

热门文章

  1. LaTeX调整页眉宽度适应文本
  2. 发那科syst178_发那科系统报警大全
  3. Laravel的Migration 和 Seeder 使用
  4. 福州到横店嘉兴三日游(仅供参考)
  5. c datetime 格式化
  6. Codeforces 731C Socks By Assassin
  7. 神奇代码岛BOX获500万美元天使轮融资 构建编程少年元宇宙
  8. mysql 禁用日志_MYSQL禁用生成日志文件mysql
  9. 域名链接到服务器指定端口
  10. LaTeX引文.bib方式插入——misplaced alignment tab character . ...ock{\em IEEE Transactions onSystems Man