




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
實(shí)例4:用單片機(jī)控制一個燈閃爍:認(rèn)識單片機(jī)的工作頻 實(shí)例5:將P1口狀態(tài)分別送入P0、P2、P3口:認(rèn)識I/O口的引腳功 實(shí)例6:使用P3口流水點(diǎn)亮8位 實(shí)例7:通過對P3口地址的操作流水點(diǎn)亮8位 實(shí)例9:用P0口、P1口分別顯示加法和減法運(yùn)算結(jié) 實(shí)例10:用P0、P1口顯示乘法運(yùn)算結(jié) 實(shí)例11:用P1、P0口顯示除法運(yùn)算結(jié) 實(shí)例12:用自增運(yùn)算控制P0口8位LED流水花 實(shí)例13:用P0口顯示邏輯"與"運(yùn)算結(jié) 實(shí)例14:用P0口顯示條件運(yùn)算結(jié) 實(shí)例15:用P0口顯示按位"異或"運(yùn)算結(jié) 實(shí)例16:用P0顯示左移運(yùn)算結(jié) 實(shí)例18:用右移運(yùn)算流水點(diǎn)亮P1口8位 實(shí)例19:用if語句控制P0口8位LED的流水方 實(shí)例20:用swtich語句的控制P0口8位LED的點(diǎn)亮狀 實(shí)例21:用for語句控制蜂鳴器鳴笛次 實(shí)例22:用while語句控制 實(shí)例23:用do-while語句控制P0口8位LED流水點(diǎn) 實(shí)例24:用字符型數(shù)組控制P0口8位LED流水點(diǎn) 實(shí)例25:用P0口顯示字符串常 實(shí)例26:用P0口顯示指針運(yùn)算結(jié) 實(shí)例27:用指針數(shù)組控制P0口8位LED流水點(diǎn) 實(shí)例28:用數(shù)組的指針控制P0口8位LED流水點(diǎn) 實(shí)例29:用P0、P1口顯示整型函數(shù)返回 實(shí)例30:用有參函數(shù)控制P0口8位LED流水速 實(shí)例32:用指針作函數(shù)參數(shù)控制P0口8位LED流水點(diǎn) 實(shí)例33:用函數(shù)型指針控制P1口燈花 實(shí)例35:字符函數(shù)ctype.h應(yīng)用舉 實(shí)例36:內(nèi)部函數(shù)intrins.h應(yīng)用舉 實(shí)例37:標(biāo)準(zhǔn)函數(shù)stdlib.h應(yīng)用舉 實(shí)例38:字符串函數(shù)string.h應(yīng)用舉 *****************************************************************中斷、定時(shí)器********中斷、定時(shí)器*********************中斷、定時(shí)器*********中斷、定時(shí)器******** 實(shí)例42:用定時(shí)器T0查詢方式P2口8位控制LED閃 實(shí)例43:用定時(shí)器T1查詢方式控制單片機(jī)發(fā)出1KHz音 實(shí)例44:將計(jì)數(shù)器T0計(jì)數(shù)的結(jié)果送P1口8位LED顯 實(shí)例45:用定時(shí)器T0的中斷控制1位LED閃 實(shí)例46:用定時(shí)器T0的中斷實(shí)現(xiàn)長時(shí)間定 實(shí)例47:用定時(shí)器T1中斷控制兩個LED以不同周期閃 實(shí)例48:用計(jì)數(shù)器T1的中斷控制蜂鳴器發(fā)出1KHz音 實(shí)例49:用定時(shí)器T0的中斷實(shí)現(xiàn)"渴望"曲的.....................................實(shí)例50-1:輸出50個矩形脈 實(shí)例50-2:計(jì)數(shù)器T0統(tǒng)計(jì)外部脈沖 實(shí)例51-2:定時(shí)器T0的模式2測量正脈沖寬 實(shí)例52:用定時(shí)器T0控制輸出高低寬度不同的矩形 實(shí)例53:用外中斷0的中斷方式進(jìn)行..................................................實(shí)例54-1:輸出負(fù)脈寬為200微秒的.......................................................... 實(shí)例55:方式0控制流水燈循環(huán)點(diǎn) 實(shí)例58:單片機(jī)向PC發(fā)送數(shù) 實(shí)例59:單片機(jī)接收PC發(fā)出的數(shù) 實(shí)例60:用LED數(shù)碼顯示數(shù)字 實(shí)例61:用LED數(shù)碼顯示器循環(huán)顯示數(shù)字 實(shí)例63:用LED數(shù)碼顯示器偽靜態(tài)顯示數(shù)字 實(shí)例67:用LED數(shù)碼管顯示計(jì)數(shù)器T0的計(jì)數(shù) *********鍵盤控制**** 實(shí)例71:CPU控制的獨(dú)立式鍵盤掃描實(shí) 實(shí)例73:獨(dú)立式鍵盤控制的4級變速流水 *****液晶顯示LCD*********液晶顯示LCD*****液晶顯示LCD*******液晶顯示LCD*********液晶顯示LCD*****液晶顯示LCD**** 實(shí)例81:用LCD顯示字符 實(shí)例82:用LCD循環(huán)右移顯示 eto 實(shí)例83:用LCD顯示適時(shí)檢測結(jié) 些的使用 紅外 實(shí)例85:將數(shù)據(jù)"0x0f"寫入AT24C02再讀出送P1口顯 實(shí)例86:將按鍵次數(shù)寫入AT24C02,再讀出并用1602LCD顯 實(shí)例87:對I2C總線上掛接多個AT24C02的讀寫操 實(shí)例88:基于AT24C02的多機(jī)通信程 實(shí)例88:基于AT24C02的多機(jī)通信寫入程 實(shí)例90:DS18B20溫度檢測及其液晶顯 實(shí)例91:將數(shù)據(jù)"0xaa"寫入X5045再讀出送P1口顯 實(shí)例92:將流水燈控制碼寫入X5045并讀出送P1口顯 實(shí)例93:對SPI總線上掛接多個X5045的讀寫操 實(shí)例94:基于ADC0832的數(shù)字電壓 實(shí)例95:用DAC0832產(chǎn)生鋸齒波電 實(shí)例96:用P1口顯示紅外的按鍵 實(shí)例98:基于DS1302的日歷時(shí) 模擬霍爾脈 void{} void //兩個void{unsignedinti; //做20000次空循環(huán) }(C1個主函數(shù)voidmain(void){ { //P1=11111110BP1.0 //P1=11111111BP1.0 }} (C1個主函數(shù)void{ { //將P1口狀態(tài)送入P0口 //將P1口狀態(tài)送入P2口 //將P1口狀態(tài)送入P3口}} void{unsignedchari,j;;}voidmain(void){{
}} sfrx=0xb0; //P3口在器中的地址是b0H,通過sfr可定義8051內(nèi)核單片//8位特殊功能寄存器,對地址x的操作也就是對P1voiddelay(void){unsignedchari,j; }voidmain(void){{ }} voidint_delay(void)//延時(shí)一段較長的時(shí)間{unsignedintm; }//{unsignedchari,j; }voidmain(void){{{ //P1.0口的燈點(diǎn)亮 }{ //P1.4口的燈點(diǎn)亮 }}}voidmain(void){unsignedchar //P1=103=01100111B,P1.3、P1.4、P1.7 }voidmain(void){unsignedints; //s=64*71=4544,168位送P18位送P0256
(H)//816進(jìn)制數(shù)H1*16+H01924544 //8位送P1P1=17=11H=00010001B,P1.0和P1.4 //8位送P0P3=192=c0H=11000000B,P3.1,P3.6,P3.7} voidmain(void){ P0=((36%5)*10)/5;//求小數(shù) } voiddelay(void){unsignedinti;;}函數(shù)功能voidmain(void){unsignedchar { //i的值送P0}} voidmain(void){ } voidmain(void){ } voidmain(void){ } voidmain(void){ } sbitF=P1^4; //將F位定義為P1.4sbitX=P1^5; //將X位定義為P1.5sbit //將Y位定義為sbitZ=P1^7; //ZP1.7voidmain(void){{F=((~X)&Y)|Z;//將邏輯運(yùn)算結(jié)果賦給;}} voiddelay(void){unsignedintn;;}voidmain(void){{{ //每次循環(huán)P1的各二進(jìn)位右移1位,補(bǔ)0 }}} sbitS1=P1^4; //將S1位定義為P1.4sbit //S2位定義為voidmain(void){{ //如果按鍵S1 //P0口高四位LED //如果按鍵S2 }} sbitS1=P1^4; //將S1位定義為P1.4voiddelay(void){unsignedintn;;}voidmain(void){unsignedchar { //如果S1{ if(S1==0)//如果再次檢測到S1 } {case1 //第一個LEDcase2 case //第三個LEDcase //第四個LEDcase //第五個LEDcase //第六個LEDcase //第七個LEDcase //第八個LED }}} sbitsound=P3^7; //將sound位定義為P3.7voiddelay1600(void){unsignedcharn;;}voiddelay800(void){unsignedcharn;;}voidmain(void){unsignedinti;{{ //P3.7 //P3.7}{ //P3.7 //P3.7}}} voiddelay60ms(void){unsignedcharm,n;;}voidmain(void){unsignedchar { { //i送P0delay60ms();//延時(shí) }}} voiddelay60ms(void){unsignedcharm,n;;}voidmain(void){{ //第一個LED //第四個LED //第五個LED //第八個LED } voiddelay60ms(void){unsignedcharm,n;;}voidmain(void){unsignedcharunsignedcharcodeTab0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f定義無符{{}}} voiddelay150ms(void){unsignedcharm,n;;}voidmain(void){unsignedcharstr[]={"Now,Temperatureis:"}; unsignedchar{ while(str[i]!='\0只要沒有顯示到結(jié)束標(biāo)志{ //i個字符送到P0 }}}voidmain(void){unsignedchar*p1,*p2; unsignedchari,j; //使指針變量指向j //P0=00101000BP0.3、P0.5引腳LED }voiddelay150ms(void){unsignedcharm,n;;}voidmain(void){unsignedcharcodeTab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsignedchari; {{}}}voiddelay150ms(void){unsignedcharm,n;;}voidmain(void){unsignedcharunsignedcharTab[unsignedchar*p; {{ //*(p+i)的值等于a[i] }}}unsignedintsum(inta,intb){unsignedints;}voidmain(void){unsignedz; //取得z的低8位;}voiddelay(unsignedcharx){;}voidmain(void){unsignedchar charcodeTab[{{ }{ }}}voiddelay(void){unsignedcharm,n;;}函數(shù)功能:流水點(diǎn)亮P08voidled_flow(unsignedchara[8]){unsignedchari;{}}voidmain(void){ charcodeTab[}voiddelay(void){unsignedcharm,n;;}函數(shù)功能:流水點(diǎn)亮P08voidled_flow(unsignedchar*p形參為無符號字符型指針{{ //將i置為0,指向數(shù)組第一個元素{P0=*(p+i);//取的指針?biāo)缸兞浚〝?shù)組元素)的值,送P0 }}}voidmain(void){ charcodeTab[unsignedchar
} unsignedcharcodevoiddelay(void){unsignedcharm,n;;}voidled_flow(void){unsignedchari; {}}voidmain(void){ //將函數(shù)的地址賦給函數(shù)型指針p } unsignedcharcodestr1TemperatureistestedbyDS18B20";//C語言中,字符串unsignedcharcodestr2[]="Nowtemperatureis:"; unsignedcharcodestr3[]="TheSystermisdesignedbyZhangSan";unsignedcharcodestr4[]="Thedateis2008-9-30";unsignedchar*p{str1,str2,str3,str4}定義p[4]4個字符串的字符型指voiddelay(void){unsignedcharm,n;;}函數(shù)功能:流水點(diǎn)亮P08voidled_display(unsignedchar*x[]) {unsignedchar{ while(*(x[i]+j)!='\0i個字符串的第j{P0=*(x[i]+j);//取得該元素值送到P0 }}voidmain(void){{}} voidmain(void){{}} voiddelay(void){unsignedcharm,n;;voidmain(void){ {P3=_crol_(P3,1);//將P3的二進(jìn)制位循環(huán)左移1位后再賦給P3 }} voiddelay(void){unsignedcharm,n;;}voidmain(void){{{P3=rand()/160160倍后送P3}}#include<reg51.h>//51單片機(jī)寄存器定義的頭文件#include<string.h>//包含函數(shù)isalpha()的頭文件voidmain(void){unsignedcharstr1[]="Now,Thetemperatureisunsignedcharstr2[]="Now,Thetemperatureis36Centgrade:";unsignedchari;i=strcmp(str1,str2比較兩個字符串,并將結(jié)果存入iif(i==0)//str1=str2 } defineF(a,b //帶參數(shù)的宏定義,abvoid{unsignedchari,j,k; //ij+k參;voidmain(void){P3_0=0;//P3.0引腳置低電平,LED點(diǎn)亮P3_1=0;//P3.0引腳置低電平,LED點(diǎn)亮P3_2=0;//P3.0引腳置低電平,LED點(diǎn)亮P3_3=0;//P3.0引腳置低電平,LED點(diǎn)亮P3_4=1;//P3.4引腳置高電平,LED熄滅P3_5=1;//P3.5引腳置高電平,LED熄滅P3_6=1;//P3.7引腳置高電平,LED熄滅P3_7=1;//P3.7引腳置高電平,LED熄滅;} #defineMAX100 voidmain(void){#ifMAX>80 //P3口低四位LED點(diǎn)亮 //否則,P3口高四位LED } voidmain(void){ //定時(shí)器T0中斷允許 //使用定時(shí)器T0的模式1 //定時(shí)器T0的高8位賦初值 //定時(shí)器T0的高8位賦初值 //啟動定時(shí)器T0{ //定時(shí)器T08 //定時(shí)器T08}} sbit //sound位定義為P3.7voidmain(void){ //定時(shí)器T0中斷允許 //使用定時(shí)器T1的模式1 //定時(shí)器T1的高8位賦初值 //啟動定時(shí)器T1{ //將P3.7引腳輸出電平取反 //定時(shí)器T0的高8位賦初值 //定時(shí)器T0的高8位賦初}} sbit //S位定義為P3.4voidmain(void){ //定時(shí)器T0中斷允許 //定時(shí)器T0的高8位賦初值 //定時(shí)器T0的高8位賦初值 //啟動定時(shí)器T0{ { //按鍵S按下接地,電平為0P1=TL0TL01后送P1口顯示} }} sbit //D1位定義為P2.0voidmain(void){ //定時(shí)器T0 TH0=(65536-46083)/256;//定時(shí)器T0的高8位賦初值 //啟動定時(shí)器T0;}函數(shù)功能:定時(shí)器T0voidTime0(void)interrupt1using0//“interrupt”函數(shù)為中斷服務(wù)函數(shù){ //按位取反操作,將P2.0引腳輸出電平取反TH0=(65536-46083)/256定時(shí)器T08位重新賦初值TL0=(65536-46083)%256定時(shí)器T08} sbit //D1位定義為P2.0unsignedcharCountor;//設(shè)置全局變量,定時(shí)器T0中斷次voidmain(void){ //定時(shí)器T0 TH0=(65536-46083)/256;//定時(shí)器T0的高8位賦初值 //啟動定時(shí)器T0 //0;}函數(shù)功能:定時(shí)器T0voidTime0(void)interrupt1using0//“interrupt”函數(shù)為中斷服務(wù)函數(shù){ { //按位取反操作,將P2.0 }TH0=(65536-46083)/256定時(shí)器T08TL0=(65536-46083)%256定時(shí)器T08} sbit //D1位定義為P2.0sbit //D2位定義為P2.1unsignedcharCountor1;//設(shè)置全局變量,定時(shí)器T1中斷次unsignedcharCountor2;//設(shè)置全局變量,定時(shí)器T1中斷次voidmain(void){ //定時(shí)器T1 TH1=(65536-46083)/256;//定時(shí)器T1的高8位賦初值 //啟動定時(shí)器T1 //0 //0;}函數(shù)功能:定時(shí)器T1voidTime1(void)interrupt3using0//“interrupt”函數(shù)為中斷服務(wù)函數(shù){ //Countor1自加1 //Countor2自加 { //按位取反操作,將P2.0 } { //按位取反操作,將P2.1 }TH1=(65536-46083)/256定時(shí)器T18TL1=(65536-46083)%256定時(shí)器T18} sbit //sound位定義為P3.7voidmain(void){ //定時(shí)器T1 //定時(shí)器T1的高8位賦初值 //啟動定時(shí)器T1;}函數(shù)功能:定時(shí)器T1voidTime1(void)interrupt3using0//“interrupt”函數(shù)為中斷服務(wù)函數(shù){ //定時(shí)器T18 } sbitsound=P3^7; //將sound位定義為P3.7unsignedintC; #definel_dao262 #definel_re286 //將“l(fā)_re”宏定義為低音“2”的頻率286Hz#definel_mi311 //將“l(fā)_mi”宏定義為低音“3”的頻率311Hz#definel_fa349 //將“l(fā)_fa”宏定義為低音“4”的頻率349Hz#definel_sao392 #definel_la440 //將“l(fā)_a”宏定義為低音“6”的頻率440Hz#definel_xi494 //將“l(fā)_xi”宏定義為低音“7”的頻率494Hz#definedao523 #definere587 //將“re”宏定義為中音“2”的頻率587Hz#definemi659 //將“mi”宏定義為中音“3”的頻率659Hz#definefa698 //將“fa”宏定義為中音“4”的頻率698Hz#definesao784 //將“sao”宏定義為中音“5”的頻率784Hz#definela880 //將“l(fā)a”宏定義為中音“6”的頻率880Hz#definexi987 //將“xi”宏定義為中音“7”的頻率523H#defineh_dao1046 #defineh_re1174 //將“h_re”宏定義為高音“2”的頻率1174Hz#defineh_mi1318 //將“h_mi”宏定義為高音“3”的頻率1318Hz#defineh_fa1396 //將“h_fa”宏定義為高音“4”的頻率1396Hz#defineh_sao1567 //將“h_sao”宏定義為高音“5”的頻率1567Hz#defineh_la1760 //將“h_la”宏定義為高音“6”的頻率1760Hz#defineh_xi1975 //將“h_xi”宏定義為高音“7”的頻率1975Hzvoiddelay(){unsignedchari,j;;}voidmain(void){unsignedchar intcode 0xff0xffunsignedcharcodeJP[ //定時(shí)器T0 //使用定時(shí)器T01(13位計(jì)數(shù)器 {
{ //可證明這是13位計(jì)數(shù)器TH0高8位的賦 //可證明這是13位計(jì)數(shù)器TL0低5位的賦初 //啟動定時(shí)器T0 //延時(shí)1個節(jié)拍單位 }}}函數(shù)功能:定時(shí)器T0的中斷服務(wù)子程序,使P3.7voidTime0(void)interrupt1using1{ //P3.7 } sbit //u位定義為voiddelay30ms(void){unsignedcharm,n;;}voidmain(void){unsignedchar {};//} voidmain(void){ //不使用定時(shí)器T0 //計(jì)數(shù)器T08 //TL0計(jì)數(shù)結(jié)果送P1} sbit //ui位定義為P3.0(INT0)voidmain(void){ //TMOD=00001010B,使用定時(shí)器T0的模式2,GATE置1 //不使用定時(shí)器T0 //計(jì)數(shù)器T08 //TL0計(jì)數(shù)結(jié)果送P1{ //INT0為低電平,T0; while(ui==1)//在INT0高電平期間,等待,計(jì)時(shí); //將計(jì)時(shí)結(jié)果送P1}} sbitu=P3^0; //將u位定義為P3.0,從該引腳輸出矩形脈沖unsignedcharCountor; voiddelay30ms(void){unsignedcharm,n;;}voidmain(void){unsignedchar {}}函數(shù)功能:外中斷T0voidint0(void)interrupt0using0//0的中斷編號為0{} sbit //S位定義為voidmain(void){ }函數(shù)功能:外中斷T0voidint0(void)interrupt0using0//0的中斷編號為0{ //每產(chǎn)生一次中斷請求,P1} sbit //u位定義為voidmain(void){ //定時(shí)器T0的高8位賦初值 //定時(shí)器T0的高8位賦初值 //啟動定時(shí)器T0 ;}函數(shù)功能:定時(shí)器T0voidTime0(void)interrupt1using0//"interrupt"函數(shù)為中斷服務(wù)函{ //P1.4} sbit //u位定義為void{ //允許定時(shí)器T0中斷 //定時(shí)器T0賦初值0 //定時(shí)器T0賦初值0 //先關(guān)閉T0}voidint0(void)interrupt0using0//0的中斷編號為0{ //低電平時(shí),等待T0;P1=TL0將結(jié)果送P1 } //unsignedcharcodeTab[]={0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F};//流水燈控sbitvoiddelay(void){unsignedcharm,n;;}voidSend(unsignedchardat){ ; }voidmain(void){unsignedchar {{ }}} unsignedcharcodeTab[函數(shù)功能:向PCvoidSend(unsignedchardat){}voiddelay(void){unsignedcharm,n;;}voidmain(void){unsignedchar //SCON=01000000B,串口工作方式1 //PCON=00000000B,波特率9600TH1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值TL1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值 //啟動定時(shí)器T1{ { //發(fā)送數(shù)據(jù)i }}} unsignedcharReceive(void){unsignedchar //等待,直至接收完畢(RI=1) //為了接收下一幀數(shù)據(jù),需將RI清0 //將接收緩沖器中的數(shù)據(jù)存于datreturndat;}voidmain(void){TMOD=0x20;定時(shí)器T1SCON=0x50;//SCON=01010000B,串口工作方式1,允許接收(REN=1)PCON=0x00;//PCON=00000000B,波特率9600TH1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值TL1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值TR1=1;//啟動定時(shí)器T1 {P1=Receive();//將接收到的數(shù)據(jù)送P1}} sbitp=PSW^0;unsignedcharcodeTab[函數(shù)功能:向PCvoidSend(unsignedchardat){}voiddelay(void){unsignedcharm,n;;}voidmain(void){unsignedcharTMOD=0x20;//TMOD=00100000BT12SCON=0xc0;//SCON=11000000B,串口工作方式3,//SM20,不使用多機(jī)通信,TB80PCON=0x00;//PCON=00000000B,波特率9600TH1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值TL1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值 //啟動定時(shí)器T1{ { //發(fā)送數(shù)據(jù)i }}} sbitp=PSW^0;unsignedcharReceive(void){unsignedchar //為了接收下一幀數(shù)據(jù),需將RI清0 //將接收緩沖器中的數(shù)據(jù)存于dat{}}voidmain(void){TMOD=0x20;定時(shí)器T1SCON=0xd0;//SCON=11010000B,串口工作方式1,允許接收(REN=1)PCON=0x00;//PCON=00000000B,波特率9600TH1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值TL1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值 //啟動定時(shí)器T1 {P1=Receive();//將接收到的數(shù)據(jù)送P1}} unsignedcharcodeTab[函數(shù)功能:向PCvoidSend(unsignedchardat){}voiddelay(void){unsignedcharm,n;;}voidmain(void){unsignedchar //SCON=01000000B,串口工作方式1 //PCON=00000000B,波特率9600TH1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值TL1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值 //啟動定時(shí)器T1{ { //發(fā)送數(shù)據(jù)i }}} unsignedcharReceive(void){unsignedchar //等待,直至接收完畢(RI=1) //為了接收下一幀數(shù)據(jù),需將RI清0 //將接收緩沖器中的數(shù)據(jù)存于datreturndat;}voidmain(void){TMOD=0x20;定時(shí)器T1SCON=0x50;//SCON=01010000B,串口工作方式1,允許接收(REN=1)PCON=0x00;//PCON=00000000B,波特率9600TH1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值TL1=0xfd;//根據(jù)規(guī)定給定時(shí)器T1賦初值TR1=1;//啟動定時(shí)器T1 {P1=Receive();//將接收到的數(shù)據(jù)送P1}} void{ } voiddelay(void){unsignedchari,j;;}voidmain(void){unsignedcharunsignedcharcode //P2.0引腳輸出低電平,數(shù)碼顯示器DS0 {{ }}} void {unsignedchari,j;;}void{ { //P2.0引腳輸出低電平,DS0 P2=0xfd //P2.1引腳輸出低電平,DS1 //P2.2引腳輸出低電平,DS2 //P2.3引腳輸出低電平,DS3 }} void {unsignedchari;;}void{ { //P2.0引腳輸出低電平,DS0 P2=0xfd //P2.1引腳輸出低電平,DS1 //P2.2引腳輸出低電平,DS2 //P2.3引腳輸出低電平,DS3 }} unsignedchari; unsignedint unsignedcharcodevoid{unsignedinti;;}voiddisplay(unsignedint{ //P2=11111110B,P2.0引腳輸出低電平,數(shù)碼顯示器DS0接 P2=0xfd; //P2=11111101B,P2.1引腳輸出低電平,數(shù)碼顯示器DS1接通 //P2=11110111B,P2.3引腳輸出低電平,數(shù)碼顯示器DS3接 }void { 1.085微秒=50000微秒=50 //定時(shí)器T0 { }}函數(shù)功能:定時(shí)器T0voidTime0(void)interrupt1using{ { 獲得一個隨機(jī)4位數(shù),模擬檢測結(jié)果 } //重新給計(jì)數(shù)器T0 } unsignedcharcodeunsignedcharint_time; unsignedcharsecond; void{unsignedchari;;}voidDisplaySecond(unsignedchar{ //P2.6DS6 //P2.7DS7 }void { 秒//=50000微秒=50 //定時(shí)器T0 { }}voidinterserve(void)interrupt1using1{ int_time++; //每來一次中斷,中斷次數(shù)int_time自加1 //夠20次中斷,即1秒鐘進(jìn)行一次檢測結(jié)果采樣{ } //重新給計(jì)數(shù)器T0 } unsignedcharTab[ unsignedcharint_time;//中斷次數(shù)計(jì)數(shù)變量unsignedcharsecond; unsignedcharminute; unsignedcharhour; void {unsignedcharj;;}voidDisplaySecond(unsignedchars){ //P2.6DS6 //P2.7DS7 }voidDisplayMinute(unsignedcharm){ P2.3DS3 P2.4DS4 //P2.5DS5 }voidDisplayHour(unsignedcharh){ //P2.0DS0 //P2.1DS1 //P2.2DS2 }void{ //使用定時(shí)器 //允許T0中斷 { }}函數(shù)功能:定時(shí)器T0voidinterserve(void)interrupt1using1 //usingTime0{{ }{ //分鐘計(jì)數(shù)變量加1}{ }{ } } sbitS=P3^2 //S位定義為P3.2unsignedcharTab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; unsignedcharvoiddelay(void){unsignedcharj;;}voidDisplay(unsignedcharx){ //P2.6引腳輸出低電平,DS6 //P2.7引腳輸出低電平,DS7 }voidmain(void){ }函數(shù)功能:外中斷T0voidint0(void)interrupt0using0//0的中斷編號為0{} voidmain(void){ //將數(shù)字5的段碼送P0口 //將數(shù)字9的段碼送P1口 ;}{{ sbitS1=P1^4; //將S1位定義為P1.4引腳sbitLED0=P3^0; //將LED0位定義為P3.0引腳voidmain(void) { //P3.0{ }} sbit //S1位定義為P1.4sbit //LED0位定義為P3.0voiddelay(void){unsignedchari,j;;}voidmain(void) { //P3.0{ delay();//延時(shí)一段時(shí)間再次檢測 //按鍵S1的確被按下 }}}#include<reg51.h>//51sbitS1=P1^4; //將S1位定義為P1.4引腳sbitS2=P1^5; //將S2位定義為P1.5引腳sbitS3=P1^6; //將S3位定義為P1.6引腳sbitS4=P1^7; //將S4位定義為P1.7引腳unsignedcharkeyval;//按鍵值voidled_delay(void){unsignedchari,j;;}voiddelay30ms(void){unsignedchari,j;;}函數(shù)功能:正向流水點(diǎn)亮voidforward(void)}函數(shù)功能:反向流水點(diǎn)亮voidbackward(void){ }函數(shù)功能:關(guān)閉所有voidstop(void){}函數(shù)功能:閃爍點(diǎn)亮voidflash(void){}voidkey_scan(void){ { //按鍵S1被按下 //按鍵S2 //按鍵S3 //按鍵S4}}voidmain(void) { {{casecase3:stop();case4:flash();}}}#include<reg51.h>//51sbitS1=P1^4; //將S1位定義為P1.4引腳sbitS2=P1^5; //將S2位定義為P1.5引腳sbitS3=P1^6; //將S3位定義為P1.6引腳sbitS4=P1^7; //將S4位定義為P1.7引腳unsignedcharkeyval;//按鍵值voidled_delay(void){unsignedchari,j;;}voiddelay20ms(void){unsignedchari,j;;}函數(shù)功能:正向流水點(diǎn)亮voidforward(void){}函數(shù)功能:反向流水點(diǎn)亮voidbackward(void){ }函數(shù)功能:關(guān)閉所有voidstop(void){ //8個}函數(shù)功能:閃爍點(diǎn)亮voidflash(void){ }voidmain(void) { //定時(shí)器T0 {{casecase3:stop();case4:flash();}}}函數(shù)功能:定時(shí)器T0voidTime0_serve(void)interrupt1using1{ { //按鍵S1被按下 //按鍵S2 //按鍵S3 //按鍵S4}} unsignedchar sbit //S1為sbit //位定義S2為sbit //位定義S3為sbit //位定義S4為voiddelay20ms(void) {unsignedchari,j;;}voiddelay(unsignedcharx){unsignedchark;}voidmain(void){ //定時(shí)器T0 //定時(shí)器T0 //定時(shí)器T0賦初值,2001 { }}函數(shù)功能:定時(shí)器T0的中斷服務(wù)子程序,voidintersev(void)interrupt1using1{ { { //如果是按鍵S1 //如果是按鍵S2按下 //如果是按鍵S3按下 //如果是按鍵S4按下 }} } unsignedchar sbit //S1為voiddelay(void) {unsignedchari,j;;}voidmain(void){ //定時(shí)器T0 //定時(shí)器T0 //定時(shí)器T02001{{case0:}}}函數(shù)功能:定時(shí)器T0voidintersev(void)interrupt1using1{ //如果是按鍵S1{ //延時(shí)20ms,軟件消抖 //如果是按鍵S1按} } unsignedcharcodeTab[unsignedcharint_time;//中斷次數(shù)計(jì)數(shù)變量unsignedcharsecond; unsignedcharminute; unsignedcharhour; sbit //S1位定義為sbit //S2位定義為sbit //S3位定義為sbit //S4位定義為voiddelay(void){unsignedcharj;;}voiddelay60ms(void){unsignedchari,j;;}voidDisplaySecond(unsignedchars){ //P2.6DS6 //P2.7DS7 }voidDisplayMinute(unsignedcharm){ P2.3DS3 P2.4DS4 //P2.5DS5 }voidDisplayHour(unsignedcharh){ //P2.0DS0 //P2.1DS1 //P2.2DS2 }voidkey_scan(void){ //P14 { { //如果是S1 //如果是S2 //如果是S4{ }}}}void{ //使用定時(shí)器 //允許T0中斷 //啟動定時(shí)器T0 {DisplaySecond(second);//調(diào)用秒顯示子程序DisplayMinute(minute);//調(diào)用分鐘顯示子程序 }}函數(shù)功能:定時(shí)器T0voidinterserve(void)interrupt1using1 //usingTime0{ //中斷次數(shù)加1 { } { } { //小時(shí)計(jì)數(shù)變量加1} { } //定時(shí)器T0高四位賦值 //定時(shí)器T0低四位賦值 } sbit //S1位定義為P1.4sbit //S2位定義為P1.5sbit //S3位定義為P1.6unsignedchar unsignedchar 函數(shù)功能:軟件消抖延時(shí)(voiddelay(void){unsignedchari,j;;}voidmotor_delay(void)unsignedinti;;}voidforward(){ }voidbackward(){ }voidstop(void){ }voidmain(void) //使用定時(shí)器T0 //定時(shí)器T0 //定時(shí)器T0200次(217微秒)發(fā) //定時(shí)器T0 { //根據(jù)按鍵值keyval{case //按鍵S1按下,case //按鍵S2case //按鍵S3}}}函數(shù)功能:定時(shí)器T0voidTime0_serve(void)interrupt1using1{ { { //按鍵S1 //按鍵S2 //按鍵S3}} //定時(shí)器T0的高8位賦初值 //定時(shí)器T0的低8位賦初值 //啟動定時(shí)器T0}#include<reg51.h>//51sbitP14=P1^4; //將P14位定義為P1.4引腳sbitP15=P1^5; //將P15位定義為P1.5引腳sbitP16=P1^6; //將P16位定義為P1.6引腳sbit //將P17位定義為P1.7引unsignedcharcodeTab[unsignedchar voidled_delay(void){unsignedcharj;;}voiddisplay(unsignedchark){ //點(diǎn)亮數(shù)碼管 //點(diǎn)亮數(shù)碼管 }voiddelay20ms(void){unsignedchari,j;;}voidmain(void){ //定時(shí)器T0 //使用定時(shí)器T0的模式1TH0=(65536-500)/256;//定時(shí)器T0的高8位賦初值TL0=(65536-500)%256;//定時(shí)器T0的高8位賦初值 //啟動定時(shí)器T0 { }}voidtime0_interserve(void)interrupt1using1 //定時(shí)器T01,{ {
//可判斷是S1 //如果檢測到接P1.5 //可判斷是S2 //如果檢測到接P1.6 //可判斷是S3
//如果檢測到接P1.7 //可判斷是S4 //如果檢測到接P1.4//可判斷是S5//如果檢測到接P1.5//可判斷是S6//如果檢測到接P1.6//可判斷是S7//如果檢測到接P1.7//可判斷是S8
//如果檢測到接P1.4 //如果檢測到接P1.6 //可判斷是S11 //如果檢測到接P1.7 //可判斷是S12 //如果檢測到接P1.4 //可判斷是S13 //如果檢測到接P1.6 //可判斷是S15 //如果檢測到接P1.7 //可判斷是S16} //定時(shí)器T08 } sbit //sound位定義為voiddelay_sound(void){unsignedchari;;}voiddelay20ms(void){unsignedchari,j;;}voidmain(void){ //使用定時(shí)器T0的模式1TH0=(65536-500)/256;//定時(shí)器T0的高8位賦初值TL0=(65536-500)%256;//定時(shí)器T0的高8位賦初值 //啟動定時(shí)器T0 ;}voidtime0_interserve(void)interrupt1using1 //定時(shí)器T01,{unsignedchar { //P3.7{}} //定時(shí)器T08 //定時(shí)器T08} sbitP14=P1^4; //將P14位定義為P1.4引腳sbitP15=P1^5; //將P15位定義為P1.5引腳sbitP16=P1^6; //將P16位定義為P1.6引腳sbitP17=P1^7; //將P17位定義為P1.7引腳unsignedcharkeyval;//定義變量按鍵值sbit //sound位定義為unsignedint unsignedint #definel_dao #definel_re286 //將“l(fā)_re”宏定義為低音“2”的頻率286Hz#definel_mi311 //將“l(fā)_mi”宏定義為低音“3”的頻率311Hz#definel_fa349 //將“l(fā)_fa”宏定義為低音“4”的頻率349Hz#definel_sao392 #definel_la440 //將“l(fā)_a”宏定義為低音“6”的頻率440Hz#definel_xi494 //將“l(fā)_xi”宏定義為低音“7”的頻率494Hz#definedao523 #definere587 //將“re”宏定義為中音“2”的頻率587Hz#definemi659 //將“mi”宏定義為中音“3”的頻率659Hz#definefa698 //將“fa”宏定義為中音“4”的頻率698Hz#definesao784 //將“sao”宏定義為中音“5”的頻率784Hz#definela880 //將“l(fā)a”宏定義為中音“6”的頻率880Hz#definexi987 //將“xi”宏定義為中音“7”的頻率53#defineh_dao1046 #defineh_re1174 //將“h_re”宏定義為高音“2”的頻率1174Hz#defineh_mi1318 //將“h_mi”宏定義為高音“3”的頻率1318Hz#defineh_fa1396 //將“h_fa”宏定義為高音“4”的頻率1396Hz#defineh_sao1567 //將“h_sao”宏定義為高音“5”的頻率1567Hz#defineh_la1760 //將“h_la”宏定義為高音“6”的頻率1760Hz#defineh_xi1975 //將“h_xi”宏定義為高音“7”的頻率1975Hzvoiddelay20ms(void){unsignedchari,j;;}voiddelay(){unsignedchari,j;;}voidOutput_Sound(void){ //可證明這是13位計(jì)數(shù)器TH0高8位的賦初值方法 //可證明這是13位計(jì)數(shù)器TL0低5位的賦初值方法 //開定時(shí)T0 }voidmain(void){ //定時(shí)器T0 //定時(shí)器T1 //定時(shí)器T1啟動,開始鍵盤掃描 //分別使用定時(shí)器T1的模式1,T0的模式0 //定時(shí)器T1的高8位賦初值 //定時(shí)器T1的高8位賦初值 {{1的頻率賦給7的頻率賦給
case case 5的頻率賦給5的頻率賦給4的頻率賦給3的頻率賦給2的頻率賦給2的頻率賦給
case case case case case case case case 1的頻率賦給
7的頻率賦給6的頻率賦給6的頻率賦給
case case case 5的頻率賦給4的頻率賦給3的頻率賦給}
case case case }}函數(shù)功能:定時(shí)器T0的中斷服務(wù)子程序,使P3.7引腳輸出音頻voidTime0_serve(void)interrupt1using{ 法 //P3.7引腳取反,輸出音頻}函數(shù)功能:定時(shí)器T1voidtime1_serve(void)interrupt3using2 第2組寄存器{ { {//可判斷是S1//如果檢測到接P1.5//可判斷是S2//如果檢測到接P1.6//可判斷是S3//如果檢測到接P1.7//可判斷是S4//如果檢測到接P1.4//可判斷是S5//如果檢測到接P1.5//可判斷是S6//如果檢測到接P1.6//可判斷是S7//如果檢測到接P1.7//可判斷是S8//如果檢測到接P1.5//如果檢測到接P1.6//可判斷是S11//如果檢測到接P1.7//可判斷是S12
//如果檢測到接P1.4引腳的列線為低
//如果檢測到接P1.4引腳的列線為低//可判斷是S13//如果檢測到接P1.5//可判斷是S15//如果檢測到接P1.7//可判斷是S16} //定時(shí)器T18 } sbitP14=P1^4; //將P14位定義為P1.4引腳sbitP15=P1^5; //將P15位定義為P1.5引腳sbitP16=P1^6; //將P16位定義為P1.6引腳sbitP17=P1^7; //將P17位定義為P1.7引腳sbitsound=P3^7; //將sound位定義為P3.7unsignedcharkeyval; voiddelay(void){unsignedchari;;}voiddelay20ms(void){unsignedchari,j;;}voidmain(void){unsignedcharD[]={0,8,0,8,7,4,11}; //設(shè)定 //定時(shí)器T0 //使用定時(shí)器T0的模式1 //定時(shí)器T0的高8位賦初值 //啟動定時(shí)器T0 //第一位輸入不正確,等; //第二位輸入不正確,等; //第三位輸入不正確,等; //第四位輸入不正確,等; //第五位輸入不正確,等; //第六位輸入不正確,等; ; //P3.0引腳輸出低電平,點(diǎn)亮}voidtime0_interserve(void)interrupt1using1 //定時(shí)器T01,{unsignedchar {
//如果檢測到接P1.5 //可判斷是S2 //如果檢測到接P1.6 //可判斷是S3 //可判斷是S4 //如果檢測到接P1.4 //可判斷是S5 //如果檢測到接P1.5 //可判斷是S6 //如果檢測到接P1.6 //可判斷是S7 //如果檢測到接P1.7 //可判斷是S8 //如果檢測到接P1.4 //S10 //如果檢測到接P1.6 //可判斷是S11 //如果檢測到接P1.7 //可判斷是S12
//如果檢測到接P1.4引腳的列線為低//可判斷是S13//可判斷是S13//如果檢測到接P1.5//如果檢測到接P1.6//可判斷是S15//如果檢測到接P1.7//可判斷是S16{}} //定時(shí)器T08 }*****液晶顯示LCD********************液晶顯示 sbitRS=P2^0; //寄存器選擇位,將RS位定義為P2.0引腳sbitRW=P2^1; //讀寫選擇位,將RW位定義為P2.1引腳sbitE=P2^2; //使能信號位,將E位定義為P2.2引腳sbitBF=P0^7; //忙碌標(biāo)志位,,將BF位定義為P0.7引腳voiddelay1ms(){unsignedchari,j;;}voiddelay(unsignedcharn){unsignedchari;}unsignedcharBusyTest(void){bit //根據(jù)規(guī)定,RS為低電平,RW //將忙碌標(biāo)志電平賦給result}voidWriteInstruction(unsignedchardictate){ //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫 //E01
//將數(shù)據(jù)送入P0 //E //E}參數(shù):xvoidWriteAddress(unsignedcharx){}函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊voidWriteData(unsignedchary){ //RS為高電平,RW //E01發(fā)生正跳變,所以應(yīng)先置 //將數(shù)據(jù)送入P0 //E置高電平 }voidLcdInitiate(void){ //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù) }void { //調(diào)用LCD初始化函數(shù) } eto sbitRS=P2^0; //寄存器選擇位,將RS位定義為P2.0引腳sbitRW=P2^1; //讀寫選擇位,將RW位定義為P2.1引腳sbitE=P2^2; //使能信號位,將E位定義為P2.2引腳sbitBF=P0^7; //忙碌標(biāo)志位,,將BF位定義為P0.7引腳unsignedcharcodestring[]={" etoChina"};voiddelay1ms(){unsignedchari,j;;}voiddelay(unsignedcharn){unsignedchari;}unsignedcharBusyTest(void){bit //根據(jù)規(guī)定,RS為低電平,RW //將忙碌標(biāo)志電平賦給result}voidWriteInstruction(unsignedchardictate){ //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫 //E01
//將數(shù)據(jù)送入P0 //E }voidWriteAddress(unsignedcharx){}函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊voidWriteData(unsignedchary){ //RS為高電平,RW //E01發(fā)生正跳變,所以應(yīng)先置 //將數(shù)據(jù)送入P0 //E置高電平 }voidLcdInitiate(void){ //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù) }void {unsignedchar { //設(shè)置顯示位置為第一行的第5個字i=while(string[i]!= //}}} sbit //寄存器選擇位,將RS位定義為P2.0sbitRW=P2^1; //讀寫選擇位,將RW位定義為P2.1引腳sbitE=P2^2; //使能信號位,將E位定義為P2.2引腳sbitBF=P0^7; //忙碌標(biāo)志位,,將BF位定義為P0.7引腳unsignedcharcodedigit[]={" "};//定義字符數(shù)組顯示數(shù)字unsignedcharcodestringTestResult定義字符數(shù)組顯示提示信息voiddelay1ms(){unsignedchari,j;;}voiddelay(unsignedcharn){unsignedchari;}unsignedcharBusyTest(void){bit //根據(jù)規(guī)定,RS為低電平,RW //將忙碌標(biāo)志電平賦給result //E}voidWriteInstruction(unsignedchardictate){ //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫 //E01
//將數(shù)據(jù)送入P0 //E //E}voidWriteAddress(unsignedcharx){}函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊參數(shù):y(為字符常量)voidWriteData(unsignedchary){ //RS為高電平,RW //E01發(fā)生正跳變,所以應(yīng)先置 //將數(shù)據(jù)送入P0 //E置高電平 }voidLcdInitiate(void){ //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù) ,給硬件一點(diǎn)反應(yīng)時(shí) }voidmain(void){unsignedchar unsignedint //定義變量,檢測結(jié)unsignedcharD1,D2,D3,D4,D5; //從第1行第3列開始顯示i while(string[i]!={ } { //從第2行第6列開始顯示 //將小數(shù)點(diǎn)的字符常量寫入LCD //延時(shí)1s(每1s一次數(shù)據(jù)) //延時(shí)250ms}} sbitRS=P2^0; //寄存器選擇位,將RS位定義為P2.0引腳sbitRW=P2^1; //讀寫選擇位,將RW位定義為P2.1引腳sbitE=P2^2; //使能信號位,將E位定義為P2.2引腳sbitBF=P0^7; //忙碌標(biāo)志位,,將BF位定義為P0.7引腳unsignedcharcodedigit unsignedcharcodestring[]={"BeiJingTime"};//定義字符數(shù)組顯示提示信息unsignedcharcount; unsignedchar //定義變量秒、分鐘和小voiddelay1ms(){unsignedchari,j;;}voiddelay(unsignedcharn){unsignedchari;}unsignedcharBusyTest(void){bit //根據(jù)規(guī)定,RS為低電平,RW //將忙碌標(biāo)志電平賦給result //E}voidWriteInstruction(unsignedchardictate){ //根據(jù)規(guī)定,RS和R/W同時(shí)為低電平時(shí),可以寫 //E01發(fā)生正跳變,所以應(yīng)先置 //將數(shù)據(jù)送入P0 //E }voidWriteAddress(unsignedcharx){}函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn)ASCII碼)寫入液晶模塊voidWriteData(unsignedchary){ //RS為高電平,RW //E01發(fā)生正跳變,所以應(yīng)先置 //將數(shù)據(jù)送入P0 //E置高電平 }voidLcdInitiate(void){ //顯示模式設(shè)置:16×2顯示,5×7點(diǎn)陣,8位數(shù)據(jù) ,給硬件一點(diǎn)反應(yīng)時(shí) }void{unsignedchar //寫顯示地址,將十位數(shù)字顯示在第2行第5列 //將十位數(shù)字的字符常量寫入LCD //將個位數(shù)字的字符常量寫入LCD}void{unsignedchar //寫顯示地址,將十位數(shù)字顯示在第2行第8列 //將十位數(shù)字的字符常量寫入LCD //將個位數(shù)字的字符常量寫入LCD}void{unsignedchar //寫顯示地址,將十位數(shù)字顯示在第2行第11列 //將十位數(shù)字的字符常量寫入LCD //將個位數(shù)字的字符常量寫入LCD}*mainvoid{unsignedchar //使用定時(shí)器T0的模式1 //定時(shí)器T0的高8位設(shè)置初值 //定時(shí)器T0 {WriteData(string[i]);//將第i個字符數(shù)組元素寫入LCD } //寫地址,將第二個分號顯示在第2行第7列 //將分號的字符常量寫入LCD //寫地址,將第二個分號顯示在第2行第10列 //將分號的字符常量寫入LCD { }}函數(shù)功能:定時(shí)器T0voidTime0(voidinterrupt1using1定時(shí)器T011組工{ //如果中斷次數(shù)計(jì)滿20次{ } { } { } { } //定時(shí)器T08 //定時(shí)器T08} #include #include #defineOP_READ //器件地址以及操作,0xa1即為10100001B#defineOP_WRITE0xa0 //器件地址以及寫入操作,0xa1即為10100000BsbitSDA=P3^4; //將串行數(shù)據(jù)總線SDA位定義在為P3.4引腳sbit //將串行時(shí)鐘總線SDA位定義在為P3.3voiddelay1ms(){unsignedchari,j;;}voiddelaynms(unsignedcharn){unsignedchari;}voidstart()//{SDA //SDASCL //開始數(shù)據(jù)傳送時(shí),要求SCL SDA //SDA SCL=0; //SCL為低電平時(shí),SDA上數(shù)據(jù)才允許變化(即允許以后的數(shù)據(jù)傳}voidstop()//{SDA //SDA初始化為低電平“0”SCL //結(jié)束數(shù)據(jù)傳送時(shí),要求SCL SDA //SDA }函數(shù)功能:從AT24Cxx數(shù)據(jù)unsignedcharReadData()//從AT24Cxx移入數(shù)據(jù)到{unsignedcharunsignedchar //從AT24Cxx中讀出的數(shù)for(i=0;i<8;{SCL //SCL //x //SDA上的數(shù)據(jù)通過按位“或“運(yùn)算存入中SCL //SCL} }函數(shù)功能:向AT24Cxx的當(dāng)前地址寫入數(shù)據(jù)參數(shù):y(待寫入的數(shù)據(jù))bitWriteCurrent(un
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度紅木家具定制與古建筑修復(fù)合同
- 長春2025年度貨運(yùn)合同糾紛律師調(diào)解服務(wù)協(xié)議
- 2025年度租賃合同解除函及房屋租賃市場調(diào)研報(bào)告
- 產(chǎn)品入庫管理表格(零售業(yè)特定)
- 汽車維修技術(shù)故障診斷與排除試卷及答案解析
- 租賃平臺房東與租客權(quán)益保障協(xié)議
- 農(nóng)村環(huán)境保護(hù)與生態(tài)恢復(fù)項(xiàng)目合作合同書
- 鄉(xiāng)村新型產(chǎn)業(yè)開發(fā)項(xiàng)目協(xié)議
- 史記中的人物故事深度解讀
- 鋪貨擔(dān)保合同合作協(xié)議
- 2025年黑龍江生態(tài)工程職業(yè)學(xué)院單招職業(yè)傾向性測試題庫及答案一套
- 2025年哈爾濱幼兒師范高等??茖W(xué)校單招職業(yè)技能測試題庫完整
- 做最勇敢的自己
- 小學(xué)數(shù)學(xué)中巧用信息技術(shù)創(chuàng)造情境教學(xué)
- 安徽省歷年中考語文現(xiàn)代文閱讀之非連續(xù)性文本閱讀6篇(截至2024年)
- GB/T 23694-2024風(fēng)險(xiǎn)管理術(shù)語
- 公司員工生日會活動復(fù)盤
- 2025年北京青年政治學(xué)院高職單招高職單招英語2016-2024年參考題庫含答案解析
- 永輝超市存貨管理問題及優(yōu)化建議9700字
- 大模型落地應(yīng)用實(shí)踐方案
- 2024糖尿病酮癥酸中毒診斷和治療課件
評論
0/150
提交評論