[开发工具] 新定义MCU开发板测评 +另外一种HT1621

[复制链接]
 楼主| 比神乐 发表于 2022-11-24 12:09 | 显示全部楼层 |阅读模式
<
我手上有两种HT1621段氏液晶屏,今天搞得另外一种。
代码:
  1. #include "SC_Init.h"        //MCU Init header,Include all IC resource headers
  2. #include "SC_it.h"
  3. #include "..\Drivers\SCDriver_list.h"
  4. #include "HeadFiles\SysFunVarDefine.h"
  5. /**************************************Generated by EasyCodeCube*************************************/
  6. #define uchar unsigned char
  7. #define uint unsigned int


  8. #define CS_0           GPIO_WriteLow(GPIO2, GPIO_PIN_7)
  9. #define CS_1           GPIO_WriteHigh(GPIO2, GPIO_PIN_7)
  10. #define WR_0           GPIO_WriteLow(GPIO0, GPIO_PIN_0)
  11. #define WR_1           GPIO_WriteHigh(GPIO0, GPIO_PIN_0)
  12. #define DA_0           GPIO_WriteLow(GPIO0, GPIO_PIN_1)
  13. #define DA_1           GPIO_WriteHigh(GPIO0, GPIO_PIN_1)

  14. unsigned int tmp;
  15. unsigned int n1, n2, n3, n4;
  16. unsigned char Ht1621Tab[]={0x00,0x00,0x00,0x00};
  17. //unsigned char DispTab[]={0x7B,0x12,0x67,0x57,0x1E,0x5D,0x7D,0x13,0x7F,0x5F,0x69,0x45,0x3f, 0x7a, 0x3e};
  18.               //          0    1    2    3    4    5    6    7    8    9    C    ?   A     V     H
  19. unsigned char DispTab[]={0x7B,0x12,0x67,0x57,0x1E,0x5D,0x7D,0x13,0x7F,0x5F,0x3F,0x7C,0x69,0x76,0x6D, 0x2D};
  20.               //          0    1    2    3    4    5    6    7    8    9    A    b   C     d     E      F

  21. #define  BIAS     0x52             //0b1000 0101 0010  1/3duty 4com
  22. #define  SYSDIS   0X00             //0b1000 0000 0000  ???????LCD?????
  23. #define  SYSEN    0X02             //0b1000 0000 0010 ???????
  24. #define  LCDOFF   0X04             //0b1000 0000 0100  ?LCD??
  25. #define  LCDON    0X06             //0b1000 0000 0110  ??LCD??
  26. #define  XTAL     0x28             //0b1000 0010 1000 ?????
  27. #define  RC256    0X30             //0b1000 0011 0000  ????
  28. #define  WDTDIS1  0X0A            //0b1000 0000 1010  ?????

  29. void Ht1621_CS_0() { CS_0;}  // define P2.2 ---> CS
  30. void Ht1621_CS_1() { CS_1;}

  31. void Ht1621_WR_0() { WR_0;}  // define P2.1 ---> WR
  32. void Ht1621_WR_1() { WR_1;}

  33. void Ht1621_DO_0() { DA_0;}  // define P2.0 ---> DAT
  34. void Ht1621_DO_1() { DA_1;}



  35. unsigned int counter;
  36. void BSP_Configuration(void);
  37. //-----------------------------------------------------------------------------------------
  38. //????:Delay()
  39. //?    ?:?????
  40. //-----------------------------------------------------------------------------------------
  41. void Delay(unsigned char us)  //5,7,9
  42. {
  43.   while(--us);
  44. }

  45. //-----------------------------------------------------------------------------------------
  46. //????:Delayms()
  47. //-----------------------------------------------------------------------------------------
  48. void Delayms(unsigned int ims)
  49. {
  50.   unsigned int i,j;
  51.     for(i=0;i<ims;i++)
  52.       for(j=0;j<65;j++) { Delay(1); }
  53. }

  54. //-----------------------------------------------------------------------------------------
  55. //Ht1621Wr_Data()
  56. //-----------------------------------------------------------------------------------------
  57. void Ht1621Wr_Data(unsigned char Data,unsigned char cnt)
  58. {
  59.   unsigned char i;
  60.   for (i=0;i<cnt;i++)
  61.    {
  62.      Ht1621_WR_0();
  63.      Delay(10);
  64.      if((Data & 0x80)==0x80) {Ht1621_DO_1();Delay(100);}
  65.      else {Ht1621_DO_0();Delay(100);}
  66.      Ht1621_WR_1();
  67.      Delay(10);
  68.      Data<<=1;
  69.    }
  70. }
  71. //-----------------------------------------------------------------------------------------
  72. //void Ht1621WrCmd(uchar Cmd)
  73. //-----------------------------------------------------------------------------------------
  74. void Ht1621WrCmd(unsigned char Cmd)
  75. {
  76.    Ht1621_CS_0();
  77.    Delay(10);
  78.    Ht1621Wr_Data(0x80,4);          //??????100
  79.    Ht1621Wr_Data(Cmd,8);           //??????
  80.    Ht1621_CS_1();
  81.    Delay(10);
  82. }
  83. //-----------------------------------------------------------------------------------------
  84. //void Ht1621WrOneData(uchar Addr,uchar Data)
  85. //-----------------------------------------------------------------------------------------
  86. void Ht1621WrOneData(unsigned char Addr,unsigned char Data)
  87. {
  88.   Ht1621_CS_0();
  89.   Ht1621Wr_Data(0xa0,3);  //??????101
  90.   Ht1621Wr_Data(Addr<<2,6); //??????
  91.   Ht1621Wr_Data(Data,4); //???????? 7  6  5  4
  92.   Ht1621_CS_1();
  93. }
  94. //-----------------------------------------------------------------------------------------
  95. //void Ht1621WrAllData()
  96. //-----------------------------------------------------------------------------------------
  97. void Ht1621WrAllData(unsigned char Addr,unsigned char *p,unsigned char cnt)
  98. {
  99.   unsigned char i;
  100.   Ht1621_CS_0();
  101.   Ht1621Wr_Data(0xa0,3); //??????101
  102.   Ht1621Wr_Data(Addr<<2,6); //??????
  103.   for (i=0;i<cnt;i++)
  104.    {
  105.     Ht1621Wr_Data(*p,8); //????
  106.     p++;
  107.    }
  108.   Ht1621_CS_1();
  109. }

  110. //-----------------------------------------------------------------------------------------
  111. //void Ht1621_Init(void)
  112. //-----------------------------------------------------------------------------------------
  113. void Ht1621_Init(void)
  114. {
  115.    Ht1621WrCmd(BIAS);
  116.    Ht1621WrCmd(RC256);             //???????
  117.    //Ht1621WrCmd(XTAL);             //???????
  118.    Ht1621WrCmd(SYSDIS);
  119.    Ht1621WrCmd(WDTDIS1);
  120.    Ht1621WrCmd(SYSEN);
  121.    Ht1621WrCmd(LCDON);
  122. }

  123. //-----------------------------------------------------------------------------------------
  124. //DISPLAY
  125. //-----------------------------------------------------------------------------------------
  126. void Display(void)
  127. {
  128.    unsigned char com;
  129.    com = 0;
  130.    if((DispTab[n1]&0x01) == 0x01){ com = com + 0x10;}
  131.    if((DispTab[n2]&0x01) == 0x01){ com = com + 0x20;}
  132.    if((DispTab[n3]&0x01) == 0x01){ com = com + 0x40;}
  133.    if((DispTab[n4]&0x01) == 0x01){ com = com + 0x80;}
  134.    Ht1621WrOneData(0 , com);
  135.    com = 0;
  136.    if((DispTab[n1]&0x02) == 0x02){ com = com + 0x10;}
  137.    if((DispTab[n2]&0x02) == 0x02){ com = com + 0x20;}
  138.    if((DispTab[n3]&0x02) == 0x02){ com = com + 0x40;}
  139.    if((DispTab[n4]&0x02) == 0x02){ com = com + 0x80;}
  140.    Ht1621WrOneData(1 , com);
  141.    com = 0;
  142.    if((DispTab[n1]&0x10) == 0x10){ com = com + 0x10;}
  143.    if((DispTab[n2]&0x10) == 0x10){ com = com + 0x20;}
  144.    if((DispTab[n3]&0x10) == 0x10){ com = com + 0x40;}
  145.    if((DispTab[n4]&0x10) == 0x10){ com = com + 0x80;}
  146.    Ht1621WrOneData(2 , com);
  147.    com = 0;
  148.    if((DispTab[n1]&0x40) == 0x40){ com = com + 0x10;}
  149.    if((DispTab[n2]&0x40) == 0x40){ com = com + 0x20;}
  150.    if((DispTab[n3]&0x40) == 0x40){ com = com + 0x40;}
  151.    if((DispTab[n4]&0x40) == 0x40){ com = com + 0x80;}
  152.    Ht1621WrOneData(3 , com);
  153.    com = 0;
  154.    if((DispTab[n1]&0x20) == 0x20){ com = com + 0x10;}
  155.    if((DispTab[n2]&0x20) == 0x20){ com = com + 0x20;}
  156.    if((DispTab[n3]&0x20) == 0x20){ com = com + 0x40;}
  157.    if((DispTab[n4]&0x20) == 0x20){ com = com + 0x80;}
  158.    Ht1621WrOneData(4 , com);
  159.    com = 0;
  160.    if((DispTab[n1]&0x08) == 0x08){ com = com + 0x10;}
  161.    if((DispTab[n2]&0x08) == 0x08){ com = com + 0x20;}
  162.    if((DispTab[n3]&0x08) == 0x08){ com = com + 0x40;}
  163.    if((DispTab[n4]&0x08) == 0x08){ com = com + 0x80;}
  164.    Ht1621WrOneData(5 , com);
  165.    com = 0;
  166.    if((DispTab[n1]&0x04) == 0x04){ com = com + 0x10;}
  167.    if((DispTab[n2]&0x04) == 0x04){ com = com + 0x20;}
  168.    if((DispTab[n3]&0x04) == 0x04){ com = com + 0x40;}
  169.    if((DispTab[n4]&0x04) == 0x04){ com = com + 0x80;}
  170.    Ht1621WrOneData(6 , com);
  171. }

  172. //-----------------------------------------------------------------------------------------
  173. //Display_lcd_dot
  174. //-----------------------------------------------------------------------------------------
  175. void Display_lcd_dot(void)
  176. {
  177.    Ht1621WrOneData(7 , 0x50);

  178. }

  179. //-----------------------------------------------------------------------------------------
  180. //convertor()
  181. //-----------------------------------------------------------------------------------------

  182. void data_convertor(unsigned long adc_value)
  183. {
  184.     tmp=adc_value;         //adc

  185.     n4=tmp/1000;

  186.     n3=tmp%1000/100;

  187.     n2=tmp%100/10;
  188.                  // 4
  189.     n1=tmp%10;       //display "C"

  190. }


  191. /*************************************.Generated by EasyCodeCube.************************************/
  192. /*****************************************************************************************************
  193. * Function Name: main
  194. * Description  : This function implements main function.
  195. * Arguments    : None
  196. * Return Value : None
  197. ******************************************************************************************************/
  198. void main(void)
  199. {       
  200.     /*<Generated by EasyCodeCube begin>*/
  201.     /*<UserCodeStart>*//*<SinOne-Tag><3>*/
  202.     SC_Init(); /*** MCU init***/
  203.     /*<UserCodeEnd>*//*<SinOne-Tag><3>*/
  204.     /*<UserCodeStart>*//*<SinOne-Tag><4>*/
  205.     /*****MainLoop*****/
  206.                 counter = 235;
  207.     Ht1621_Init();        //?????LCD
  208.     Delay(100);           //??????
  209.     Ht1621WrAllData(0,Ht1621Tab,16);// Clear LCD display
  210.     Ht1621_Init();   
  211.                 data_convertor(counter);
  212.     Display();
  213.     while(1)
  214.     {
  215.         /*<UserCodeStart>*//*<SinOne-Tag><5>*/
  216.         /*****User program*****/
  217.         /*<UserCodeEnd>*//*<SinOne-Tag><5>*/
  218.         /*<Begin-Inserted by EasyCodeCube for Condition>*/
  219.     }
  220.     /*<UserCodeEnd>*//*<SinOne-Tag><4>*/
  221.     /*<Generated by EasyCodeCube end>*/
  222. }
效果图
0.jpg
您需要登录后才可以回帖 登录 | 注册

本版积分规则

470

主题

3535

帖子

7

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

470

主题

3535

帖子

7

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