[PIC®/AVR®/dsPIC®产品] 【CuriosityNano测评报告】PIC18F16Q40驱动数码管显示

[复制链接]
117464|36
 楼主| jinglixixi 发表于 2021-6-9 09:07 | 显示全部楼层 |阅读模式
本帖最后由 jinglixixi 于 2021-6-9 09:11 编辑

#申请原创#
数码管是一种常见的显示器件,也便于在掌握GPIO口的情况下,较快地解决显示问题。
为了便于直接使用,此处用的是4位集成在一起的数码管显示模块,它在数码管的基础上已添加了位码引脚的驱动能力。
在PIC18F16Q40开发板上,进行某位显示驱动的引脚配置如图1所示。
图1  MCC引脚配置

数码管相关引脚与PIC18F16Q40的连接关系如下:
a-RB7
b-RB5
c-RB4
d-RB6
e-RC5
f-RC4
g-RC6
dp-RC7

在显示某位内容时,需将数码管模块的VCC接到5V电源,将相应的位码引脚连到GND接口,其显示效果如图2所示。
图2 显示效果

动画演示:


实现演示效果的主程序为:
  1. #include "mcc_generated_files/mcc.h"
  2. void main(void)
  3. {
  4. // Initialize the device
  5. SYSTEM_Initialize();
  6. char i;
  7. while (1)
  8. {
  9. IO_RC1_Toggle();
  10. __delay_ms(2000);
  11. if(i==0)
  12. {
  13. IO_RB7_SetLow();
  14. IO_RB5_SetLow();
  15. IO_RB4_SetLow();
  16. IO_RB6_SetLow();
  17. IO_RC5_SetLow();
  18. IO_RC4_SetLow();
  19. IO_RC6_SetHigh();
  20. IO_RC7_SetHigh();
  21. }

  22. if(i==1)
  23. {
  24. IO_RB7_SetHigh();
  25. IO_RB5_SetLow();
  26. IO_RB4_SetLow();
  27. IO_RB6_SetHigh();
  28. IO_RC5_SetHigh();
  29. IO_RC4_SetHigh();
  30. IO_RC6_SetHigh();
  31. IO_RC7_SetHigh();        
  32. }

  33. if(i==2)
  34. {
  35. IO_RB7_SetLow();
  36. IO_RB5_SetLow();
  37. IO_RB4_SetHigh();
  38. IO_RB6_SetLow();
  39. IO_RC5_SetLow();
  40. IO_RC4_SetHigh();
  41. IO_RC6_SetLow();
  42. IO_RC7_SetHigh();
  43. }

  44. if(i==3)
  45. {
  46. IO_RB7_SetLow();
  47. IO_RB5_SetLow();
  48. IO_RB4_SetLow();
  49. IO_RB6_SetLow();
  50. IO_RC5_SetHigh();
  51. IO_RC4_SetHigh();
  52. IO_RC6_SetLow();
  53. IO_RC7_SetHigh();
  54. }

  55. if(i==4)
  56. {
  57. IO_RB7_SetHigh();
  58. IO_RB5_SetLow();
  59. IO_RB4_SetLow();
  60. IO_RB6_SetHigh();
  61. IO_RC5_SetHigh();
  62. IO_RC4_SetLow();
  63. IO_RC6_SetLow();
  64. IO_RC7_SetHigh();        
  65. }

  66. if(i==5)
  67. {
  68. IO_RB7_SetLow();
  69. IO_RB5_SetHigh();
  70. IO_RB4_SetLow();
  71. IO_RB6_SetLow();
  72. IO_RC5_SetHigh();
  73. IO_RC4_SetLow();
  74. IO_RC6_SetLow();
  75. IO_RC7_SetHigh();
  76. }

  77. if(i==6)
  78. {
  79. IO_RB7_SetLow();
  80. IO_RB5_SetHigh();
  81. IO_RB4_SetLow();
  82. IO_RB6_SetLow();
  83. IO_RC5_SetLow();
  84. IO_RC4_SetLow();
  85. IO_RC6_SetLow();
  86. IO_RC7_SetHigh();        
  87. }

  88. if(i==7)
  89. {
  90. IO_RB7_SetLow();
  91. IO_RB5_SetLow();
  92. IO_RB4_SetLow();
  93. IO_RB6_SetHigh();
  94. IO_RC5_SetHigh();
  95. IO_RC4_SetHigh();
  96. IO_RC6_SetHigh();
  97. IO_RC7_SetHigh();        
  98. }

  99. if(i==8)
  100. {
  101. IO_RB7_SetLow();
  102. IO_RB5_SetLow();
  103. IO_RB4_SetLow();
  104. IO_RB6_SetLow();
  105. IO_RC5_SetLow();
  106. IO_RC4_SetLow();
  107. IO_RC6_SetLow();
  108. IO_RC7_SetHigh();        
  109. }

  110. if(i==9)
  111. {
  112. IO_RB7_SetLow();
  113. IO_RB5_SetLow();
  114. IO_RB4_SetLow();
  115. IO_RB6_SetLow();
  116. IO_RC5_SetHigh();
  117. IO_RC4_SetLow();
  118. IO_RC6_SetLow();
  119. IO_RC7_SetHigh();        
  120. }

  121. i++;
  122. if(i>9) i=0;
  123. }
  124. }

