欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 6395|回復: 3
收起左側

HT1621顯示屏驅動芯片單片機源程序(不帶字庫)與資料

[復制鏈接]
ID:152434 發表于 2018-1-12 14:17 | 顯示全部樓層 |閱讀模式
0.png
HT1621是128 點內存映象和多功能的LCD 驅動器 , HT1621 的軟件配置特性使它適用于多種 LCD 應用場合,包括 LCD 模塊和顯示子系統。用于連接主控制器和HT1621 的管腳只有 4 或 5 條, HT1621 還有一個節電命令用于降低系統功耗。在虎風所做的這個系統中 ht1621 用于驅動一個靜態的 LCD 液晶顯示器。液晶顯示的方式分為靜態顯示和動態顯示 。 靜態與動態的區別在于靜態顯示是持續供電的 , 而動態顯示是利用人的視覺停留效果 , 快速掃描數碼管各個段 , 讓人在視覺上感覺到數碼管是同時顯示的。
0.jpg 0.jpg

各位大牛下午好,我用STC12C5204單片機控制1621驅動液晶
程序調了幾天都沒進展,顯示的不知道什么亂七八糟的東西,好像命令根本寫不進去,COM0和com1是個1v不到的電平,com3為3點幾V的電平,com4有時有波形刷我自己寫的程序就是這個樣子,SEGMENT一部分有波形,其余就是一個電平

打電話咨詢合泰技術,讓我搞他們的范例,于是我修改了下,還是老樣子大家幫我看看是什么問題,謝謝了下面的就是從合泰網上下的范例,我稍微修改了下,基本是原封不動的

