[PIC®/AVR®/dsPIC®产品] PIC18F46K80板子驱动HT1621

[复制链接]
2450|13
 楼主| 比神乐 发表于 2024-5-7 09:03 | 显示全部楼层 |阅读模式
代码:
  1. /*
  2. * File:   main.c
  3. * Author: Administrator
  4. *
  5. * Created on 2024?5?7?, ??8:01
  6. */


  7. #include <xc.h>

  8. //CONFIG1L?????
  9. #pragma config RETEN = OFF           //?????????
  10. #pragma config INTOSCSEL = HIGH      //???? LF-INTOSC ??????
  11. #pragma config SOSCSEL = DIG         //SOSC???? SCLKI?????? RC0 ?RC1 ??I/O

  12. #pragma config XINST = OFF           //??????????????????????? ??????


  13. // CONFIG1H
  14. #pragma config FOSC = HS1            //4 MHz - 16 MHz ??????HS????????

  15. #pragma config PLLCFG = ON           //??PLL x4???8M???4????32MHz????

  16. #pragma config FCMEN = OFF           //???????????
  17. #pragma config IESO = OFF            //??????

  18. // CONFIG2L
  19. #pragma config PWRTEN = OFF          //??????
  20. #pragma config BOREN = SBORDIS       //?????????
  21. #pragma config BORV = 3              //?????1.8v????
  22. #pragma config BORPWR = ZPBORMV      //??ZPBORMV???BORMV

  23. // CONFIG2H
  24. #pragma config WDTEN = OFF           //????
  25. //#pragma config WDTEN = SWDTDIS     //?????WDT???SWDTEN?
  26. #pragma config WDTPS = 256           //??????1:256?????1.024s

  27. // CONFIG3H
  28. #pragma config CANMX = PORTB         //CAN??????? RB2 ? RB3
  29. #pragma config MSSPMSK = MSK7       //?? 7 ???????
  30. #pragma config MCLRE = ON           //??MCLR??????

  31. // CONFIG4L
  32. #pragma config STVREN = ON         // ???/????
  33. #pragma config BBSIZ = BB2K        // ????????2K

  34. // CONFIG5L
  35. #pragma config CP0 = OFF           //00800-01FFF?????
  36. #pragma config CP1 = OFF           //02000-03FFF?????
  37. #pragma config CP2 = OFF           //04000-05FFF?????
  38. #pragma config CP3 = OFF           //06000-07FFF?????

  39. // CONFIG5H
  40. #pragma config CPB = OFF        //????????
  41. #pragma config CPD = OFF        //EEPROM??????

  42. // CONFIG6L
  43. #pragma config WRT0 = OFF       // 00800-01FFF ???????
  44. #pragma config WRT1 = OFF       // 02000-03FFF ???????
  45. #pragma config WRT2 = OFF       // 04000-05FFF ???????
  46. #pragma config WRT3 = OFF       // 06000-07FFF ???????

  47. // CONFIG6H
  48. #pragma config WRTC = OFF       //??????????
  49. #pragma config WRTB = OFF       //????????
  50. #pragma config WRTD = OFF       //EEPROM???????

  51. // CONFIG7L
  52. #pragma config EBTR0 = OFF      //00800-01FFF????????
  53. #pragma config EBTR1 = OFF      //02000-03FFF????????
  54. #pragma config EBTR2 = OFF      //04000-05FFF????????
  55. #pragma config EBTR3 = OFF      //06000-07FFF????????
  56. // CONFIG7H
  57. #pragma config EBTRB = OFF      //????????


  58. #define uchar unsigned char
  59. #define uint unsigned int

  60. #define DA_1 RC0=1

  61. #define DA_0 RC0=0

  62. #define WR_1 RC2=1

  63. #define WR_0 RC2=0

  64. #define CS_1 RC4=1

  65. #define CS_0 RC4=0



  66. #define Smg_a 0x80

  67. #define Smg_b 0x40

  68. #define Smg_c 0x20

  69. #define Smg_d 0x01

  70. #define Smg_e 0x02

  71. #define Smg_f 0x08

  72. #define Smg_g 0x04

  73. #define Smg_dp 0x10



  74. #define Bmp0Map Smg_a | Smg_b | Smg_c | Smg_d | Smg_e | Smg_f

  75. #define Bmp1Map Smg_b | Smg_c

  76. #define Bmp2Map Smg_a | Smg_b | Smg_d | Smg_e | Smg_g

  77. #define Bmp3Map Smg_a | Smg_b | Smg_c | Smg_d | Smg_g

  78. #define Bmp4Map Smg_b | Smg_c | Smg_f | Smg_g

  79. #define Bmp5Map Smg_a | Smg_c | Smg_d | Smg_f | Smg_g

  80. #define Bmp6Map Smg_a | Smg_c | Smg_d | Smg_e | Smg_f | Smg_g

  81. #define Bmp8Map Smg_a | Smg_b | Smg_c | Smg_d | Smg_e | Smg_f | Smg_g

  82. #define Bmp9Map Smg_a | Smg_b | Smg_c | Smg_d | Smg_f | Smg_g

  83. #define Bmp7Map Smg_a | Smg_b | Smg_c

  84. #define BmpAMap Smg_a | Smg_b | Smg_c | Smg_e | Smg_f | Smg_g

  85. #define BmpBMap Smg_c | Smg_d | Smg_e | Smg_f | Smg_g

  86. #define BmpCMap Smg_a | Smg_d | Smg_e | Smg_f

  87. #define BmpDMap Smg_b | Smg_c | Smg_d | Smg_e | Smg_g

  88. #define BmpEMap Smg_a | Smg_d | Smg_e | Smg_f | Smg_g

  89. #define BmpFMap Smg_a | Smg_e | Smg_f | Smg_g









  90. const unsigned char SegCode[] = {Bmp0Map,Bmp1Map,Bmp2Map,Bmp3Map,Bmp4Map,Bmp5Map,Bmp6Map,Bmp7Map,Bmp8Map,Bmp9Map,BmpAMap,BmpBMap,BmpCMap,BmpDMap,BmpEMap,BmpFMap};

  91. unsigned char DpyNum[6] = {Smg_g,Smg_g,Smg_g,Smg_g,Smg_g,Smg_g}; //?????



  92. unsigned int i;
  93. void delay(void)
  94. {
  95.     uint j;
  96.     for(j=0;j<10;j++);
  97. }
  98. void COMMAND_HT1621(unsigned char comm)

  99. {

  100. //unsigned char i;

  101. CS_0;

  102. delay();

  103. WR_0;
  104. delay();
  105. for(i=0;i<3;i++)//???

  106. {

  107. if((0x04<<i)&0x04) DA_1; //100

  108. else DA_0;
  109. delay();
  110. WR_0;
  111. delay();
  112. WR_1;
  113. delay();
  114. }

  115. for(i=0;i<9;i++)//?????

  116. {

  117.     if((comm<<i)&0x80) DA_1; //100

  118.     else DA_0;
  119.     delay();
  120.     WR_0;
  121.     delay();
  122.     WR_1;
  123.     delay();
  124. }

  125. CS_1;
  126. delay();


  127. }



  128. void HT1621_Display(void)

  129. {

  130. //unsigned char i;

  131. CS_0;//??CS
  132. delay();
  133. WR_0;
  134. delay();
  135. for(i=0;i<3;i++) //???

  136. {

  137.     if((0x05<<i)&0x04) DA_1;

  138.     else DA_0;
  139.     delay();
  140.     WR_0;
  141.     delay();
  142.     WR_1;
  143.     delay();
  144. }

  145. for(i=0;i<6;i++) //???

  146. {

  147.     if((20<<i)&0x20) DA_1;//20?? SEG??

  148.     else DA_0;
  149.     delay();
  150.     WR_0;
  151.     delay();
  152.     WR_1;
  153.     delay();
  154. }

  155. for(i=0;i<8;i++) //???

  156. {

  157.     if((DpyNum[5]<<i)&0x80) DA_1;

  158.     else DA_0;
  159.     delay();
  160.     WR_0;
  161.     delay();
  162.     WR_1;
  163.     delay();
  164. }

  165. for(i=0;i<8;i++) //???

  166. {

  167. if((DpyNum[4]<<i)&0x80) DA_1;

  168. else DA_0;
  169. delay();
  170. WR_0;
  171. delay();
  172. WR_1;
  173. delay();
  174. }

  175. for(i=0;i<8;i++) //???

  176. {

  177. if((DpyNum[3]<<i)&0x80) DA_1;

  178. else DA_0;
  179. delay();
  180. WR_0;
  181. delay();
  182. WR_1;
  183. delay();
  184. }

  185. for(i=0;i<8;i++) //???

  186. {

  187. if((DpyNum[2]<<i)&0x80) DA_1;

  188. else DA_0;
  189. delay();
  190. WR_0;
  191. delay();
  192. WR_1;
  193. delay();
  194. }

  195. for(i=0;i<8;i++) //???

  196. {

  197. if((DpyNum[1]<<i)&0x80) DA_1;

  198. else DA_0;
  199. delay();
  200. WR_0;
  201. delay();
  202. WR_1;
  203. delay();
  204. }

  205. for(i=0;i<8;i++) //???

  206. {

  207. if((DpyNum[0]<<i)&0x80) DA_1;

  208. else DA_0;
  209. delay();
  210. WR_0;
  211. delay();
  212. WR_1;
  213. delay();
  214. }

  215. CS_1;//??CS
  216. delay();
  217. }



  218. void LCD_Init(void)

  219. {

  220. COMMAND_HT1621(0x01);//SYS EN

  221. COMMAND_HT1621(0x03);//LCD ON

  222. COMMAND_HT1621(0x29);//4 COM牋1/3 BIAS

  223. HT1621_Display(); //clear screen

  224. }

  225. /***************************************************************************************

  226. 牋* @?????牋 牋????IO??????

  227. ***************************************************************************************/

  228. void main(void)

  229. {







  230. /***********************************??IO???***************************************/

  231.     TRISCbits.TRISC4=0;     //PORD4配置为输出
  232.     TRISCbits.TRISC2=0;     //PORE1配置为输出
  233.     TRISCbits.TRISC0=0;     //PORE1配置为输出
  234.    
  235.     LCD_Init();

  236.     DpyNum[0] = Smg_a|Smg_d|Smg_g;//"?"

  237.     DpyNum[1] = SegCode[2];

  238.     DpyNum[2] = SegCode[4];

  239.     DpyNum[3] = SegCode[6];

  240.     DpyNum[4] = SegCode[8];

  241.     DpyNum[5] = SegCode[0];



  242.     HT1621_Display();

  243.     while(1)

  244.     {





  245.     }
  246. }
