ag真人试玩平台-ag真人网站

 
 立即注册
查看: 356|回复: 2

led灯数码管如何电亮控制?使用stm32f103c8t6芯片,通过uln2803进行驱动 -ag真人试玩平台

[复制链接]
发表于 4 天前 | 显示全部楼层 |
90家元
这样的灯板怎么进行电亮控制哇

e3f677e22772768e689477c15414c5a.jpg 42766b48e89549b45e2865e46cb4643.jpg
两条单独的线,分别接红色和绿色的灯,使用stm32f103c8t6芯片,通过uln2803进行驱动,共阴极的数码管
  1. #include "stm32f10x.h"                  // device header
  2. #include "delay.h"

  3. #define u4p1_pin     gpio_pin_0
  4. #define u4p1_high()  gpio_setbits(gpiob,u4p1_pin)
  5. #define u4p1_low()   gpio_resetbits(gpiob,u4p1_pin)

  6. #define u4p2_pin     gpio_pin_1
  7. #define u4p2_high()  gpio_setbits(gpiob,u4p2_pin)
  8. #define u4p2_low()   gpio_resetbits(gpiob,u4p2_pin)

  9. #define u4p3_pin     gpio_pin_3
  10. #define u4p3_high()  gpio_setbits(gpiob,u4p3_pin)
  11. #define u4p3_low()   gpio_resetbits(gpiob,u4p3_pin)

  12. #define u4p4_pin     gpio_pin_4
  13. #define u4p4_high()  gpio_setbits(gpiob,u4p4_pin)
  14. #define u4p4_low()   gpio_resetbits(gpiob,u4p4_pin)

  15. #define u4p5_pin     gpio_pin_5
  16. #define u4p5_high()  gpio_setbits(gpiob,u4p5_pin)
  17. #define u4p5_low()   gpio_resetbits(gpiob,u4p5_pin)

  18. #define u4p6_pin     gpio_pin_6
  19. #define u4p6_high()  gpio_setbits(gpiob,u4p6_pin)
  20. #define u4p6_low()   gpio_resetbits(gpiob,u4p6_pin)

  21. #define u4p7_pin     gpio_pin_7
  22. #define u4p7_high()  gpio_setbits(gpiob,u4p7_pin)
  23. #define u4p7_low()   gpio_resetbits(gpiob,u4p7_pin)


  24. #define u6p1_pin     gpio_pin_8
  25. #define u6p1_high()  gpio_setbits(gpiob,u6p1_pin)
  26. #define u6p1_low()   gpio_resetbits(gpiob,u6p1_pin)

  27. #define u6p2_pin     gpio_pin_9
  28. #define u6p2_high()  gpio_setbits(gpiob,u6p2_pin)
  29. #define u6p2_low()   gpio_resetbits(gpiob,u6p2_pin)

  30. #define u6p3_pin     gpio_pin_10
  31. #define u6p3_high()  gpio_setbits(gpiob,u6p3_pin)
  32. #define u6p3_low()   gpio_resetbits(gpiob,u6p3_pin)

  33. #define u6p4_pin     gpio_pin_11
  34. #define u6p4_high()  gpio_setbits(gpiob,u6p4_pin)
  35. #define u6p4_low()   gpio_resetbits(gpiob,u6p4_pin)

  36. #define u6p5_pin     gpio_pin_12
  37. #define u6p5_high()  gpio_setbits(gpiob,u6p5_pin)
  38. #define u6p5_low()   gpio_resetbits(gpiob,u6p5_pin)

  39. #define u6p6_pin     gpio_pin_13
  40. #define u6p6_high()  gpio_setbits(gpiob,u6p6_pin)
  41. #define u6p6_low()   gpio_resetbits(gpiob,u6p6_pin)

  42. #define u6p7_pin     gpio_pin_14
  43. #define u6p7_high()  gpio_setbits(gpiob,u6p7_pin)
  44. #define u6p7_low()   gpio_resetbits(gpiob,u6p7_pin)

  45. //red,green

  46. #define r_pin     gpio_pin_2
  47. #define r_high()  gpio_setbits(gpioa,r_pin)
  48. #define r_low()   gpio_resetbits(gpioa,r_pin)

  49. #define g_pin     gpio_pin_3
  50. #define g_high()  gpio_setbits(gpioa,g_pin)
  51. #define g_low()   gpio_resetbits(gpioa,g_pin)


  52. void smg_configuration(void)
  53. {
  54.   gpio_inittypedef smg_pin;
  55.         
  56.         rcc_apb2periphclockcmd(rcc_apb2periph_gpioa, enable);         
  57.         rcc_apb2periphclockcmd(rcc_apb2periph_gpiob, enable);  
  58.         //u4  
  59.         smg_pin.gpio_mode = gpio_mode_out_pp;
  60.         smg_pin.gpio_pin = u4p1_pin | u4p2_pin | u4p3_pin | u4p4_pin | u4p5_pin | u4p6_pin | u4p7_pin;
  61.         smg_pin.gpio_speed = gpio_speed_50mhz;
  62.         gpio_init(gpiob,&smg_pin);
  63.         
  64.         //u6
  65.         smg_pin.gpio_mode = gpio_mode_out_pp;
  66.         smg_pin.gpio_pin = u6p1_pin | u6p2_pin | u6p3_pin | u6p4_pin | u6p5_pin | u6p6_pin | u6p7_pin;
  67.         smg_pin.gpio_speed = gpio_speed_50mhz;
  68.         gpio_init(gpiob,&smg_pin);        
  69.         
  70.         //red,green
  71.         smg_pin.gpio_mode = gpio_mode_out_od;
  72.         smg_pin.gpio_pin = r_pin | g_pin;
  73.         smg_pin.gpio_speed = gpio_speed_50mhz;
  74.         gpio_init(gpioa,&smg_pin);

  75.   r_low();
  76.         g_low();
  77. }

  78. uint16_t table[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  79. uint16_t disp[2];
  80. uint16_t temp,i;


  81. void zxm_init(void)                                                        //字形码函数
  82. {
  83.         
  84.                         disp[1] = table[i/10];                                //数码管显示十位数字的字形码
  85.                         disp[0] = table[i];                                //数码管显示个位数字的字形码
  86.                         temp = (disp[1]<<8)|disp[0];        //十位数的字形码左移8位,然后与个位数的字形码合并
  87.                         gpio_write(gpiob,temp);
  88.                         delay_ms(300);
  89. }

  90. int main(void)
  91. {
  92.         smg_configuration();

  93.         
  94.         while (1)
  95.         {
  96.                 for(i=99;i>0;i--)                        //数码管从99开始自减,到0结束
  97.                 {
  98.                         if(i>=80)
  99.                         {
  100.                         zxm_init();
  101.                         delay_ms(300);        
  102.                         
  103.                         r_high();        //红亮
  104.                         delay_ms(200);
  105.             g_low(); //绿灭
  106.       delay_ms(200);
  107.                
  108.                         
  109.                         }
  110.                         
  111.                         if(i<80)
  112.                         {
  113.                         zxm_init();
  114.                         delay_ms(300);
  115.                                 
  116.                         g_high(); //绿亮
  117.                         delay_ms(200);
  118.                         r_low(); //红灭
  119.       delay_ms(200);
  120.                                        
  121.                         }
  122.                 }
  123.         }
  124. }

复制代码
为什么,我想对其进行80以上红灯亮,80以下绿灯亮,为什么我的这个全亮了,控制不了
并且个位数一直乱码,红绿灯全亮了
十位数是正常的,但是红绿灯全亮了
我检查了引脚是正常的,不知道哪里出错了

发表于 4 天前 | 显示全部楼层
呀,捡了个红绿灯?
 楼主| 发表于 4 天前 | 显示全部楼层
我不是小连 发表于 2023-10-27 12:26
呀,捡了个红绿灯?

板子是红绿灯珠的,通过那两条线,给电平控制红灯亮还是绿灯亮,但是不知道为什么控制不了,全亮了,并且个位数还是乱码显示。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

app|手机版|小黑屋|关于ag真人试玩平台|联系ag真人网站|法律条款|ag真人试玩平台-ag真人网站

gmt 8, 2023-10-31 14:59 , processed in 0.109200 second(s), 9 queries , redis on.

powered by

© 2006-2023 smzj.net

快速回复 返回列表
网站地图