HT1621 LCD驅動的使用
#include
#include
#define uchar unsigned char
#define uint unsigned int
#define _Nop() _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_()
#define BIAS 0x52 //0b1000 0101 0010 1/3duty 4com
#define SYSDIS 0X00 //0b1000 0000 0000 關振系統蕩器和LCD偏壓發生器
#define SYSEN 0X02 //0b1000 0000 0010 打開系統振蕩器
#define LCDOFF 0X04 //0b1000 0000 0100 關LCD偏壓
#define LCDON 0X06 //0b1000 0000 0110 打開LCD偏壓
#define XTAL 0x28 //0b1000 0010 1000 外部接時鐘
#define RC256 0X30 //0b1000 0011 0000 內部時鐘
#define TONEON 0X12 //0b1000 0001 0010 打開聲音輸出
#define TONEOFF 0X10 //0b1000 0001 0000 關閉聲音輸出
#define WDTDIS 0X0A //0b1000 0000 1010 禁止看門狗
//HT1621控制位(液晶模塊接口定義,根據自已的需要更改)
sbit HT1621_DAT=P3^4; //HT1621數據引腳
sbit HT1621_CS=P3^2; //HT1621使能引腳
sbit HT1621_WR=P3^3; //HT1621時鐘引腳
uchar code Ht1621Tab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
//delay us
void Delay(uchar us) //5,7,9
{
while(--us);
}
//delay ms
void DelayMS(uint iMs)
{
uint i,j;
for(i=0;i
}
/******************************************************
寫數據函數,cnt為傳送數據位數,數據傳送為低位在前
*******************************************************/
void Ht1621Wr_Data(uchar Data,uchar cnt)
{
uchar i;
for (i=0;i
HT1621_WR=0;
_Nop();
HT1621_DAT=Data&0x80;
_Nop();
HT1621_WR=1;
_Nop();
Data<<=1;
}
}
/********************************************************
函數名稱:void Ht1621WrCmd(uchar Cmd)
功能描述: HT1621命令寫入函數
全局變量:無
參數說明:Cmd為寫入命令數據
返回說明:無
設 計 人:
版 本:1.0
說 明:寫入命令標識位100
********************************************************/
void Ht1621WrCmd(uchar Cmd)
{
HT1621_CS=0;
_Nop();
Ht1621Wr_Data(0x80,4); //寫入命令標志100
Ht1621Wr_Data(Cmd,8); //寫入命令數據
HT1621_CS=1;
_Nop();
}
/********************************************************
函數名稱:void Ht1621WrOneData(uchar Addr,uchar Data)
功能描述: HT1621在指定地址寫入數據函數
全局變量:無
參數說明:Addr為寫入初始地址,Data為寫入數據
返回說明:無
設 計 人:
版 本:1.0
說 明:因為HT1621的數據位4位,所以實際寫入數據為參數的后4位
********************************************************/
void Ht1621WrOneData(uchar Addr,uchar Data)
{
HT1621_CS=0;
Ht1621Wr_Data(0xa0,3); //寫入數據標志101
Ht1621Wr_Data(Addr<<2,6); //寫入地址數據
Ht1621Wr_Data(Data<<4,4); //寫入數據
HT1621_CS=1;
_Nop();
}
/********************************************************
函數名稱:void Ht1621WrAllData(uchar Addr,uchar *p,uchar cnt)
功能描述: HT1621連續寫入方式函數
全局變量:無
參數說明:Addr為寫入初始地址,*p為連續寫入數據指針,
cnt為寫入數據總數
返回說明:無
設 計 人:
版 本:1.0
說 明:HT1621的數據位4位,此處每次數據為8位,寫入數據
總數按8位計算
********************************************************/
void Ht1621WrAllData(uchar Addr,uchar *p,uchar cnt)
{
uchar i;
HT1621_CS=0;
Ht1621Wr_Data(0xa0,3); //寫入數據標志101
Ht1621Wr_Data(Addr<<2,6); //寫入地址數據
for (i=0;i
Ht1621Wr_Data(*p,8); //寫入數據
p++;
}
HT1621_CS=1;
_Nop();
}
/********************************************************
函數名稱:void Ht1621_Init(void)
功能描述: HT1621初始化
全局變量:無
參數說明:無
返回說明:無
設 計 人:
版 本:1.0
說 明:初始化后,液晶屏所有字段均顯示
********************************************************/
void Ht1621_Init(void)
{
HT1621_CS=1;
HT1621_WR=1;
HT1621_DAT=1;
DelayMS(2000); //延時使LCD工作電壓穩定
Ht1621WrCmd(BIAS);
Ht1621WrCmd(RC256); //使用內部振蕩器
Ht1621WrCmd(SYSDIS);
Ht1621WrCmd(WDTDIS);
Ht1621WrCmd(SYSEN);
Ht1621WrCmd(LCDON);
}
void main()
{
uchar i,j,t;
Ht1621_Init(); //上電初始化LCD
DelayMS(1000); //延時一段時間
while(1){
Ht1621WrAllData(0,Ht1621Tab,16);//清除1621寄存器數據,暨清屏
for (i=0;i<32;i++)
{
t=0x01;
for (j=0;j<4;j++)
{
Ht1621WrOneData(i,t);
t<<=1;
t++;
P1_5=~P1_5;
DelayMS(5000);
}
}
}
}
上一篇:單片機定時倒計時提醒制作
下一篇:HT1621顯示屏驅動芯片單片機源程序
推薦閱讀
史海拾趣
Capax Technologies Inc的崛起始于一次技術突破。公司研發團隊成功開發出一種新型半導體材料,顯著提高了電子設備的性能和能效。這一創新成果迅速在行業內引起關注,Capax Technologies Inc因此獲得了大量訂單和投資。隨著技術的不斷迭代和優化,Capax Technologies Inc逐漸在電子行業中嶄露頭角,成為一家備受矚目的創新型企業。
Capax Technologies Inc在市場定位和產品策略上表現出色。公司深入調研市場需求,發現高端電子設備市場對于高性能、高可靠性的組件有著旺盛的需求。于是,Capax Technologies Inc將產品定位為高端市場,專注于研發和生產高品質的電子組件。通過精準的市場定位和優質的產品,Capax Technologies Inc迅速在高端市場中占據了一席之地。
在電子行業的激烈競爭中,睿赫(crechip)公司以其獨特的創新理念和前瞻性的技術布局,逐漸嶄露頭角。公司創始人李明,一位資深的電子工程師,在一次國際技術交流會上,受到了來自全球各地創新思維的啟發。他意識到,隨著科技的飛速發展,電子行業正迎來一場前所未有的變革。于是,李明決定創立睿赫公司,專注于研發高性能、低功耗的半導體芯片。
在創業初期,睿赫公司面臨著重重困難,資金緊張、人才短缺、技術瓶頸等問題接踵而至。但李明帶領團隊迎難而上,通過不懈的努力和堅持,終于成功研制出了一款具有突破性的芯片產品,受到了業界的廣泛關注和認可。
作為一家有社會責任感的企業,睿赫公司始終關注環境保護和可持續發展。公司在產品研發和生產過程中,積極采用環保材料和綠色生產工藝,減少對環境的影響。同時,公司還積極參與公益事業,為社會做出了積極的貢獻。
在可持續發展方面,睿赫公司致力于推動電子行業的綠色化和智能化發展。公司不斷加強技術研發和創新,推出了一系列符合環保要求和高性能要求的產品,為電子行業的可持續發展做出了積極的貢獻。
隨著公司規模的不斷擴大,ABL Heatsink開始重視品牌建設和市場推廣。公司加大了在廣告、展會等方面的投入,提升了品牌知名度。同時,ABL Heatsink還積極參與行業交流活動,與同行分享經驗和技術,進一步鞏固了公司的行業地位。
早期,ABL Heatsink公司主要生產通用型散熱器,但隨著市場競爭的加劇,公司意識到必須調整市場定位。于是,公司開始專注于研發針對特定電子設備的高性能散熱器。通過深入了解客戶需求,ABL Heatsink成功開發出一系列定制化產品,贏得了市場的青睞。
基于C語言的單片機數字密碼鎖設計和制作 該數字密碼鎖是以AT89C51單片機為控制核心,外加密碼存儲,行列式鍵盤,狀態顯示,聲光報警,數碼管顯示等電路的配合。密碼存儲電路采用I2C總線的EEPROM存儲器AT24C01,保證掉電時密碼信息不丟失。單片機是 ...… 查看全部問答∨ |
引言 無線局域網近年來在機場、酒吧、家庭等地方已實現WLAN的覆蓋,從而使用戶擺脫了有線上網的束縛而獲得了極大的方便。為了以無線的方式實現更大范圍的覆蓋,WLAN中的接入點AP應添加無線mesh路由功能,同時這種AP也將成為mesh路由器,以負責本地 ...… 查看全部問答∨ |
本帖最后由 paulhyde 于 2014-9-15 09:26 編輯 如題,電子技術課程設計的項目問題一直困擾,想分三種類型,一種就是“合格”標準的題目,一種“良好”標準,一種“優秀”標準,可就是確定不了具體用什么項目,請各位大蝦支招!謝謝! … 查看全部問答∨ |
|
作者:周立功 來源:新浪博客 日期:2009-09-30 編者按:我們先后承辦了兩屆Actel杯全國大學生FPGA創新設計大賽,雖然很多大學都開設了與FPGA有關的課程,但是從招聘的情況來看,真正熟練掌握了 FPGA的在 ...… 查看全部問答∨ |
|
Led 強大創意設計-有趣、時尚、另類的創意圖片!不可不看!!! replyreload += \',\' + 380871;Timson,如果您要查看本帖隱藏內容請回復把480個Led燈及光學感應器嵌在桌子里面, 只要你輕輕觸碰到桌面,就如水面一樣,會泛起led燈的漣漪效果,非常棒的效果。 LED 夾燈給夾子加上一個小小的led 燈,它的效果和功 ...… 查看全部問答∨ |
|
高人請幫忙解答一下: 1,online mode下發送+++使modem進入command mode,此時online mode是不是被中斷了? 2,對話后收到CONNECT,是不是說明modem進入online mode? 3,為了使modem 進入command mode并發送想要的command, 下面的AT command 是不是有 ...… 查看全部問答∨ |
各位好: 我用掃描槍讀條碼信息,怎么得到的內容有部分漢字是亂碼啊?大部分是正常的~ 我用的.net 2.0的serialport類 代碼如下: private void m_com1_DataReceived(object sender, System.IO.Ports.Se ...… 查看全部問答∨ |
設計資源 培訓 開發板 精華推薦
- 利用STM32MP1和STM32MP2在嵌入式 Linux 平臺上部署有效的安全保護機制
- 超小但強大:MCU 的小尺寸封裝和集成如何幫助優化空間受限的設計
- 德州儀器推出全球超小型 MCU,助力微型應用創新
- Microchip推出電動兩輪車(E2W)生態系統,加速電動出行創新
- 意法半導體推出STM32U3微控制器,面向遠程、智能和可持續應用,拓展超低功耗系列創新
- (一) ECloudIDE入門STM32-CubeMX工程創建與導入
- (二)ECloudIDE入門STM32-官方寄存器版例程使用
- Simulink STM32F407VGT6實現硬件在環
- openharmony:hilog_lite組件移植