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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

段碼屏的顯示原理和HT1621驅動方法詳解

查看數: 34565 | 評論數: 19 | 收藏 23
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2018-7-7 21:14

正文摘要:

最近一個客戶聯系到沙鷗,打算對一個市面上現有的測試儀器進行升級改進,電話初步交流了一下,當時一想,儀器無非就是探頭加二次電路,應該SO EASY,客戶發來產品資料,于是簡單調研了一下這個儀器,發現光是這種類 ...

回復

ID:1064915 發表于 2024-3-27 10:05
1.        #include <STC15F2K60S2.H>
2.        #include <intrins.h>
3.       
4.        /*7段數碼段對應的8Bit順序依次為bit7~bit0:abcx_fged
5.              --01--
6.           |            |
7.           10   02     08
8.           |  --20--   |
9.           40   04     08
10.           |            |
11.              --80--      
12.        */
13.       
14.        /*--------------------------------------------------------------
15.        LCD操作相關的宏定義和函數聲明
16.        ----------------------------------------------------------------*/
17.        #define  ComMode  0x52    //4COM,1/3bias 偏壓比     1000 0101 0010
18.        //#define ComMode  0x50    //4COM,1/2bias          1000 0101 0000
19.        #define  RCosc     0x30    //內部RC振蕩器(上電默認)1000 0011 0000
20.        #define  LCD_on    0x06    //打開LCD顯示 偏壓發生器1000 0000 0110
21.        #define  LCD_off   0x04    //關閉LCD顯示(上電默認)
22.        #define  Sys_en     0x02    //系統振蕩器開 1000 0000 0010
23.        #define  Ctrl_cmd  0x80    //寫控制命令   1000
24.        #define  Data_cmd  0xa0    //寫數據命令   1010
25.       
26.        sbit DIPIN    =P3^7;              //LCD液晶屏DI引腳
27.        sbit CLKPIN  =P3^6;             //LCD液晶屏CLK引腳
28.        sbit CSPIN    =P3^5;              //LCD液晶屏CS引腳
29.       
30.        //SMS0707B LCD Drive code
31.        //Write bit data 寫位數據
32.        void SendBit_1621(unsigned char sdata,unsigned char cnt)
33.                    //sdata 的高cnt 位寫入HT1621,高位在前
34.        {
35.                unsigned char i;
36.                for(i=0;i<cnt;i++)
37.                {
38.                        CLKPIN=0;         
39.                        if(sdata&0x80)
40.                                DIPIN=1;
41.                        else DIPIN=0;
42.                        CLKPIN=1;
43.                        sdata<<=1;
44.                }
45.        }
46.       
47.        /*--------------------------------------------------------------------------------------------------------
48.        Name: SendCmd(送命令)
49.        寫入標志碼"100"和9位comma命令,由于沒有使用到更改時鐘輸出等命令
50.        為了編程方便直接將command 的最高位寫"0"
51.        ----------------------------------------------------------------------------------------------------------*/
52.        void SendCmd_1621(unsigned char command)//寫命令
53.        {                   //3位標志碼 + 9位命令,共12位
54.                CSPIN=0;      //執行一個下降沿                                       
55.                SendBit_1621(0x80,4);
56.              //寫入標志碼"100"和9位comma命令的最高1位共4位
57.                SendBit_1621(command,8);
58.              //寫入9位comma命令的后8位,組成1000 xxxx xxxx
59.                CSPIN=1;    //送數完成后置高電平
60.        }
61.       
62.        /******-------------------------------------------------------------------------
63.        Name: Write_1621(送命令和數據程序)
64.        寫入標志碼"101"和6位addr地址碼和8位sdata顯示數據。
65.        ---------------------------------------------------------------------------*******/
66.        void Write_1621(unsigned char addr,unsigned char sdata,unsigned char len)//寫數據
67.        {//3位標志碼 + 6位寫數據命令 + 8(4)位數據,共17位
68.                addr<<=2;//高6位有效
69.                CSPIN=0; //執行一個下降沿
70.                SendBit_1621(0xa0,3);                //寫入標志碼"101"    寫數據命令101
71.                SendBit_1621(addr,6);                //寫入addr 的高6位   寫數據命令xxxx xx
72.                SendBit_1621(sdata,len);        //寫入8/4位 sdata數據  len=8/4
73.                CSPIN=1;//送數完成后置高電平
74.        }
75.       
76.        /**-------------------------------------------------------------------------
77.        Name: Init_1621(初始化1621)
78.        -------------------------------------------------------------------------******/
79.        void LCD_Init()                       //初始化
80.        {                             //程序輸入100 0+8=9位命令
81.                SendCmd_1621(Sys_en); //Sys_en 0x02 系統振蕩器開          100 0 0000 0010
82.                SendCmd_1621(RCosc);
83.                             //RCosc 0x30 內部RC振蕩器(上電默認) 100 0 0011 0000
84.                SendCmd_1621(ComMode);  //4COM,1/3bias                     100 0 0101 0020
85.                SendCmd_1621(LCD_on);
86.                             //LCD_on 0x06 打開LCD顯示 偏壓發生器100 0 0000 0110
87.        }
88.       
89.        /*-------------------------------------------------------------------------
90.        Name: lcdwd1(點亮1621全部Seg)
91.        -------------------------------------------------------------------------*/
92.        void LCDWD1(void)
93.        {
94.                unsigned char i;
95.                unsigned char addr=9;//5位顯示碼寄存器起始地址0x09
96.                for(i=0;i<5;i++)
97.                {
98.                        Write_1621(addr,LCD_Buffer[i+1],8);
99.                             //addr為地址碼,l_data為數據,8為8位數據
100.                        addr+=2;  //順延2個4位地址碼
101.                }
102.        }
ID:224580 發表于 2024-3-26 17:50
很高興你能分享和詳細說明1621原理,一直不懂怎么下手編程。
ID:1095925 發表于 2024-1-5 16:18

