[Cortex-M0技术交流] 菜鸟学习M0(1)——数码管扫描

[复制链接]
 楼主| dong_abc 发表于 2011-10-23 18:42 | 显示全部楼层 |阅读模式
本帖最后由 dong_abc 于 2011-10-23 19:05 编辑

M0驱动4位数码管,PA是段码,PB是位选。

led.c文件
  1. #include "led.h"
  2. //数码显示缓冲区
  3. uint32_t Seg7DataBuf[4];
  4. //数码位数
  5. volatile uint32_t led_num;
  6. //待显示的字符集
  7. uint32_t Seg7Code[]={
  8. 0xc0, //0
  9. 0xf9, //1
  10. 0xa4, //2
  11. 0xb0, //3
  12. 0x99, //4
  13. 0x92, //5
  14. 0x82, //6
  15. 0xf8, //7
  16. 0x80, //8
  17. 0x90, //9
  18. 0xff  //所有段都不显示
  19. };

  20. //-------------------------------------------------------------------
  21. //函数功能:系统主函数。
  22. //入口参数:无。
  23. //返    回:无。
  24. //备    注:无。
  25. //-------------------------------------------------------------------
  26. void Seg7_Init(void)
  27. {
  28. GPIOA->MD.PMD0 = 1 ;
  29. GPIOA->MD.PMD1 = 1 ;
  30. GPIOA->MD.PMD2 = 1 ;
  31. GPIOA->MD.PMD3 = 1 ;
  32. GPIOA->MD.PMD4 = 1 ;
  33. GPIOA->MD.PMD5 = 1 ;
  34. GPIOA->MD.PMD6 = 1 ;
  35. GPIOA->MD.PMD7 = 1 ;
  36. GPIOB->MD.PMD0 = 1 ;
  37. GPIOB->MD.PMD1 = 1 ;
  38. GPIOB->MD.PMD2 = 1 ;
  39. GPIOB->MD.PMD3 = 1 ;
  40. Seg7DataBuf[0]=0;
  41. Seg7DataBuf[1]=1;
  42. Seg7DataBuf[2]=2;
  43. Seg7DataBuf[3]=3;
  44. }

  45. //-------------------------------------------------------------------
  46. //函数功能:系统主函数。
  47. //入口参数:无。
  48. //返    回:无。
  49. //备    注:无。
  50. //-------------------------------------------------------------------
  51. void Seg7_Fresh(void)
  52. {
  53. GPIOB->DOUT|=0x000f;
  54.      
  55. switch(++led_num)
  56. {
  57. case   1:
  58.   GPIOB->DOUT&=0xfffe;
  59.   GPIOA->DOUT=Seg7Code[Seg7DataBuf[0]];
  60.   break;   

  61. case   2:
  62.   GPIOB->DOUT&=0xfffd;
  63.   GPIOA->DOUT=Seg7Code[Seg7DataBuf[1]];
  64.   break;
  65. case   3:
  66.   GPIOB->DOUT&=0xfffb;
  67.   GPIOA->DOUT=Seg7Code[Seg7DataBuf[2]];
  68.   break;
  69.      
  70. case   4:
  71.   GPIOB->DOUT&=0xfff7;
  72.   GPIOA->DOUT=Seg7Code[Seg7DataBuf[3]];  
  73.   break;   

  74. default :
  75.   led_num=0;
  76.   break;
  77. }
  78. }

  79. //-------------------------------------------------------------------
  80. //函数功能:系统主函数。
  81. //入口参数:无。
  82. //返    回:无。
  83. //备    注:无。
  84. //-------------------------------------------------------------------
  85. void Seg7_UpdateBuf(void)
  86. {
  87. }


led.h文件
  1. #include "main.h"

  2. #ifndef __NUC1xxLed_H__
  3. #define __NUC1xxLed_H__

  4. void Seg7_Init(void);
  5. void Seg7_Fresh(void);
  6. void Seg7_UpdateBuf(void);

  7. #endif //__NUC1xxLed_H__

本帖子中包含更多资源

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

×
adampan 发表于 2011-10-25 07:56 | 显示全部楼层
学习了,,传说中的沙发?
adampan 发表于 2011-11-16 14:53 | 显示全部楼层
怎么用M0驱动数码管没人鉴赏的??蚊子再小也是肉,,有的人走的太快,,已经忘记起点了、。。。
hotpower 发表于 2011-11-16 16:19 | 显示全部楼层
led数码管的应用还是比较广的
zxcscm 发表于 2011-11-18 08:46 | 显示全部楼层
这个可一定顶,数码管显示 直观
tendence 发表于 2011-11-19 09:59 | 显示全部楼层
没图没真相啊!楼主可以贴出连接图不?哪怕手绘也行
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:此id已冬眠...

43

主题

5074

帖子

22

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