效果图

本帖子中包含更多资源

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

×
tpgf 发表于 2024-6-3 11:24 | 显示全部楼层
我一直搞不清楚所谓的驱动是说的什么 是指通讯方式吗
观海 发表于 2024-6-3 11:57 | 显示全部楼层
如果只针对这个功能  那么感觉头文件有点大啊
guanjiaer 发表于 2024-6-3 12:31 | 显示全部楼层
看图片感觉并没有使用所有头文件中提到的引脚是吧
八层楼 发表于 2024-6-3 22:53 | 显示全部楼层
这个电路板同时可以驱动多少路这个芯片呢
晓伍 发表于 2024-6-3 23:24 | 显示全部楼层
具体硬件上如何进行连接呢 使用的是哪些引脚啊
磨砂 发表于 2024-6-3 23:55 | 显示全部楼层
在硬件连接上我们需要如何进行处理呢
原来是wjc 发表于 2024-9-28 22:48 | 显示全部楼层
充分体验3 nm工艺技术提供高性能和低功耗性能。
wanduzi 发表于 2024-9-29 20:32 | 显示全部楼层
奈斯,这种屏幕是不是超级省电
21mengnan 发表于 2024-9-30 12:00 | 显示全部楼层
这种液晶屏贵不贵,我看怎么都不便宜啊
 楼主| 比神乐 发表于 2024-9-30 12:28 | 显示全部楼层
不贵啊
单片小菜 发表于 2024-9-30 13:51 | 显示全部楼层
楼主可以帮忙发一下原理图吗?
自己造声卡 发表于 2024-9-30 14:14 | 显示全部楼层
原理图可以分享一下吗?学习学习
 楼主| 比神乐 发表于 2024-10-1 19:34 | 显示全部楼层
就电源线、地线、DA、WR、CS五根线
您需要登录后才可以回帖 登录 | 注册

本版积分规则

470

主题

3537

帖子

7

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