值得指出的是,不知何种原因,在尝试动态驱动4位数值显示时却没有成功,出现的问题是PIC18F16Q40在输出低电平时可以点亮数码管,但输出高电平时却无法关断数码管,改变引脚的输出模式也未见效。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
usysm 发表于 2021-6-12 11:04 | 显示全部楼层
用的是什么驱动呢?   
typeof 发表于 2021-6-12 11:05 | 显示全部楼层
max7219可驱动8个数码管  
yujielun 发表于 2021-6-12 11:05 | 显示全部楼层
定时器刷新吧。   
htmlme 发表于 2021-6-12 11:06 | 显示全部楼层
不要驱动芯片吗   
pklong 发表于 2021-6-12 11:06 | 显示全部楼层
数码管驱动芯片TM1620   
touser 发表于 2021-6-12 11:07 | 显示全部楼层
              
myiclife 发表于 2021-6-12 11:07 | 显示全部楼层
占用了一半的引脚了。
uytyu 发表于 2021-6-12 11:08 | 显示全部楼层
不能统一驱动吗
iyoum 发表于 2021-6-12 11:08 | 显示全部楼层
PIC18F16Q40不错。
jkl21 发表于 2021-6-12 11:08 | 显示全部楼层
还是使用oled吧。
yujielun 发表于 2021-6-12 11:08 | 显示全部楼层
以前用上DHT11频率太慢了。   
typeof 发表于 2021-6-12 11:09 | 显示全部楼层
CH455,驱动4位数码管  
usysm 发表于 2021-6-12 11:09 | 显示全部楼层
这个驱动电流够吗?
pklong 发表于 2021-6-12 11:09 | 显示全部楼层
常用的芯片有哪些?  
jkl21 发表于 2021-6-12 11:09 | 显示全部楼层
这个数码管不太好。   
iyoum 发表于 2021-6-12 11:09 | 显示全部楼层
是免费申请的PIC18F16Q40吗
uytyu 发表于 2021-6-12 11:09 | 显示全部楼层
怎么还单个引脚操作呢
myiclife 发表于 2021-6-12 11:09 | 显示全部楼层
iic的驱动芯片了解一下。   
touser 发表于 2021-6-12 11:09 | 显示全部楼层
谢谢楼主的资料了。   
您需要登录后才可以回帖 登录 | 注册

本版积分规则

521

主题

2949

帖子

39

粉丝
快速回复 在线客服 返回列表 返回顶部