久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 15642|回復: 16
打印 上一主題 下一主題
收起左側

自制模塊,徹底理解單片機TM1621D段碼液晶并點亮 附程序

  [復制鏈接]
跳轉到指定樓層
樓主
手頭有壞電子秤的段碼液晶,從網上買的段碼液晶屏帶有TM1621D。TM1621D與HT1621結構相同,只是引腳少,段碼少但容易業余制作。正好利用這兩種材料,自制段碼液晶模塊,并用普中開發板調試通過。

程序來自網上修改,權力歸原創作者所有。


連接TM1621D模塊,
程序編譯后HEX文件下載到單片機
關掉下載程序,打開串口調試助手,設置4800波特率,
數據位8停止位1,無校驗無流控制,
勾選HEX發送,輸入80-8F之間的數據,顯示地址0-F。
輸入數據0d-16,1602顯示SEG數字,TM1621
對應段點亮。
注意5v電壓下程序BASE選1/2.選1/3全亮。
3v選1/3BASE
COM誤接成SEG,開機初始化即顯示88。
背光限流電阻1K,白天亮度略低。
VLCD電阻選10k.
段碼每位由兩個地址構成,每個地址4位數據(4段)
用串口調試助手發送必須輸成兩位
80(數據)0b-16(可串發)選定時發送10ms/次
清零:800b0c0d0e0f10111213141516
先81,再輸入0b-16中的任意數字,顯示對應段。
82
84
88
測試段
全顯示:8f0b0c0d0e0f10111213141516

