搜索
打印

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

[复制链接]
37363|33
跳转到指定楼层
楼主
本帖最后由 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 | 只看该作者
定时器刷新吧。   

使用特权

评论回复
5
htmlme| | 2021-6-12 11:06 | 只看该作者
不要驱动芯片吗   

使用特权

评论回复
6
pklong| | 2021-6-12 11:06 | 只看该作者
数码管驱动芯片TM1620   

使用特权

评论回复
7
touser| | 2021-6-12 11:07 | 只看该作者
              

使用特权

评论回复
8
myiclife| | 2021-6-12 11:07 | 只看该作者
占用了一半的引脚了。

使用特权

评论回复
9
uytyu| | 2021-6-12 11:08 | 只看该作者
不能统一驱动吗

使用特权

评论回复
10
iyoum| | 2021-6-12 11:08 | 只看该作者
PIC18F16Q40不错。

使用特权

评论回复
11
jkl21| | 2021-6-12 11:08 | 只看该作者
还是使用oled吧。

使用特权

评论回复
12
yujielun| | 2021-6-12 11:08 | 只看该作者
以前用上DHT11频率太慢了。   

使用特权

评论回复
13
typeof| | 2021-6-12 11:09 | 只看该作者
CH455,驱动4位数码管  

使用特权

评论回复
14
usysm| | 2021-6-12 11:09 | 只看该作者
这个驱动电流够吗?

使用特权

评论回复
15
pklong| | 2021-6-12 11:09 | 只看该作者
常用的芯片有哪些?  

使用特权

评论回复
16
jkl21| | 2021-6-12 11:09 | 只看该作者
这个数码管不太好。   

使用特权

评论回复
17
iyoum| | 2021-6-12 11:09 | 只看该作者
是免费申请的PIC18F16Q40吗

使用特权

评论回复
18
uytyu| | 2021-6-12 11:09 | 只看该作者
怎么还单个引脚操作呢

使用特权

评论回复
19
myiclife| | 2021-6-12 11:09 | 只看该作者
iic的驱动芯片了解一下。   

使用特权

评论回复
20
touser| | 2021-6-12 11:09 | 只看该作者
谢谢楼主的资料了。   

使用特权

评论回复
扫描二维码,随时随地手机跟帖
您需要登录后才可以回帖 登录 | 注册

本版积分规则

我要发帖 我要提问 投诉建议 申请版主

快速回复

您需要登录后才可以回帖
登录 | 注册
高级模式

本版热帖

本版活跃用户

优质原创写原创,赢大奖

编辑推荐

  • 1 kk的回忆 得到打赏 ¥600.00
  • 2 名字还没想好 得到打赏 ¥350.00
  • 3 天意无罪 得到打赏 ¥312.00
  • 4 wolfe_yu 得到打赏 ¥210.00
  • 5 呐咯密密 得到打赏 ¥170.00
  • 6 gaoyang9992006 得到打赏 ¥120.00
  • 7 CZF11 得到打赏 ¥100.00
  • 8 年轻的国王 得到打赏 ¥90.00
  • 9 hunteredward 得到打赏 ¥90.00
  • 10 blust5 得到打赏 ¥85.00
在线客服 快速回复 返回顶部 返回列表