TM1602使用簡介(C8051)

1 簡介

TM1602作為數(shù)碼管顯示的專用電路,可以簡化電路設(shè)計以及節(jié)約MCU的引腳資源损姜。通過串行將數(shù)據(jù)寫入芯片饰剥,由芯片完成動態(tài)掃描顯示。TM1602兩種工作模式摧阅,六位八段和七位八段(上電默認(rèn))汰蓉,下面例子中設(shè)置為六位八段,地址自增模式棒卷。這里詳細(xì)不再介紹顾孽,具體可以參閱數(shù)據(jù)手冊。

2 詳細(xì)驅(qū)動代碼

代碼是基于C8051單片機比规,以下代碼可以直接使用若厚,只需要添加引腳的定義即可。

#define TM1620_Mode_6_8         0x02//設(shè)置顯示模式蜒什,6位8段--上電默認(rèn)是7段8段  
#define TM1620_AddrAutoAdd      0x40//寫顯示盹沈,自動累加地址    
#define TM1620_AddrFixed        0x44//寫顯示,固定地址    
  
#define TM1620_00H             0xC0//地址00H  
#define TM1620_01H             0xC1//地址01H  
#define TM1620_02H             0xC2//地址02H  
#define TM1620_03H             0xC3//地址03H  
#define TM1620_04H             0xC4//地址04H  
#define TM1620_05H             0xC5//地址05H  
#define TM1620_06H             0xC6//地址06H  
#define TM1620_07H             0xC7//地址07H  
#define TM1620_08H             0xC8//地址08H  
#define TM1620_09H             0xC9//地址09H  
#define TM1620_0AH             0xCA//地址0AH  
#define TM1620_0BH             0xCB//地址0BH 

#define TM1620_OpenDis          0x88//開顯示  
#define TM1620_CloseDis         0x80//關(guān)顯示  
  
#define TM1620_Pulse_1          0X00//設(shè)置脈沖寬度為 1/16   
#define TM1620_Pulse_2          0X01//設(shè)置脈沖寬度為 2/16   
#define TM1620_Pulse_4          0X02//設(shè)置脈沖寬度為 4/16   
#define TM1620_Pulse_10         0X03//設(shè)置脈沖寬度為 10/16   
#define TM1620_Pulse_11         0X04//設(shè)置脈沖寬度為 11/16   
#define TM1620_Pulse_12         0X05//設(shè)置脈沖寬度為 12/16   
#define TM1620_Pulse_13         0X06//設(shè)置脈沖寬度為 13/16   
#define TM1620_Pulse_14         0X07//設(shè)置脈沖寬度為 14/16

//串行輸入要顯示的字符
void TM1620_WriteData(uchar dat)
{
    uchar i ;
    TM1620_STB_0;
    delay_us(5);
    for(i = 0; i < 8; i++)
    {
        TM1620_CLK_0;
        if(dat & 0x01)
        {
            TM1620_DIN_1;
        }
        else
        {
            TM1620_DIN_0;
        }
        dat >>= 1;
        TM1620_CLK_1;   
        TM1620_CLK_0;
    }
}
//初始化
void TM1620_Init(void)
{
    TM1620_STB_1;
    TM1620_CLK_1;
    TM1620_DIN_1;
    TM1620_WriteData(TM1620_Mode_6_8);//設(shè)置1620為六位八段顯示模式
    TM1620_STB_1;
    TM1620_WriteData(TM1620_AddrAutoAdd);//設(shè)置地址自動+1
    TM1620_STB_1;
    TM1620_WriteData(TM1620_00H);//設(shè)置地址
}

//輸入?yún)?shù)為脈沖寬度吃谣,用來控制顯示亮度
void TM1620_OpenDisplay(uchar pulseWidth)
{
    TM1620_STB_1;
    TM1620_WriteData(TM1620_OpenDis | pulseWidth);
    delay_us(5);
    TM1620_CLK_0;
}

void TM1620_CloseDisplay(void)
{
    TM1620_STB_1;
    TM1620_WriteData(TM1620_CloseDis);
    delay_us(5);
    TM1620_CLK_0;
}
//輸入顯示數(shù)據(jù)乞封,和數(shù)據(jù)長度
void Display(uchar *datas, uchar len)
{
    uchar i;
    uchar temp = len;

    while(temp > 0)
    {
        TM1620_Init();
        //顯示數(shù)據(jù)正好為6
        if(temp == 6)
        {
            for(i = 0; i < 6; i++)
            {   
                TM1620_WriteData(datas[6-i-1]);
                TM1620_WriteData(0x00);
            }
            break;
        }
        //顯示數(shù)據(jù)小于6位
        else if(temp < 6)
        {
            for(i = 0; i < 6; i++)
            {   
                if(i < 6- temp)
                {
                    TM1620_WriteData(0x00);
                    TM1620_WriteData(0x00);
                    continue;
                }
                TM1620_WriteData(datas[6-i-1]);
                TM1620_WriteData(0x00);
            }
            break; 
        }
        //顯示數(shù)據(jù)長度大于6位,先顯示前六位岗憋,1秒后顯示剩下部分肃晚。依次類推。
        else
        {
            for(i = 0; i < 6; i++)
            {   
                TM1620_WriteData(datas[6-i-1]);
                TM1620_WriteData(0x00);
            }
            datas += LEN_Seg;
            temp -= LEN_Seg;
        }
        TM1620_OpenDisplay(TM1620_Pulse_10);
        delay_s(1);
    }
    TM1620_OpenDisplay(TM1620_Pulse_10);
}

如果對您有所幫助請給在下點個贊

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仔戈,一起剝皮案震驚了整個濱河市关串,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌监徘,老刑警劉巖晋修,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異凰盔,居然都是意外死亡墓卦,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進(jìn)店門户敬,熙熙樓的掌柜王于貴愁眉苦臉地迎上來落剪,“玉大人睁本,你說我怎么就攤上這事≈也溃” “怎么了呢堰?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長凡泣。 經(jīng)常有香客問我枉疼,道長,這世上最難降的妖魔是什么鞋拟? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任往衷,我火速辦了婚禮,結(jié)果婚禮上严卖,老公的妹妹穿的比我還像新娘席舍。我一直安慰自己,他們只是感情好哮笆,可當(dāng)我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布来颤。 她就那樣靜靜地躺著,像睡著了一般稠肘。 火紅的嫁衣襯著肌膚如雪福铅。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天项阴,我揣著相機與錄音滑黔,去河邊找鬼。 笑死环揽,一個胖子當(dāng)著我的面吹牛略荡,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播歉胶,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼汛兜,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了通今?” 一聲冷哼從身側(cè)響起粥谬,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎辫塌,沒想到半個月后漏策,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡臼氨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年掺喻,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡巢寡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出椰苟,到底是詐尸還是另有隱情抑月,我是刑警寧澤,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布舆蝴,位于F島的核電站谦絮,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏洁仗。R本人自食惡果不足惜层皱,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望赠潦。 院中可真熱鬧叫胖,春花似錦、人聲如沸她奥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽哩俭。三九已至绷跑,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間凡资,已是汗流浹背砸捏。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留隙赁,地道東北人垦藏。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像伞访,于是被迫代替她去往敵國和親膝藕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,440評論 2 348