單片機源程序如下:
  1. /*-****************************************
  2. 名稱:TM1621
  3. ******************************************/
  4. #include "TM1621.h"
  5. #include<reg52.h>
  6. #include "intrins.h"                                         //包含nop指令頭文件
  7. #define uchar unsigned char                                 //數據類型宏定義
  8. #define uint unsigned int                                 //數據類型宏定義
  9. #define nop _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); //宏定義
  10. /******************以下TM1621模塊命令定義*********************/
  11. #define SYSDIS   0x00         //關系統振蕩器和LCD偏壓發生器
  12. #define SYSEN    0x02    //打開系統振蕩器

  13. #define LCDOFF   0x04     //關LCD偏壓
  14. #define LCDON    0x06     //開LCD偏壓

  15. #define TONEON   0x12     //打開聲音輸出
  16. #define TONEOFF  0x10     //關閉聲音輸出

  17. #define XTAL     0x28     //外部接晶振
  18. #define RC       0x30     //內部RC振蕩

  19. #define BIAS     0x52     //1/3偏壓 4公共口,0X52=1/2偏壓

  20. #define WDTDIS   0x0a     //禁止看門狗
  21. #define WDTEN    0x0e     //開啟看門狗

  22. /********************定義控制端口**********************/
  23. sbit CS=P2^2;
  24. sbit READ=P2^0;//無用
  25. sbit WRITE=P2^1;
  26. sbit DATA=P2^0;


  27. /********************延時函數*************************/
  28. void delay_nms(uint n)
  29. {
  30.         uint i;
  31.         while (n--)
  32.                 for (i=0;i<500;i++);
  33. }

  34. /********************從高位寫入數據*************************/
  35. void Write_Data_H(uchar Data, uchar Cnt)           //Data的高cnt位寫入TM1621,高位在前
  36. {
  37.         uchar i;
  38.         for (i=0;i<Cnt;i++)
  39.         {
  40.                 WRITE=0;
  41.                 if (Data&0x80)                                 //從最高位發送
  42.                         DATA=1;
  43.                 else
  44.                         DATA=0;
  45.                 nop;
  46.                 nop;
  47.                 WRITE=1;
  48.                 Data<<=1;
  49.         }
  50.         WRITE=0;
  51.         DATA=0;
  52. }

  53. /********************從低位寫入數據*************************/
  54. void Write_Data_L(uchar Data,uchar Cnt)        //Data 的低cnt位寫入TM1621,低位在前
  55. {
  56.         unsigned char i;
  57.         for (i=0;i<Cnt;i++)
  58.         {
  59.                 WRITE=0;
  60.                 if (Data&0x01)                               //從低位發送
  61.                         DATA=1;
  62.                 else
  63.                         DATA=0;
  64.                 nop;
  65.                 nop;
  66.                 WRITE=1;
  67.                 Data>>=1;
  68.         }
  69.         WRITE=0;
  70.         DATA=0;
  71. }

  72. /********************寫入控制命令*************************/
  73. void WriteCmd(uchar Cmd)
  74. {
  75.         CS=0;
  76.         nop;
  77.         Write_Data_H(0x80,4);     //寫入命令標志100
  78.         Write_Data_H(Cmd,8);      //寫入命令數據
  79.         CS=1;
  80.         nop;
  81. }

  82. /*********指定地址寫入數據,實際寫入后4位************/
  83. void WriteOneData(uchar Addr, uchar Data)
  84. {
  85.         CS=0;
  86.         Write_Data_H(0xa0,3);     //寫入數據標志101
  87.         Write_Data_H(Addr<<2,6);  //寫入地址數據(A5-A4-A3-A2-A1-A0)從高位開始寫數據
  88.         Write_Data_L(Data,4);     //寫入數據
  89.         CS=1;
  90.         nop;
  91. }

  92. /*********連續寫入方式,每次數據為8位,寫入數據************
  93. void WriteAllData(uchar Addr,uchar *p,uchar cnt)
  94. {
  95. uchar i;
  96. CS=0;
  97. Write_Data_H(0xa0,3);      //寫入數據標志101
  98. Write_Data_H(Addr<<2,6);   //寫入地址數據
  99. for(i=0;i<cnt;i++)            //寫入數據
  100. {
  101.    Write_Data_L(*p,8);
  102.    p++;
  103. }
  104. CS=1;
  105. nop;
  106. }
  107. ***************這個子程序暫時沒用,注釋掉******************/


  108. /*******************TM1621初始化**********************/
  109. void TM1621_init()
  110. {
  111.         CS=1;
  112.         WRITE=1;
  113.         DATA=1;       
  114.         nop;
  115.         delay_nms(1);
  116.         WriteCmd(BIAS);                 //1/3偏壓 4公共口
  117.         WriteCmd(RC);                         //內部RC振蕩
  118.         WriteCmd(SYSDIS);                 //關系統振蕩器和LCD偏壓發生器
  119.         WriteCmd(WDTDIS);                 //禁止看門狗
  120.         WriteCmd(SYSEN);                 //打開系統振蕩器
  121.         WriteCmd(LCDON);                 //開LCD偏壓
  122.        
  123. }
  124. /*************TM1621清屏函數*****************/
  125. void Clear1621()
  126. {
  127. uchar i;
  128. for(i=9;i<22;i++)
  129. {
  130. WriteOneData(i, 0x00);
  131. }
  132. }
  133. /*******************************************************************************
  134. * 函數名稱                   :1621顯示函數顯示
  135. * 函數功能                   :
  136. * 輸    入         : 無
  137. * 輸    出         : 無
  138. *******************************************************************************/
  139. void Disp1621(uchar Addr, uchar Data)
  140. {
  141. WriteOneData(Addr, Data);
  142. }
復制代碼
全部資料51hei下載地址:
完全調試通過的1602和TM1621程序.rar (1.91 MB, 下載次數: 483)

評分

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

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏16 分享淘帖 頂1 踩
回復

使用道具 舉報

沙發
ID:328014 發表于 2020-2-20 15:42 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:149451 發表于 2020-3-3 16:30 | 只看該作者
好資料!我最近也在玩pt1621b,米字管的,用最笨的方法繪的真值表。
回復

使用道具 舉報

