让8只数码管从左往右显示1、2、3、4、、、8

编写实验学习数码管动态显示,让8只数码管从左往右显示1,2,3,4,,,8

在这里插入图片描述

程序:
#include <reg51.h>
unsigned char led[]={0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80};//0-9的字型码
unsigned char segment[]= {0x7f,0xbf,0xdf,0xef,0xf7,0xfb,0xfd,0xfe};//存储2个数码管的位选码
unsigned char k=0;

int main(void)
{
TMOD=0x00;
TL0=(8192-2000)%32;
TH0=(8192-2000)/32;
TR0=1;
EA=1;

ET0=1;
while(1);

}
void T0_timer(void)interrupt 1
{
P0=led[k];
P2=segment[k];
k++;
if(k==8)
k=0;
TL0=(8192-2000)%32;
TH0=(8192-2000)/32;
}

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
STM32数码管从左学号移动显示可以通过控制数码管的IO口和定时器来实现。 首先,将数码管的引脚与STM32的IO口连接,可以通过GPIO_Init函数进行配置。选择合适的引脚作为时钟和数据线,并设置为输出模式。 接下来,设置定时器,可以使用STM32的定时器功能来产生适当的时间延迟,实现数码显示的移动效果。可以使用Timer_Init函数进行配置。选择合适的定时器和预分频值,使得定时器溢出时间与所需的移动速度相匹配。 然后,编写一个循环程序来实现数码管的移动显示。在循环中,通过改变数据线上的数字和相应的时钟脉冲来逐段地将学号显示数码管上。可以通过GPIO_WriteBit函数来设置数码管的引脚状态。 为了实现移动效果,可以通过改变显示的起始位置来控制移动方向。在每次循环中,将显示的起始位置逐渐向移动,并重新进行数码管的显示。可以通过递减起始位置的值来实现这个过程。 最后,为了保持数码显示的流畅,可以使用适当的延迟来控制刷新频率。通过调整定时器的溢出时间来得到合适的延迟时间。 总结起来,通过控制数码管引脚的状态和使用定时器来产生适当的延迟,我们可以实现STM32数码管从左学号移动显示的效果。编写适当的循环程序和延迟时间,可以控制移动速度和流畅度。同时,根据实际需求,可能需要对引脚和定时器进行更详细的配置和编程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值