找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机流水灯怎么和数码管一起工作

[复制链接]
跳转到指定楼层
楼主
ID:272089 发表于 2018-1-6 08:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这样可以吗?
  1. #include <reg51.h>
  2. #include <intrins.h>
  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. #define leddata P0
  6. sbit cs1=P3^0;sbit cs2=P3^1;sbit wr=P3^2;
  7. uchar c=0,t=8;
  8. uchar code ledcode[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
  9. uchar buf[8];
  10. void delay(uint i){while(i--);}
  11. void display()
  12. {
  13.           uchar i,j=0x7f;
  14.          for(i=0;i<8;i++)
  15.          {
  16.             cs1=0;cs2=1;
  17.                 leddata=ledcode[buf[i]];wr=1;wr=0;
  18.                 cs1=1;cs2=0;
  19.                 leddata=j;wr=1;wr=0;
  20.                 delay(100);
  21.                 j=_cror_(j,1);
  22.                 leddata=0xff;wr=1;wr=0;
  23.          }
  24. }
  25. void main()
  26. {            
  27.      //uchar t;
  28.          TMOD=0x01;
  29.          EA=TR0=ET0=1;
  30.          
  31.          while(1){
  32.           buf[0]=t;
  33.           buf[1]=buf[2]=buf[3]=buf[4]=buf[5]=buf[6]=buf[7]=0xff;
  34.       display();
  35.          
  36.           }
  37. }

  38. time0() interrupt 1
  39. {
  40.    TL0=(65536-50000)%0X100;
  41.    TH0=(65536-50000)/0X100;
  42.    c++;
  43.    if(c>=20)
  44.    {
  45.    c=0;
  46.    if(t>0)t--;
  47.    delay(100);
  48.       P1=0x3f;
  49.           delay(50000);
  50.           P1=0xcf;
  51.           delay(50000);
  52.           P1=0xf3;
  53.           delay(50000);
  54.           P1=0xfc;
  55.           delay(50000);
  56.              P1=0xff;
  57.    }
  58. }
复制代码


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

使用道具 举报

沙发
ID:157238 发表于 2018-1-6 19:19 | 只看该作者
定时器中断
回复

使用道具 举报

板凳
ID:123289 发表于 2018-1-6 20:55 | 只看该作者
流水灯与LED是一马事。你都将它们看作是一张张的小灯,就OK了。
流水也吧,扫描显示也吧。都是在不同的时段里,将不同的明暗信号输出到各个灯上而矣。
把显示分成若干个段,例出各个时段每个灯是明是暗的逻辑关系,问题就基本解决了。
回复

使用道具 举报

地板
ID:1 发表于 2018-1-7 18:01 | 只看该作者
回复

使用道具 举报

5#
ID:272089 发表于 2018-1-11 14:15 | 只看该作者
admin 发表于 2018-1-7 18:01
参考:http://www.51hei.com/bbs/dpj-85522-1.html

有简单点的吗?
回复

使用道具 举报

6#
ID:111634 发表于 2018-1-11 18:38 | 只看该作者
先学理论,打基础,就不会有这么多问题了,本坛至少有50%的问题属于此类情况。
回复

使用道具 举报

7#
ID:275005 发表于 2018-1-11 21:41 | 只看该作者
与LED是一马事。你都将它们看作是一张张的小灯,就OK了。 流水也吧,扫描显示也吧。都是在不同的时段里,将不同的明暗信号输出到各个灯上而矣。 把显示分成若干个段,例出各个时段每个灯是明是暗的逻辑关系,问题就基本解决了。
回复

使用道具 举报

8#
ID:169533 发表于 2018-1-11 23:11 | 只看该作者
学单片机没有硬件,就等于白学
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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