找回密码
 立即注册

QQ登录

只需一步,快速开始

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

面包板布局51单片机最小系统实现流水灯

[复制链接]
跳转到指定楼层
楼主
使用的元器件:
1、STC89C52RC单片机一个
2、11.0592晶振一个
3、30pf磁片电容两只
4、1K电阻4个
5、led发光二级管4只
6、3.3/5V电源模块一个
7、面包板一个
8、连接导线数根

实现的功能:
流水灯及闪烁效果

目的:初学者都是从51单片机开发板开始,开发板集成了很多功能,学习者在开发板上使用各种功能可能得心应手,但离开了开发板却是一片茫然,本贴旨在给像我的一样茫然者一点小小启发,大神勿喷,多多指正。

制作出来的实物图如下:


单片机源程序如下:
  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. sbit led0=P1^0;
  5. sbit led1=P1^1;
  6. sbit led2=P1^2;
  7. sbit led3=P1^3;
  8. /*------------------------------------------------
  9.                 延时子程序
  10. ------------------------------------------------*/
  11. void delay(uint cnt)
  12.         {
  13.                 while(--cnt);
  14.         }

  15. /*----------------------------------
  16.            led灯闪烁子程序
  17. -----------------------------------*/

  18. void led_ShanShuo()
  19. {
  20.         uchar i;
  21.         for(i=0;i<3;i++)
  22.         {
  23.                 P1=0x00;
  24.                 delay(50000);
  25.                 P1=0xff;
  26.                 delay(50000);
  27.         }
  28. }

  29. /*------------------------------
  30.                  流水灯子程序
  31. ------------------------------*/

  32. void led_LiuShuiDeng1()
  33. {
  34.         led0=0;
  35.         delay(50000);
  36.         led0=1;
  37.         led1=0;
  38.         delay(50000);
  39.         led1=1;
  40.         led2=0;
  41.         delay(50000);
  42.         led2=1;
  43.         led3=0;
  44.         delay(50000);
  45.         led3=1;
  46.         delay(50000);
  47. }

  48. /*------------------------------------------------
  49.         利用循环移位方式实现LED流水灯效果子程序
  50. --------------------------------------------------*/
  51. void led_LiuShuiDeng2()
  52. {
  53.         P1=0xfe;//给初始化值 换算成二进制是 1111 1110
  54.         while(1)
  55.         {        delay(50000);//延时程序
  56.                 P1<<=1;//左移一位 该语句等效于 P1=P1<<1
  57.                 P1|=0x01;//最后一位补 1,该语句等效于 P1=P1|0x01 符号"|"表示"或"
  58.                 if(P1==0xf7)      //检测是否移到最左端?"=="表示检测符号 2 端的值是否相等
  59.                         {
  60.                                 delay(50000);
  61.                                 P1=0xfe; //重新赋值
  62.                         }
  63.          }
  64. }

  65. void main()
  66. {
  67.         while(1)
  68.         {
  69.                 led_LiuShuiDeng1();
  70.                 led_ShanShuo();
  71.         }

  72. }
复制代码
视频: 视频.7z (2.89 MB, 下载次数: 10)

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:16255 发表于 2022-10-29 09:50 | 只看该作者
既然都做了,LED灯才用4个?为什么不用8个?
回复

使用道具 举报

板凳
ID:1046111 发表于 2022-10-29 10:22 | 只看该作者
mengsiu 发表于 2022-10-29 09:50
既然都做了,LED灯才用4个?为什么不用8个?

能说明问题就行了,4个8个就那么回事,都一样
回复

使用道具 举报

地板
ID:88256 发表于 2022-10-29 10:30 | 只看该作者
这是教学帖,下一步就是增加24C02,流水花样由24C02存储器提供,电脑进行流水花样编程写入24C02
回复

使用道具 举报

5#
ID:1046111 发表于 2022-10-29 16:59 | 只看该作者
hhdsdy 发表于 2022-10-29 10:30
这是教学帖,下一步就是增加24C02,流水花样由24C02存储器提供,电脑进行流水花样编程写入24C02

算不得什么教学贴,自己也是小学生,心血来潮学习51单片机,自己想到个啥就想去试试,算是给自己留下点学习的足迹吧。
回复

使用道具 举报

6#
ID:1080559 发表于 2023-5-28 23:57 | 只看该作者
想要视频
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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