地板
ID:149451 發表于 2020-3-3 16:45 | 只看該作者
LZ,你的資料打不開呀。重新傳一下吧。謝謝
回復

使用道具 舉報

5#
ID:137736 發表于 2020-3-9 20:45 | 只看該作者
w1179benp 發表于 2020-3-3 16:45
LZ,你的資料打不開呀。重新傳一下吧。謝謝

我下了,能夠正常打開。這個壓縮的winRAR版本高。你裝個高版本的RAR吧。我以前也遇到過類似問題。
回復

使用道具 舉報

6#
ID:350320 發表于 2020-5-12 13:45 | 只看該作者
謝謝分享!!!!!!!!!!!!!!
回復

使用道具 舉報

7#
ID:767356 發表于 2020-6-2 14:16 | 只看該作者
WRITE=1;
Data<<=1;     請問這里為什么要移位呢?
回復

使用道具 舉報

8#
ID:767571 發表于 2020-6-2 15:49 | 只看該作者
謝謝分享!!!!!!!!
回復

使用道具 舉報

9#
ID:137736 發表于 2022-1-14 21:59 來自手機 | 只看該作者
491612982 發表于 2020-6-2 14:16
WRITE=1;
Data

發送完了,要左移一位再發送。在一個循環內。
回復

使用道具 舉報

10#
ID:412814 發表于 2022-9-27 19:59 | 只看該作者
感謝樓主分享,剛開始學這部分,希望能學會。
回復

使用道具 舉報

11#
ID:1045132 發表于 2023-2-2 08:14 | 只看該作者

直接左移0x01
代碼看起來更簡潔
回復

使用道具 舉報

12#
ID:14806 發表于 2023-2-2 14:53 | 只看該作者

感謝樓主分享,剛開始學這部分,希望能學會
回復

使用道具 舉報

13#
ID:929051 發表于 2023-4-10 21:33 | 只看該作者

感謝樓主分享,剛開始學這部分,希望能學會。
回復

使用道具 舉報

14#
ID:1064915 發表于 2023-4-11 08:38 | 只看該作者
有HT1621,與51開發板如何連接
回復

使用道具 舉報

15#
ID:921750 發表于 2023-10-6 20:19 | 只看該作者
感謝樓主分享,摸了好久的程序一直卡在這部分,下載試試先。
回復

使用道具 舉報

16#
ID:137736 發表于 2023-10-15 11:41 | 只看該作者
joyb 發表于 2023-4-11 08:38
有HT1621,與51開發板如何連接

看代碼定義控制口段的定義。
回復

使用道具 舉報

17#
ID:673671 發表于 2024-7-13 16:31 | 只看該作者
大神,太強了,666

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩三级精品 | 国产丝袜一区二区三区免费视频 | 久久这里有精品 | 亚洲精品久久久一区二区三区 | 狠狠狠色丁香婷婷综合久久五月 | 免费不卡一区 | 久久精品国产久精国产 | 欧美成人综合 | 欧美日韩国产高清 | 羞羞视频在线观免费观看 | 久久亚洲二区 | 97国产一区二区 | 99re在线视频| 成人h免费观看视频 | 精品国产精品国产偷麻豆 | av在线天堂网 | 国产精品一区在线观看 | 91久色| 国产精品久久久久久久久久久久冷 | 国产美女在线看 | 九色91视频| 天天精品综合 | 欧美精品一区二区三区在线播放 | 亚洲一区二区三区桃乃木香奈 | 久久99久久99精品免视看婷婷 | 毛片在线看看 | 欧美电影免费观看高清 | 国产精品一区久久久久 | 欧美一区二区三区视频 | 久操伊人 | 国内毛片毛片毛片毛片 | 成人福利在线观看 | 国产精品久久久久久久久久妞妞 | 国产精品久久久久久久久污网站 | 国产做a爱片久久毛片 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | av免费看片 | 91免费看片神器 | 一级aaaa毛片 | 在线看免费的a | 精品久久久久久久久久久久久 |