|
單片機(jī)源程序如下:
- #ifndef _HT1621B_H_
- #define _HT1621B_H_
- #include <reg52.h>
- #include <intrins.h> //為了使用NOP
- #define NOP _nop_()
- #define uchar unsigned char
- #define uint unsigned int
- #define ComMode 0x52 //4COM,1/3bias 1000 010 1001 0
- #define RCosc 0x30 //內(nèi)部RC振蕩器(上電默認(rèn))1000 0011 0000
- #define LCD_on 0x06 //打開LCD顯示 偏壓發(fā)生器1000 0000 0 11 0
- #define LCD_off 0x04 //關(guān)閉LCD顯示(上電默認(rèn))
- #define Sys_en 0x02 //系統(tǒng)振蕩器開 1000 0000 0010
- #define Ctrl_cmd 0x80 //寫控制命令 1000
- #define Data_cmd 0xa0 //寫數(shù)據(jù)命令 1010
- //定義HT1621端口
- #define SEG_NUM 12 //段碼數(shù)字個(gè)數(shù),即Seg數(shù)量/2
- sbit CS1=P2^7;
- sbit WR1=P2^6;
- sbit DATA1=P2^5;
- // // 0 1 2 3 4 5 6 7 8 9 滅
- uchar code tab[11]={0xF0,0x60,0xD0,0xF0,0x60,0xB0,0xB0,0xE0,0xF0,0xF0,0x00};
- uchar code tab1[11] ={0xA0,0x00,0x60,0x40,0xC0,0xC0,0xE0,0x00,0xE0,0xC0,0x00};
- /**-------------------------------------------------------------------------
- Name: SendBit_1621(送數(shù)據(jù)程序)
- ---------------------------------------------------------------------------*/
- void SendBit_1621(uchar sdata,uchar cnt) //sdata 的高cnt 位寫入HT1621,高位在前
- {
- uchar i;
- for(i=0;i<cnt;i++)
- {
- WR1=0;
- if(sdata&0x80) DATA1=1;
- else DATA1=0;
- WR1=1;
- sdata<<=1;
- }
- }
- /**-------------------------------------------------------------------------
- Name: SendCmd(送命令)
- ---------------------------------------------------------------------------*/
- void SendCmd_1621(uchar command)
- {
- CS1=0;
- SendBit_1621(0x80,4); //寫入標(biāo)志碼“100”和9 位command 命令,由于
- SendBit_1621(command,8); //沒有使有到更改時(shí)鐘輸出等命令,為了編程方便
- CS1=1; //直接將command 的最高位寫“0”
- }
- /**-------------------------------------------------------------------------
- Name: Write_1621(送數(shù)據(jù)和命令程序)
- ---------------------------------------------------------------------------*/
- void Write_1621(uchar addr,uchar sdata,uchar len)
- {
- addr<<=2;
- CS1=0;
- SendBit_1621(0xa0,3); //寫入標(biāo)志碼“101”
- SendBit_1621(addr,6); //寫入addr 的高6位
- SendBit_1621(sdata,len); //寫入data 的高len位
- CS1=1;
- }
- /**-------------------------------------------------------------------------
- Name: all_off(清除1621顯示)
- ---------------------------------------------------------------------------*/
- void HT1621_all_off(void)
- {
- uchar i;
- uchar addr=0;
- for(i=0;i<SEG_NUM;i++)
- {
- Write_1621(addr,0x00,8);
- addr+=2;
- }
- }
- /**-------------------------------------------------------------------------
- Name: all_on(點(diǎn)亮1621全部Seg)
- -------------------------------------------------------------------------*/
- void HT1621_all_on(void)
- {
- uchar i;
- uchar addr=0;
- for(i=0;i<SEG_NUM;i++)
- {
- Write_1621(addr,0xff,8);
- addr+=2;
- }
- }
- /**-------------------------------------------------------------------------
- Name: Init_1621(初始化1621)
- -------------------------------------------------------------------------*/
- void Init_1621(void)
- {
- SendCmd_1621(Sys_en);
- SendCmd_1621(RCosc);
- SendCmd_1621(ComMode);
- SendCmd_1621(LCD_on);
- }
- /**-------------------------------------------------------------------------
- Name: LCDoff(初始化1621)
- -------------------------------------------------------------------------*/
- void LCDoff(void)
- {
- SendCmd_1621(LCD_off);
- }
- /**-------------------------------------------------------------------------
- Name: LCDon(初始化1621)
- -------------------------------------------------------------------------*/
- void LCDon(void)
- {
- SendCmd_1621(LCD_on);
- }
- void DelayMs(uint n)
- {
- uchar a,b;
- uint i;
- for(i=n;i>0;i--)
- for(b=80;b>0;b--)
- for(a=10;a>0;a--)NOP;
- }
- #endif
- //void main(void)
- //{
- // uchar i;
- // Init_1621(); //初始化HT1621
- // HT1621_all_off(); //清空LCD顯示
- // HT1621_all_on(); //點(diǎn)亮所有Seg
- // DelayMs(500);
- //HT1621_all_off();
- // while(1)
- // {
- // DelayMs(500);
- // i++;
- //if(10==i) //??8??????
- //i=0;
- //
- //Write_1621(10, tab[i],4); //第1個(gè)數(shù)字顯示"1"
- // Write_1621(11,tab1[i],4);
- //
- ……………………
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
HT1621液晶測(cè)試程序.rar
(21.72 KB, 下載次數(shù): 263)
2017-12-19 23:32 上傳
點(diǎn)擊文件名下載附件
|
評(píng)分
-
查看全部評(píng)分
|