單片機源程序如下:
  1. 各位大牛下午好,我用STC12C5204單片機控制1621驅動液晶
  2. 程序調了幾天都沒進展,顯示的不知道什么亂七八糟的東西,好像命令根本寫不進去,COM0和com1是個1v不到的電平,com3為3點幾V的電平,com4有時有波形
  3. 刷我自己寫的程序就是這個樣子,SEGMENT一部分有波形,其余就是一個電平

  4. 打電話咨詢合泰技術,讓我搞他們的范例,于是我修改了下,還是老樣子
  5. 大家幫我看看是什么問題,謝謝了
  6. 下面的就是從合泰網上下的范例,我稍微修改了下,基本是原封不動的

  7. //STC12C5204AD單片機控制HT1621B驅動LCD
  8. #include <STC12C52XXAD.h>
  9. #include <stdio.h>
  10. #include <intrins.h>
  11. #define BIAS 0X52             //1/3偏壓,4背極
  12. #define RC256K 0X30           //系統時鐘選擇為片內RC振蕩器
  13. #define WDTDIS1 0X0A           //禁止WDT溢出標志輸出
  14. #define TIMERDIS 0X08           //時基輸出禁止
  15. #define SYSEN 0X02              //打開系統時鐘
  16. #define SYSDIS 0X00             //關閉系統時鐘和偏壓發生器
  17. #define LCDON 0X06            //打開LCD偏壓發生器
  18. #define LCDOFF 0X04        //關閉LCD偏壓發生器
  19. #define TONEON  0X12       //打開音頻輸出
  20. #define TONEOFF 0X10       //關閉音頻輸出  
  21. #define CS P3_2
  22. #define WR P3_4
  23. #define DATA P3_5

  24. #define uchar unsigned char
  25. #define uint unsigned int
  26. /***************************延時子函數******************************/
  27. void delay(uchar i)                   //j=12延時約4.3us
  28. {

  29.   while(i--)
  30.   {
  31.    uchar j=0;
  32.    while(j<8)
  33.    j++;
  34.   }
  35. }
  36. void SendBit_1621(uchar dat ,uchar cnt)
  37. {
  38. uchar i;
  39. for(i =0; i <cnt; i ++)
  40. {
  41.   if((dat&0x80)==0)
  42.   DATA=0;
  43.   else DATA=1;
  44.   WR=0;
  45.   delay(2);  
  46.   WR=1;
  47.         dat=dat<<1;
  48. }
  49. }

  50. void SendDataBit_1621(uchar dat,uchar cnt)
  51. {
  52. uchar i;
  53. for(i =0; i <cnt; i ++)
  54. {
  55.   if((dat&0x01)==0) DATA=0;
  56.   else DATA=1;
  57.   WR=0;
  58.   delay(2);
  59.   WR=1;
  60.   dat=dat>>1;
  61. }
  62. }
  63. void SendCmd(uchar command)
  64. {
  65. CS=0;
  66. _nop_();
  67. _nop_();
  68. SendBit_1621(0x80,4);
  69. SendBit_1621(command,8);
  70. CS=1;
  71. }
  72. void Write_1621(uchar addr,uchar dat)
  73. {
  74. CS=0;
  75. _nop_();
  76. _nop_();
  77. SendBit_1621(0xa0,3);
  78. SendBit_1621(addr,6);
  79. SendDataBit_1621(dat,4);
  80. CS=1;
  81. }
  82. void WriteAll_1621(uchar addr,uchar *p,uchar cnt)
  83. {
  84. uchar i;
  85. CS=0;
  86. _nop_();
  87. _nop_();
  88. SendBit_1621(0xa0,3);
  89. SendBit_1621(addr,6);
  90. for(i =0; i <cnt; i ++,p++)
  91. {
  92.   SendDataBit_1621(*p,8);
  93. }
  94. CS=1;
  95. }
  96. /*******************************主函數******************************/
  97. main()                                    
  98. {
  99. uchar a[10];
  100. a[0]=0xFF;a[1]=0xFF;a[2]=0xFF;a[3]=0xFF;a[4]=0xFF;
  101. a[5]=0xFF;a[6]=0xFF;a[7]=0xFF;a[8]=0xFF;a[9]=0xFF;
  102. a[10]=0xFF;a[11]=0xFF;a[12]=0xFF;a[13]=0xFF;a[14]=0xFF;
  103. a[15]=0xFF;

  104. SendCmd(BIAS);
  105. SendCmd(SYSEN);
  106. SendCmd(LCDON);
  107. // SendCmd(RC256K);
  108. WriteAll_1621(0,a,16);
  109. // SendCmd(LCDOFF);  


  110. }
  111. LCD驅動程序 適用于HT1621
  112. //=============================================================================
  113. #define Lcd_Delay _nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
  114. void  Lcd_Data(uchar Start,uchar cData)
  115. //將數據當中的字節與LCD上的進行同步
  116. // Start    --要開始同頁面地址,每個頁面為4個有效位,總其為32X4字節
  117. // Length   --要同步的頁面數量
  118. {
  119.         uchar i;
  120.         LCD_CS=0;
  121.         Lcd_Delay;
  122.         Lcd_Delay;
  123.         Lcd_Delay;
  124.           //Send ID 101B
  125.           LCD_CLK=0;
  126.           Lcd_Delay;
  127.           LCD_IO=1;
  128.           Lcd_Delay;
  129.           LCD_CLK=1;
  130.           Lcd_Delay;
  131.           LCD_CLK=0;
  132.           Lcd_Delay;
  133.           LCD_IO=0;
  134.           Lcd_Delay;
  135.           LCD_CLK=1;
  136.           Lcd_Delay;
  137.           LCD_CLK=0;
  138.           Lcd_Delay;
  139.           LCD_IO=1;
  140.           Lcd_Delay;
  141.           LCD_CLK=1;
  142.           Lcd_Delay;
  143.           //Send Address 6bit
  144.           Start=Start*2;
  145.           for(i=0;i<6;i++)
  146.     {
  147.               if(Start&0x20) LCD_IO=1;
  148.               else LCD_IO=0;
  149.               Lcd_Delay;
  150.               LCD_CLK=0;
  151.               Lcd_Delay;
  152.               Start=Start<<1;
  153.               LCD_CLK=1;
  154.               Lcd_Delay;
  155.     }
  156.     //Send data 8bit
  157.     for(i=0;i<8;i++)
  158.     {
  159.               if(cData&0x01) LCD_IO=1;
  160.               else LCD_IO=0;
  161.               Lcd_Delay;
  162.               LCD_CLK=0;
  163.               Lcd_Delay;
  164.               cData=cData>>1;
  165.               LCD_CLK=1;
  166.               Lcd_Delay;
  167.     }
  168.         LCD_CS=1;
  169.         Lcd_Delay;
  170. }
  171. //=============================================================================
  172. void  Lcd_Command(uchar Command)
  173. //向指定的LCD當中寫入一個命令
  174. //每個命令應以100三個位為起始,命令長度為9位,實際有效位為8位,因此在最后補一個0
  175. // LcdSelect--LCD的片選確定,取值為0,1,2
  176. // Command----要寫入的8位命令
  177. {
  178.         uchar i;
  179.         LCD_CS=0;
  180.         Lcd_Delay;
  181.         Lcd_Delay;
  182.         Lcd_Delay;
  183.           //Send ID 100B
  184.           LCD_CLK=0;
  185.           Lcd_Delay;
  186.           LCD_IO=1;
  187.           Lcd_Delay;
  188.           LCD_CLK=1;
  189.           Lcd_Delay;
  190.           LCD_CLK=0;
  191.           Lcd_Delay;
  192.           LCD_IO=0;
  193.           Lcd_Delay;
  194.           LCD_CLK=1;
  195.           Lcd_Delay;
  196.           LCD_CLK=0;
  197.           Lcd_Delay;
  198.           LCD_IO=0;
  199.           Lcd_Delay;
  200.           LCD_CLK=1;
  201.         Lcd_Delay;
  202.           for(i=0;i<8;i++)
  203.     {
  204.             LCD_CLK=0;
  205.             Lcd_Delay;
  206.               if(Command&0x80) LCD_IO=1;
  207.               else LCD_IO=0;
  208.               Command=Command<<1;
  209.               Lcd_Delay;
  210.               LCD_CLK=1;
  211.               Lcd_Delay;
  212.     }
  213.     ///最后補一個0
  214.            LCD_CLK=0;
  215.            Lcd_Delay;
  216.           LCD_IO=0;
  217.           Lcd_Delay;
  218.           LCD_CLK=1;
  219.           Lcd_Delay;
  220.         LCD_CS=1;
  221.         Lcd_Delay;
  222. }
  223. //=============================================================================
  224. void  Lcd_Refresh(void)        //重新對LCD進行刷屏
  225. {
  226.         uchar i;
  227.         for(i=0;i<LCD_BUFF_MAX;i++)
  228.                 Lcd_Data(i,lcd.buff[i]);
  229. ……………………

  230. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
HT1621(不帶字庫).zip (1.43 MB, 下載次數: 112)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:429142 發表于 2018-11-27 20:11 | 顯示全部樓層
學習學習
回復

使用道具 舉報

ID:839438 發表于 2020-11-26 08:37 | 顯示全部樓層
謝謝樓主,幫助,我下了你的附件,謝謝
回復

使用道具 舉報

ID:63106 發表于 2021-7-12 18:58 | 顯示全部樓層
ganxie fenxiang
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表