74ls164動(dòng)態(tài)驅(qū)動(dòng)多位數(shù)碼管_第1頁
74ls164動(dòng)態(tài)驅(qū)動(dòng)多位數(shù)碼管_第2頁
74ls164動(dòng)態(tài)驅(qū)動(dòng)多位數(shù)碼管_第3頁
74ls164動(dòng)態(tài)驅(qū)動(dòng)多位數(shù)碼管_第4頁
74ls164動(dòng)態(tài)驅(qū)動(dòng)多位數(shù)碼管_第5頁
已閱讀5頁,還剩7頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

74ls164可否動(dòng)向驅(qū)動(dòng)多位數(shù)碼管voiddisplay( )//數(shù)碼顯示{SCON=0;//初始化串行口方式SBUF=dispcode[ge];while(!TI);TI=0;led4=0;delay(2);led4=1;SBUF=dispcode[shi];while(!TI);TI=0;led3=0;delay(2);led3=1;SBUF=dispcode[bai];while(!TI);TI=0;led2=0;delay(2);led2=1;SBUF=dispcode[qian];while(!TI);TI=0;led1=0;delay(2);led1=1;SBUF=dispcode[wan];while(!TI);TI=0;led0=0;delay(2);led0=1;}74ls164數(shù)碼管驅(qū)動(dòng)(第二個(gè)程序)#defineclockPORTD.1#definedatePORTD.0#defineclock_enDDRD.1#definedate_enDDRD.0unsignedcharlab[2][10]={0x03,0x9F,0x25,0x0D,0x99,0x49,0x41,0x1F,0x01,0x09,0x02,0x9E,0x24,0x0C,0x98,0x48,0x40,0x1E,0x00,0x08};voidsend(unsignedcharw){unsignedchari;for(i=0;i<8;i++){clock=0;date=w&1;clock=1;w=w>>1;}return;}voidxianshi(longw,unsignedcharweishu){unsignedchari,j;bitflag=0;clock_en=1;date_en=1;if(w<0){flag=1;

w=-w;

}for(i=0;i<8;i++)

//8

