[国产单片机] 合泰单片机驱动MAX7219

[复制链接]
 楼主| 比神乐 发表于 2024-5-27 15:03 | 显示全部楼层 |阅读模式
  1. #include "HT66F0185.h"

  2. #define uint8 unsigned char
  3. #define uint16 unsigned int

  4. #define CLK_0 _pd1=0
  5. #define CLK_1  _pd1=1
  6. #define LOAD_0 _pd0=0
  7. #define LOAD_1   _pd0=1
  8. #define DIN_0 _pa1=0
  9. #define DIN_1 _pa1=1


  10. #define NoOp 0x00  //??2ù×÷??'??÷

  11. #define Digit0 0x01 // êy??1ü1??'??÷

  12. #define Digit1 0x02 // êy??1ü2??'??÷

  13. #define Digit2 0x03 // êy??1ü3??'??÷

  14. #define Digit3 0x04 // êy??1ü4??'??÷

  15. #define Digit4 0x05 // êy??1ü5??'??÷

  16. #define Digit5 0x06 // êy??1ü6??'??÷

  17. #define Digit6 0x07 // êy??1ü7??'??÷

  18. #define Digit7 0x08 // êy??1ü8??'??÷

  19. #define DecodeMode 0x09  // ò?????ê???'??÷

  20. #define Intensity 0x0a // áá?è??'??÷

  21. #define ScanLimit 0x0b // é¨?è??êy??'??÷

  22. #define ShutDown 0x0c // μí1|o???ê???'??÷

  23. #define DisplayTest 0x0f // ??ê?2aê???'??÷

  24. #define ShutdownMode 0x00 // μí1|o?·?ê?

  25. #define NormalOperation 0x01 // ?y3?2ù×÷·?ê?

  26. #define ScanDigit 0x07 // é¨?è??êyéè??????ê?8??êy??1ü

  27. #define DecodeDigit 0xff // ò???éè????8???ù?aBCD??

  28. #define IntensityGrade 0x0a // áá?è??±eéè??

  29. #define TestMode 0x01 // ??ê?2aê???ê?

  30. #define TextEnd 0x00  // ??ê?2aê??áê??????'?y3?1¤×÷??ê?

  31. /*****************************************************************************

  32. * Function implementation - global ('extern') and local ('static')

  33. ******************************************************************************/

  34. uint8 DisBuffer[8]={0,0,0,0,0,0,0,0}; // ??ê??o'???

  35. //******************?óê±toá??**************************************

  36. void delay(uint16 t)

  37. {

  38. uint16 i;

  39. while(t--)

  40. {

  41. /* ??óú12Mê±?ó?????óê±1ms */

  42. for (i=0;i<36;i++)

  43. {}

  44. }

  45. }

  46. //*************?òMAX7219D'è?×??ú?¨8????********************

  47. void SendChar (uint8 ch)

  48. {

  49. uint8 i,temp;

  50. delay(1);

  51. for (i=0;i<8;i++)

  52. {

  53. temp=ch&0x80;

  54. ch=ch<<1;

  55. if(temp)

  56. {

  57. DIN_1;

  58. delay(1);

  59. CLK_0;

  60. delay(1);

  61. CLK_1;

  62. delay(1);

  63. }

  64. else

  65. {

  66. DIN_0;

  67. delay(1);

  68. CLK_0;

  69. delay(1);

  70. CLK_1;

  71. delay(1);

  72. }

  73. }

  74. }



  75. //**************?òMAX7219D'è?×??¨16????*****************************

  76. void WriteWord (uint8 addr,uint8 num)

  77. {

  78. LOAD_0;

  79. delay(1);

  80. SendChar(addr);

  81. delay(1);

  82. SendChar(num);

  83. delay(1);

  84. LOAD_1; // ??'????àó|??'??÷

  85. }

  86. //*********************** MAX72193?ê??¯ ******************

  87. void InitDisplay (void)

  88. {

  89. WriteWord (ScanLimit,ScanDigit);// éè??é¨?è???T

  90. WriteWord (DecodeMode,DecodeDigit);// éè??ò?????ê?

  91. WriteWord (Intensity,IntensityGrade); // éè??áá?è

  92. WriteWord (ShutDown,NormalOperation); // éè???a?y3?1¤×÷??ê?



  93. }


  94. void delay_ms(uint16 ms)
  95. {
  96.                 //1ms
  97.                 GCC_DELAY(2000);
  98. }
  99. void main()
  100. {
  101.         _wdtc=0xa8;
  102.         _pdc=0;
  103.         _pac=0;
  104.         InitDisplay (); // MAX7219???

  105. WriteWord(DisplayTest,TestMode);// ??????,????LED

  106. delay(1500); // ???1.5s

  107. WriteWord (DisplayTest,TextEnd);// ????????

  108. WriteWord (Digit0,0);

  109. WriteWord (Digit1,1);
  110. WriteWord (Digit2,2);

  111. WriteWord (Digit3,3);
  112.         while(1)
  113.         {
  114.                
  115.                 WriteWord(DisplayTest,TestMode);// ??????,????LED

  116. delay(150); // ???1.5s

  117. WriteWord (DisplayTest,TextEnd);// ????????

  118. WriteWord (Digit0,0);

  119. WriteWord (Digit1,1);
  120. WriteWord (Digit2,2);

  121. WriteWord (Digit3,3);


  122.         }
  123. }

效果图
不知道怎么回事,仿真调试可以,去掉仿真器,给板子通电就不行了。

本帖子中包含更多资源

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

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

470

主题

3535

帖子

7

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

470

主题

3535

帖子

7

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