关于#单片机#的问题,如何解决?

51单片机:设计任务:利用定时器 1,20 秒定时器,20 秒到了的时候点亮 LED1 灯并间
隔 300 毫秒闪烁,秒表的走时用数码管实时显示(第一位数码管显示秒表的 10
位,第二位数码管显示秒表的个位
有没有哪位会设计或者编代码,非常感谢

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/7776926
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:一、点亮LED程序,代码正确但是LED灯不亮,单板没反应
  • 除此之外, 这篇博客: 汇编语言:点亮LED灯中的 1.分析电路图 2. 分析芯片手册 3. 编写代码 4. 下载调试 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 1、分析电路
    1)在PCB板上找到LED所在的位置,旁边有丝印的编号“RGBLED1”
    2)在原理图上搜索“RGBLED1”,找到LED灯对应的原理图,找到网络标号MCU_CAM1_PCLK,该标号应该连接到一个GPIO的一个引脚上,在核心板上搜索MCU_CAM1_PCLK
    在这里插入图片描述
    在这里插入图片描述在这里插入图片描述
    3)通过以上分析红色LED灯由SOC的GPIOA28引脚进行驱动。编写程序让GPIOA28引脚输出高电平,点亮红色LED灯,让GPIOA28引脚输出低电平,熄灭红色LED灯
    2、分析芯片手册
    在这里插入图片描述
    特殊功能寄存器在SOC上,是片内内存,有地址的内存,是特殊的寄存器,其不同于R0-R15,C/APSR这些寄存器,也不同于普通内存,所以理解为在SOC芯片上的内存寄存器。
    特殊功能控制寄存器属于内存在0-4G上的一块空间,访问特殊功能控制寄存器通过内存的地址进行访问。每个占4个字节空间。向SOC的外设对应的特殊功能控制器中写入对应的值或者读取值,就可以简介的控制SOC的外设进行动作,这就是软件编程控制硬件的思想。

    1.)设置GPIO引脚为GPIO功能:GPIOx.Alternate Function Select regsiter
    功能:设置GPIO引脚功能选择寄存器
    GPIOAALTFN0地址 = 基地址+偏移地址 = 0xC001_A020
    GPIOAALTFN1地址 = 基地址+偏移地址 = 0xC001_A024
    因此需要设置GPIOXALTFN1[25:24]------>GPIOA28
    GPIOAALTFN1寄存器对应的地址0xC001_A024,
    给这个地址的[25:24]位写0b00,GPIOA28引脚为GPIO功能

    2.)设置GPIO引脚为输出功能:GPIOx Output Enable register
    功能:设置GPIO引脚为输入模式换是输出模式
    GPIOAOUTENB地址 = 基地址+偏移地址 = 0xC001_A004
    GPIOAOUTENB这个寄存器管理这GPIOA这一组的32个引脚。引脚编号从0-31
    因此需要设置GPIOAOUTENB[28]------>GPIOA28
    GPIOAOUTENB寄存器对应的地址0xC001_A004,
    给这个地址的28位写1,GPIOA28引脚为输出模式,
    给这个地址的28位写0,GPIOA28引脚为输入模式。

    3.)设置GPIO引脚输出高低电平:GPIOx Output Register
    功能:设置GPIO引脚输出高低电平的
    GPIOAOUT地址 = 基地址+偏移地址 = 0xC001_A000
    GPIOAOUT这个寄存器管理这GPIOA这一组的32个引脚。引脚编号从0-31
    因此需要设置GPIOAOUT[28]------>GPIOA28
    GPIOAOUT寄存器对应的地址0xC001_A000,
    给这个地址的28位写1,GPIOA28引脚输出高电平,
    给这个地址的28位写0,GPIOA28引脚输出低电平。