電子設(shè)計與單片機應(yīng)用實訓(xùn)教程代碼第十五章_第1頁
電子設(shè)計與單片機應(yīng)用實訓(xùn)教程代碼第十五章_第2頁
電子設(shè)計與單片機應(yīng)用實訓(xùn)教程代碼第十五章_第3頁
電子設(shè)計與單片機應(yīng)用實訓(xùn)教程代碼第十五章_第4頁
電子設(shè)計與單片機應(yīng)用實訓(xùn)教程代碼第十五章_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1:串行口通信編程(單片機):/*名稱:串行數(shù)據(jù)轉(zhuǎn)換為并行數(shù)據(jù) 說明:串行數(shù)據(jù)由RXD發(fā)送給串并轉(zhuǎn)換芯片74164,TXD則用于輸出移位時鐘脈沖,74164將串行輸入的1字節(jié)轉(zhuǎn)換為并行數(shù)據(jù),并將轉(zhuǎn)換的數(shù)據(jù)通過8只LED顯示出來。本例串口工作模式0,即移位寄存器I/O模式。*/#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintsbitSPK=P3^7;ucharFRQ=0x00;voidDelayMS(uintms) //延時{ uchari; while(ms--)for(i=0;i<120;i++);}voidmain() //主程序{ ucharc=0x80; SCON=0x00; //串口模式0,即移位寄存器輸入/輸出方式 TI=1; while(1) { c=_crol_(c,1); SBUF=c; while(TI==0); //等待發(fā)送結(jié)束 TI=0; //TI軟件置位 DelayMS(400); }}2:I2C總線的應(yīng)用(單片機):#include<reg51.h>#include<intrins.h> #defineucharunsignedchar#defineuintunsignedint#defineDelay4us(){_nop_();_nop_();_nop_();_nop_();}sbitSCL=P1^0;sbitSDA=P1^1;ucharcodeDSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//段碼ucharDISP_Buffer[]={0,0,0}; //三位數(shù)顯示緩沖ucharCount=0;voidDelayMS(uintms) //延時{ uchari; while(ms--)for(i=0;i<120;i++);}voidStart() //I2C啟動{SDA=1;SCL=1;Delay4us();SDA=0;Delay4us();SCL=0;}voidStop() //I2C停止{SDA=0;SCL=0;Delay4us();SCL=1;Delay4us();SDA=1;}voidRACK() //讀取應(yīng)答{SDA=1;Delay4us();SCL=1;Delay4us();SCL=0;}voidNO_ACK() //發(fā)送非應(yīng)答信號{SDA=1;SCL=1;Delay4us();SCL=0;SDA=0;}voidWrite_A_Byte(ucharbyte) //向24C04中寫一個字節(jié)數(shù)據(jù){ uchari; for(i=0;i<8;i++) {byte<<=1;SDA=CY;_nop_();SCL=1;Delay4us();SCL=0; } RACK();}voidWrite_Random_Adress_Byte(ucharaddr,uchardat) //向指定地址寫數(shù)據(jù){Start();Write_A_Byte(0xa0);Write_A_Byte(addr);Write_A_Byte(dat);Stop();DelayMS(10);}ucharRead_A_Byte() //從24C04中讀一個字節(jié)數(shù)據(jù){ uchari,b; for(i=0;i<8;i++) {SCL=1;b<<=1;b|=SDA;SCL=0; } returnb;}ucharRead_Current_Address_Data() //從當(dāng)前地址讀取數(shù)據(jù){uchardat;Start();Write_A_Byte(0xa1);dat=Read_A_Byte();NO_ACK();Stop();returndat;}ucharRandom_Read(ucharaddr) //從任意地址讀取數(shù)據(jù){ Start(); Write_A_Byte(0xa0);Write_A_Byte(addr); Stop(); returnRead_Current_Address_Data();}voidConvert_And_Display() //數(shù)據(jù)轉(zhuǎn)換與顯示 { DISP_Buffer[2]=Count/100; DISP_Buffer[1]=Count%100/10; DISP_Buffer[0]=Count%100%10; if(DISP_Buffer[2]==0) //高位為0不顯示 { DISP_Buffer[2]=10; if(DISP_Buffer[1]==0) //高位為0,次高位為0不顯示 DISP_Buffer[1]=10; } P0=0xff; P2=0x80; //個位 P0=DSY_CODE[DISP_Buffer[0]]; DelayMS(2); P0=0xff; P2=0x40; //十位 P0=DSY_CODE[DISP_Buffer[1]]; DelayMS(2); P0=0xff; P2=0x20; //百位 P0=DSY_CODE[DISP_Buffer[2]]; DelayMS(2);}voidmain() //主程序{ Count=Random_Read(0x00)+1; //從24C04的0x00地址讀取數(shù)據(jù)并遞增 Write_Random_Adress_Byte(0x00,Count); //將遞增后的計數(shù)值寫入24C04 while(1)Convert_And_Display(); //轉(zhuǎn)換并持續(xù)刷新數(shù)碼管顯示}3:液晶顯示字符串(單片機):#include<reg52.h> //頭文件#defineucharunsignedchar //宏定義#defineuintunsignedintucharcodetable1[]="HOWAREYOU"; //顯示內(nèi)容ucharcodetable2[]="IAMFINE"; sbitlcdrs=P3^0; //RS端sbitlcdrw=P3^1; //R/W端sbitlcde=P3^2; //E端ucharnum;voiddelay(uintxms) //延時{uintx,y;for(x=xms;x>0;x--)for(y=110;y>0;y--);}voidwrite_com(ucharcom) //寫命令{ lcdrs=0; P2=com; delay(5); lcde=1; delay(5); lcde=0;}voidwrite_date(uchardate) //寫數(shù)據(jù){ lcdrs=1; P2=date; delay(5); lcde=1; delay(5); lcde=0;}voidinit() //初始化{lcdrw=0; //由于不需要讀入,因此固定讀入,低電平lcde=0; write_com(0x38); //設(shè)置16X2顯示,5X7點陣,8位數(shù)據(jù)接口 write_com(0x0c); //設(shè)置開顯示,不顯示光標(biāo) write_com(0x06); //寫一個字符后地址指針加1 write_com(0x01); //顯示清0,數(shù)據(jù)指針清0}voidmain() //主函數(shù){init(); while(1) {write_com(0x80); //將數(shù)據(jù)指針定位在第一行第一個字處 for(num=0;num<11;num++) //送入第一行數(shù)據(jù) { write_date(table1[num]); delay(5); } write_com(0x80+0x40); for(num=0;num<10;num

溫馨提示

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

評論

0/150

提交評論