51單片機(jī)+tm1620驅(qū)動(dòng)3位數(shù)碼管程序
TM1620 是天微公司生產(chǎn)的二極管驅(qū)動(dòng)芯片,SOP20封裝。芯片如下圖所示:
最多可以驅(qū)動(dòng)6個(gè)8位數(shù)碼管,如下圖所示:
程序如下:
/***************************************************名稱:STC51驅(qū)動(dòng)TM16203位數(shù)碼管顯示*MCU:STC12C5608AD*主頻:12Mhz(外部接12MHz晶振)*作者:Ration*時(shí)間:2013年12月5日(整理)*版權(quán):版權(quán)歸《單片機(jī)學(xué)習(xí)網(wǎng)》所有,傳播請(qǐng)保持完整性**更多程序請(qǐng)?jiān)L問(wèn):http://www.rationmcu.com*************************************************/#include"stc12c5608ad.h"#include#defineuintunsignedint//宏定義uint(0~65535)#defineucharunsignedchar//#defineuint32unsignedlongsbitSTB=P3^2;//定義片選通訊口sbitCLK=P3^3;//定義時(shí)鐘通訊口sbitDIO=P3^4;//定義數(shù)據(jù)輸入/輸出通訊口ucharbai_num,shi_num,ge_num;staticucharcodeLED_tab[11]={//定義數(shù)碼管0~9數(shù)字碼表0x3f,//0B00111111,//00x30,//0B00000110,//10x6d,//0B01011011,//20x79,//0B01001111,//30x33,//0B01100110,//40x5b,//0B01101101,//50x5f,//0B01111101,//60x70,//0B00000111,//70x7f,//0B01111111,//80x7B,//0B01101111,//90x4f,//E};voiddelay_ms(ucharcyc){//當(dāng)將=1的時(shí)候,延時(shí)1msucharii,jj;for(jj=1;jj<=cyc;jj++){for(ii=0;ii<200;ii++){_nop_();}}}voidTM1620_Write(ucharwr_data){uchari;for(i=0;i<8;i++){CLK=0;if(wr_data&0x01)DIO=1;elseDIO=0;CLK=1;wr_data>>=1;}}voidWrite_COM(unsignedcharcmd)//發(fā)送命令字{STB=0;TM1620_Write(cmd);STB=1;}voidinit_TM1620(void){Write_COM(0x44);//01000000準(zhǔn)備寫(xiě)數(shù)據(jù)到顯示寄存器,普通模式,自動(dòng)地址增加STB=0;TM1620_Write(0xc0);//11000000設(shè)置顯示地址從0開(kāi)始TM1620_Write(0x00);//所有顯示為滅STB=1;STB=0;TM1620_Write(0xc2);TM1620_Write(0x00);STB=1;STB=0;TM1620_Write(0xc4);TM1620_Write(0x00);STB=1;Write_COM(0x8f);//最亮10001111設(shè)置消光脈沖14/16顯示開(kāi)}voidled_show(){//Write_COM(0x44);//01000000準(zhǔn)備寫(xiě)數(shù)據(jù)到顯示寄存器,普通模式,自動(dòng)地址增加STB=0;TM1620_Write(0xc0);//11000000設(shè)置顯示地址從0開(kāi)始TM1620_Write(LED_tab[bai_num]);//所有顯示為滅STB=1;STB=0;TM1620_Write(0xc2);//11000000設(shè)置顯示地址從0開(kāi)始TM1620_Write(LED_tab[shi_num]);//所有顯示為滅STB=1;STB=0;TM1620_Write(0xc4);//11000000設(shè)置顯示地址從0開(kāi)始TM1620_Write(LED_tab[ge_num]);//所有顯示為滅STB=1;}voidmain(){CLK=1;//上拉TM1620通信時(shí)鐘引腳STB=1;//上拉TM1620通信片選引腳DIO=1;//上拉TM1620通信數(shù)據(jù)引腳init_TM1620();//初始化LED控制芯片bai_num=0;shi_num=0;ge_num=0;led_show();while(1){;}}
完整keil工程文件,請(qǐng)按如下方法獲?。?/p>