搜索

[其他] 【芯圣SDK-HC89F0541测评】+ HT1621

[复制链接]
1796|1
 楼主 | 2020-7-5 17:19 | 显示全部楼层 |阅读模式
今天下午搞了一下HT1621.
CS:P1.5
WR:P1.6
DA:P1.7
代码:
  1. #define        ALLOCATE_EXTERN
  2. #include "HC89F0541.h"

  3. #define uchar unsigned char
  4. #define uint unsigned int
  5.        

  6. #define Smg_a    0x80
  7. #define Smg_b    0x40
  8. #define Smg_c    0x20
  9. #define Smg_d    0x01
  10. #define Smg_e    0x02
  11. #define Smg_f    0x08
  12. #define Smg_g    0x04
  13. #define Smg_dp   0x10

  14. #define Bmp0Map          Smg_a | Smg_b | Smg_c | Smg_d | Smg_e | Smg_f
  15. #define Bmp1Map          Smg_b | Smg_c
  16. #define Bmp2Map          Smg_a | Smg_b | Smg_d | Smg_e | Smg_g
  17. #define Bmp3Map          Smg_a | Smg_b | Smg_c | Smg_d | Smg_g
  18. #define Bmp4Map          Smg_b | Smg_c | Smg_f | Smg_g
  19. #define Bmp5Map          Smg_a | Smg_c | Smg_d | Smg_f | Smg_g
  20. #define Bmp6Map          Smg_a | Smg_c | Smg_d | Smg_e | Smg_f | Smg_g
  21. #define Bmp8Map          Smg_a | Smg_b | Smg_c | Smg_d | Smg_e | Smg_f | Smg_g
  22. #define Bmp9Map          Smg_a | Smg_b | Smg_c | Smg_d | Smg_f | Smg_g
  23. #define Bmp7Map          Smg_a | Smg_b | Smg_c
  24. #define BmpAMap          Smg_a | Smg_b | Smg_c | Smg_e | Smg_f | Smg_g
  25. #define BmpBMap          Smg_c | Smg_d | Smg_e | Smg_f | Smg_g
  26. #define BmpCMap          Smg_a | Smg_d | Smg_e | Smg_f
  27. #define BmpDMap          Smg_b | Smg_c | Smg_d | Smg_e | Smg_g
  28. #define BmpEMap          Smg_a | Smg_d | Smg_e | Smg_f | Smg_g
  29. #define BmpFMap          Smg_a | Smg_e | Smg_f | Smg_g

  30. #define CS_0           P1_5=0
  31. #define CS_1           P1_5=1
  32. #define WR_0           P1_6=0
  33. #define WR_1           P1_6=1
  34. #define DA_0           P1_7=0
  35. #define DA_1           P1_7=1

  36. const unsigned char SegCode[] = {Bmp0Map,Bmp1Map,Bmp2Map,Bmp3Map,Bmp4Map,Bmp5Map,Bmp6Map,Bmp7Map,Bmp8Map,Bmp9Map,BmpAMap,BmpBMap,BmpCMap,BmpDMap,BmpEMap,BmpFMap};
  37. unsigned char DpyNum[6] = {Smg_g,Smg_g,Smg_g,Smg_g,Smg_g,Smg_g}; //显示缓冲区

  38. unsigned int i;
  39. void COMMAND_HT1621(unsigned char comm)
  40. {
  41.     //unsigned char i;
  42.     CS_0;

  43.     WR_0;
  44.     for(i=0;i<3;i++)        //写命令
  45.     {
  46.         if((0x04<<i)&0x04)  DA_1;    //100
  47.         else                DA_0;
  48.         WR_0;
  49.         WR_1;
  50.     }
  51.     for(i=0;i<9;i++)        //写命令数据
  52.     {
  53.         if((comm<<i)&0x80)  DA_1;    //100
  54.         else                DA_0;
  55.         WR_0;
  56.         WR_1;
  57.     }
  58.     CS_1;

  59. }

  60. void HT1621_Display(void)
  61. {
  62.     //unsigned char i;
  63.     CS_0;                        //片选CS
  64.     WR_0;
  65.     for(i=0;i<3;i++)                   //写命令
  66.     {
  67.         if((0x05<<i)&0x04)  DA_1;
  68.         else                DA_0;
  69.         WR_0;
  70.         WR_1;
  71.     }
  72.     for(i=0;i<6;i++)                   //写地址
  73.     {
  74.         if((20<<i)&0x20)    DA_1;  //20对应 SEG地址
  75.         else                DA_0;
  76.         WR_0;
  77.         WR_1;
  78.     }
  79.     for(i=0;i<8;i++)                   //写数据
  80.     {
  81.         if((DpyNum[5]<<i)&0x80)   DA_1;
  82.         else                      DA_0;
  83.         WR_0;
  84.         WR_1;
  85.     }
  86.     for(i=0;i<8;i++)                   //写数据
  87.     {
  88.         if((DpyNum[4]<<i)&0x80)   DA_1;
  89.         else                      DA_0;
  90.         WR_0;
  91.         WR_1;
  92.     }
  93.     for(i=0;i<8;i++)                   //写数据
  94.     {
  95.         if((DpyNum[3]<<i)&0x80)   DA_1;
  96.         else                      DA_0;
  97.         WR_0;
  98.         WR_1;
  99.     }
  100.     for(i=0;i<8;i++)                   //写数据
  101.     {
  102.         if((DpyNum[2]<<i)&0x80)   DA_1;
  103.         else                      DA_0;
  104.         WR_0;
  105.         WR_1;
  106.     }
  107.     for(i=0;i<8;i++)                   //写数据
  108.     {
  109.         if((DpyNum[1]<<i)&0x80)   DA_1;
  110.         else                      DA_0;
  111.         WR_0;
  112.         WR_1;
  113.     }
  114.     for(i=0;i<8;i++)                   //写数据
  115.     {
  116.         if((DpyNum[0]<<i)&0x80)   DA_1;
  117.         else                      DA_0;
  118.         WR_0;
  119.         WR_1;
  120.     }
  121.     CS_1;                          //释放CS
  122. }

  123. void LCD_Init(void)
  124. {
  125.     COMMAND_HT1621(0x01);         //SYS EN
  126.     COMMAND_HT1621(0x03);         //LCD ON
  127.     COMMAND_HT1621(0x29);         //4 COM  1/3 BIAS
  128.     HT1621_Display();             //clear screen
  129. }

  130. /***************************************************************************************
  131.   * @实现效果        T0定时1ms,每进一次中断,P14翻转一次
  132. ***************************************************************************************/
  133. void main()
  134. {
  135.         //long int i;
  136. /************************************系统初始化****************************************/
  137.         CLKSWR = 0x51;                                                //选择内部高频RC为系统时钟,内部高频RC 2分频,Fosc=16MHz
  138.         CLKDIV = 0x01;                                                //Fosc 1分频得到Fcpu,Fcpu=16MHz
  139. /**********************************相关配置初始化**************************************/
  140.   P1M5 = 0xC0;                        //P25设置为推挽输出
  141.         P1M6 = 0xC0;                        //P26设置为推挽输出
  142.         P1M7 = 0xC0;                        //P27设置为推挽输出
  143. /**********************************TIM0配置初始化**************************************/
  144.         LCD_Init();
  145.         DpyNum[0] = Smg_a|Smg_d|Smg_g;              //"三"
  146.         DpyNum[1] = SegCode[1];
  147.         DpyNum[2] = SegCode[3];
  148.         DpyNum[3] = SegCode[5];
  149.         DpyNum[4] = SegCode[7];
  150.         DpyNum[5] = SegCode[9];

  151.         HT1621_Display();               //刷新LCD
  152.         while(1)
  153.         {
  154.                
  155.         }
  156.        
  157. }

复制代码
效果图:
1.jpg
工程:
HT1621.rar (47.46 KB, 下载次数: 4)

使用特权

评论回复
| 2020-7-8 16:33 | 显示全部楼层
HT1621B 这个市面上有很多种货,质量都参差不齐

使用特权

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

本版积分规则

我要发帖 投诉建议 创建版块 申请版主

快速回复

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

论坛热帖

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