先看看,應該用的著
ID:1064915 發表于 2023-7-4 09:53
沒有設計代碼
ID:232791 發表于 2022-1-14 09:27
就需要在COM1-SEG1和SEG2,COM2-SEG1和SEG2, COM3-SEG1和SEG2, COM4-SEG1和SEG2,之間同時施加交流電壓
SEG1-COM2、SEG1-COM3
ID:336378 發表于 2021-12-2 08:09
網上有現成的代碼,移值過來就行了吧。有時不必什么都懂。有時我們是做產品,不是搞科研,當教授。
ID:845778 發表于 2021-9-10 11:39
請問樓主現在還接51內核的方案嗎
ID:313760 發表于 2021-4-13 22:16
這個地址到底是怎么看的
ID:833692 發表于 2020-12-25 16:34
除了兩處對應不上,講得算是比較清楚的了
ID:483991 發表于 2020-4-3 21:17
先看看,后面應該用的著
ID:440637 發表于 2019-10-10 08:53
先頂起!應該是很好的資料
ID:282095 發表于 2019-8-14 19:01
蠻詳細的 感謝分享
ID:248740 發表于 2019-8-14 17:11
1元感謝樓主,好懂,謝謝
ID:464883 發表于 2019-7-4 22:27
正在研究1621,樓主講得簡單易懂,學習了。
ID:553946 發表于 2019-6-4 15:06
不錯不錯!
ID:156220 發表于 2019-2-14 21:35
很好的資料,先收藏了
ID:472325 發表于 2019-2-14 17:06
先頂起!應該是很好的資料

評分

參與人數 1黑幣 +10 收起 理由
春風十里吹 + 10

查看全部評分

ID:370779 發表于 2018-9-16 18:58
圖6和圖7之間那段話應該是COM1-SEG1和COM2-SEG1z,這樣才能和圖7對應起來,否則會讓人產生誤解
ID:370779 發表于 2018-9-16 18:40
樓主上面關于點亮第一個“8”的段碼有問題 按照圖片的顯示應該是COM0-SEG1,COM1-SEG0和SEG1, COM2-SEG0和SEG1, COM3-SEG0和SEG1,即1A 1B 1C 1D 1E 1F 1G7個筆段。

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一区不卡 | 91成人免费看片 | 中文字幕91av | 久久久久国产 | 97精品超碰一区二区三区 | 国产精品夜间视频香蕉 | 色999视频| 成人区一区二区三区 | 日本在线免费看最新的电影 | 色在线看| 一级黄色淫片 | 欧美日韩精品区 | 久久精品久久久久久 | 国产精品免费大片 | 久久久久无码国产精品一区 | 国产日韩欧美中文 | 亚洲91av| 天天色影视综合 | 国产精品一区二区在线播放 | 精品久久av| 正在播放一区二区 | 欧美一区二区视频 | 欧美亚洲视频在线观看 | 欧美极品视频在线观看 | 91精品麻豆日日躁夜夜躁 | 一级片在线免费播放 | 久久久久久免费精品一区二区三区 | japanhd成人| 国产高清免费视频 | 亚洲天堂免费在线 | 中文字幕一区二区三区不卡 | 中文字幕在线中文 | 91天堂网 | 毛片a级毛片免费播放100 | 日本二区| 日韩中文字幕免费在线 | 亚洲欧洲日韩精品 中文字幕 | 久久精品高清视频 | 99久久婷婷国产精品综合 | 午夜视频免费在线观看 | 999免费观看视频 |