次循環(huán){if(w!=0){if(i!=weishu){j=lab[0][w%10];}else{j=lab[1][w%10];}}if(w==0){

if(i==0)j=0x03

;

//當(dāng)數(shù)值直接是

0if(i<=weishu){if(i<weishu)j=0x03;if(i==weishu)j=0x02;}else{if(flag)

j=0xdf;

//show

負(fù)號(hào)else

{if(i!=0)j=0xff;}//oxff

就不顯示flag=0;}}send(j);w=w/10;//每顯示一位,除10}return;}51單片機(jī)接74ls164驅(qū)動(dòng)數(shù)碼管的C程序#include<regx52.h>sbitsclk=P2^0;sbitsda=P2^1;sbitslck=P2^2;inttab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};voiddelay( ){inti,j;for(i=0;i<255;i++)for(j=0;j<80;j++);}voidbit_dat(biti){sclk=0;sda=i;sclk=1;}voiddat(chari){slck=0;bit_dat((bit)(tab[i]&0x80));bit_dat((bit)(tab[i]&0x40));bit_dat((bit)(tab[i]&0x20));bit_dat((bit)(tab[i]&0x10));bit_dat((bit)(tab[i]&0x08));bit_dat((bit)(tab[i]&0x04));bit_dat((bit)(tab[i]&0x02));bit_dat((bit)(tab[i]&0x01));slck=1;}main( ){inti;while(1){for(i=0;i<10;i++){dat(i);delay( );}i=0;}}程序以下:/**************************************//*74LS164數(shù)碼管動(dòng)向顯示*//**************************************///-------------------------------------

庫函數(shù)申明,管腳定義

------------#include<at89x51.h>#defineucharunsignedcharsbitsimuseri_CLK=P1^1;sbitsimuseri_DATA=P1^0;

//用//用

P1^1P1^0

模擬串口時(shí)鐘模擬串口數(shù)據(jù)sbita0=ACC^0;unsignedcharcodedis_code[11]={0x28,0x7E,0xa2,0x62,//查表顯示0,1、、90x74,0x61,0x21,0x7A,0x20,0x60,0x01};ucharnumer,temp;ucharge,shi;//----------------------------------------------------------------------------函數(shù)名稱:out_simuseri輸入?yún)?shù):data_buf輸出參數(shù):無//功能說明:8位同步移位存放器,將data_buf的數(shù)據(jù)逐位輸出到//----------------------------------------------------------------------------

simuseri_DATAvoidout_simuseri(uchardata_buf){uchari;i=8;ACC=data_buf;do{simuseri_CLK=0;simuseri_DATA=a0;simuseri_CLK=1;ACC=ACC>>1;}while(--i!=0);}/************************************/voiddelay(ucharms){uchari;while(ms--){for(i=0;i<125;i++);}}

//延時(shí)程序/***********************************/voidmain( ){ucharm;while(1){for(temp=0;temp<99;temp++){ge=temp/10;shi=temp%10;for(m=0;m<20;m++)//顯示頻次200ms加1次{P2_0=0;//位段碼numer=dis_code[ge];out_simuseri(numer);//個(gè)位移位顯示delay(5);P2_0=1;P2_1=0;numer=dis_code[shi];//十位移位out_simuseri(numer);delay(5);P2_1=1;}m=0;}}}/****************************************/*******************************************************************************第二個(gè)程序74HC164是個(gè)移位存放器,以下程序是我用過的,絕對(duì)沒問題:此中ShowData為164數(shù)據(jù)腳,ShowClck為164時(shí)鐘腳;voidShow_164(unsignedchar_ShowValue){unsignedcharCount0;for(Count0=0;Count0<=7;Count0++){if((_ShowValue&0x80)==0x80)ShowData=1;elseShowData=0;_ShowValue<<=1;ShowClck=0;_nop_( );_nop_( );ShowClck=1;}}鑒于51單片機(jī)的簡略數(shù)字頻次計(jì)要求使用準(zhǔn)時(shí)/計(jì)數(shù)器1作準(zhǔn)時(shí)用,準(zhǔn)時(shí)1s;準(zhǔn)時(shí)/計(jì)數(shù)器0作計(jì)數(shù)器用,被計(jì)數(shù)的外面脈沖從P3.4(T0)接入。單片機(jī)將在1s內(nèi)對(duì)脈沖計(jì)數(shù)并送四位數(shù)碼管顯示,最大計(jì)數(shù)顯示值為0FFFFH。求程序。懸賞分:30-解決時(shí)間:2010-6-2722:26;===============================================最正確答案:這是個(gè)簡略頻次計(jì),程序以下;---------------------------------

:ORG0000HJMPSTARTORG000BHJMPT0_INT;---------------------------------START:MOVTMOD,#51H;/*01010001T1

計(jì)數(shù),T0

準(zhǔn)時(shí)*/MOVTH0,#HIGH(65536-50000);50ms@12MHzMOVTL0,#LOW(65536-50000)MOVTH1,#0MOVTL1,#0SETBTR0SETBTR1SETBET0SETBEAMOVR7,#20SJMP$;---------------------------------T0_INT:;50ms履行一次MOVTL0,#LOW(65536-50000);從頭寫入初始值MOVTH0,#HIGH(65536-50000);50ms@12MHzDJNZR7,T0_ENDMOVR7,#20MOVP1,TL1MOVP2,TH1MOVTL1,#0MOVTH1,#0T0_END:RETI;---------------------------------END外接74系列驅(qū)動(dòng)電路就行,比方74LS164或74LS138。動(dòng)向掃描就是給各個(gè)數(shù)碼管挨次顯示,隨意時(shí)間只有一個(gè)數(shù)碼管亮,但閃耀的太快了,人眼分辨不出,給人的感覺就是每個(gè)數(shù)碼管都在亮。一般過程就是賦值,開顯示,延時(shí),關(guān)顯示,這是我從前寫過的程序#include<REGX52.H>main( ){unsignedinti;while(1){P0=0x3f;//個(gè)位賦值P1_0=0;//開顯示for(i=0;i<2;i++);//延時(shí)P1_0=1;//關(guān)顯示P0=0x6;//十位P1_1=0;for(i=0;i<2;i++);P1_1=1;P0=0x5b;//百位P1_2=0;for(i=0;i<2;i++);P1_2=1;P0=0x4f;//千位P1_3=0;for(i=0;i<2;i++);P1_3=1;}}這個(gè)是4位數(shù)碼管,P0口接賦值端,P1口低四位接4個(gè)數(shù)碼管的選通端,你要八個(gè)的話就把P1口的高四位再接到此外四個(gè)數(shù)碼管的片選端,程序模

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論