找回密码
 立即注册

QQ登录

只需一步,快速开始

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

想让led每动一次 数码管就右移显示一个数字的 但是怎么改 都是只有数码管在动 或者...

[复制链接]
跳转到指定楼层
楼主
ID:798630 发表于 2020-7-13 09:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本来是想让led每动一次 数码管就右移显示一个数字的 但是怎么改 都是只有数码管在动 或者只有led灯在动 不知道什么原因

#include"stc15.h"
#include"intrins.h"
#define uchar unsigned char
#define uint unsigned int
#define LED P0
uchar code duanxuan[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
uchar code weixuan[9]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0xff};
sbit BUZZ=P0^6;
uchar aa;
void Delay500ms()  //@11.0592MHz
{
unsigned char i, j, k;
_nop_();
_nop_();
i = 22;
j = 3;
k = 227;
do
{
  do
  {
   while (--k);
  } while (--j);
} while (--i);
}
void main()
{
AUXR |= 0x80;
TMOD &= 0xF0;
TL0 = 0xCD;
TH0 = 0xD4;
TF0 = 0;
EA=1;
ET0=1;
TR0 = 1;
  P2=((P2&0x1f)|0xa0);
  BUZZ=0;
  P2&=0x1f;
  P2=((P2&0x1f)|0x80);
  LED=0xfe;
  Delay500ms();
   while(1)
{
       for(aa=0;aa<8;aa++)
    {
       LED=_crol_(LED,1);
    Delay500ms();
    }
}
}
void timer0() interrupt 1
{
   TL0 = 0xCD;
TH0 = 0xD4;
P2=((P2&0x1f)|0xc0);
P0=weixuan[aa];
P2=0x1f;
P2=((P2&0x1f)|0xe0);
P0=duanxuan[aa+1];
P2=0x1f;
}


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

使用道具 举报

来自 6#
ID:798630 发表于 2020-7-13 14:21 | 只看该作者
用数组试了一下 得到了想要的结果了  还想问一下 各位大佬 为什么 while 里面 led流水的那个操作 改成_crol_(LED,1)这个形式的时候 程序就运行不了啊  只能用数组
回复

使用道具 举报

沙发
ID:332444 发表于 2020-7-13 12:49 | 只看该作者
p2=p0试看
回复

使用道具 举报

板凳
ID:332444 发表于 2020-7-13 12:50 | 只看该作者
本帖最后由 xianfajushi 于 2020-7-13 12:53 编辑

看代码P0复用?既给数码位使用也给数码段使用又给LED使用?P2干嘛用?电路图?
回复

使用道具 举报

地板
ID:739545 发表于 2020-7-13 13:12 | 只看该作者
设置一个数组,每变化一次,数组的前项赋值给后项,以此类推,就可以实现数组移位变换了
回复

使用道具 举报

5#
ID:798630 发表于 2020-7-13 14:17 | 只看该作者
lovezjf234 发表于 2020-7-13 13:12
设置一个数组,每变化一次,数组的前项赋值给后项,以此类推,就可以实现数组移位变换了

哈哈  谢谢大佬 用数组试了一下 可以了
回复

使用道具 举报

7#
ID:798630 发表于 2020-7-13 14:41 | 只看该作者
xianfajushi 发表于 2020-7-13 12:50
看代码P0复用?既给数码位使用也给数码段使用又给LED使用?P2干嘛用?电路图?

哈哈 这个月刚学的单片机 C语言  就习惯性的用资料里的列子  就这样定义了  图片我不知道怎么发 电路图就是 led 数码管 都要经过74hc02 的控制  然后 74hc02 经过 74hc138 控制 就是p2^5 p2^6 p2^7 这三个控制

回复

使用道具 举报

8#
ID:798630 发表于 2020-7-13 14:44 | 只看该作者
xianfajushi 发表于 2020-7-13 12:50
看代码P0复用?既给数码位使用也给数码段使用又给LED使用?P2干嘛用?电路图?

然后 想请问一下 循环右移那边换成数组, 程序就能运行了  ,但循环右移不行  是什么原因嘛
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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