版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、單片機原理及應(yīng)用單片機原理及應(yīng)用 實驗指導(dǎo)書實驗指導(dǎo)書 計算機科學(xué)與技術(shù)系 2012 年 8 月 說明 單片機原理及應(yīng)用課程是計算機專業(yè)的一門重要專業(yè)課程,也是一門 理論性、實踐性和實用性都很強的課程。本課程的主要教學(xué)任務(wù)是通過理論教 學(xué)與實驗環(huán)節(jié),使學(xué)生掌握單片機系統(tǒng)的基礎(chǔ)知識,認(rèn)識單片機系統(tǒng)的結(jié)構(gòu), 掌握單片機系統(tǒng)的設(shè)計思路和流程,能夠設(shè)計簡單的單片機系統(tǒng)。 本實驗指導(dǎo)是為單片機原理及應(yīng)用方面的課程需要而編寫的,完成本實驗 指導(dǎo)中的實驗,可使學(xué)生基本掌握 MCS5l 單片機的結(jié)構(gòu)原理、接口技術(shù)、程序 設(shè)計技巧。書中詳細敘述了各實驗的目的、內(nèi)容,列出了接線圖、程序結(jié)構(gòu)框圖 和清單。免除了主講
2、教師和實驗輔導(dǎo)老師為設(shè)計、準(zhǔn)備調(diào)試實驗線路和實驗程 序所需的工作量,節(jié)約了寶貴的時間。 一、采用聯(lián)機調(diào)試實驗程序時,需雙擊桌面上“DICE-51 仿真開發(fā)系統(tǒng)” 銀環(huán)圖標(biāo),打開仿真調(diào)試軟件,設(shè)置仿真模式。具體步驟如下:點擊菜單欄的 “設(shè)置(S)”項,在彈出下拉菜單中選擇“仿真模式(M).”,此時此時將彈出 “仿真模式”對話框,在此進行相關(guān)設(shè)置CPU:8031/8032;RAM:用 戶 RAM;ROM:系統(tǒng) ROM。 二、實驗接線圖上的粗實線表示用戶在實驗時要用導(dǎo)線連接起來。 三、所有實驗都是相互獨立的,次序上也沒有固定的先后關(guān)系,在使用本書 進行教學(xué)時,教師可根據(jù)學(xué)院的教學(xué)要求選擇相應(yīng)實驗。
3、由于編者水平有限,本書中必然存在著不少缺點,在此懇請大家給予批評 和指正,我們將盡力糾正。 在此特對關(guān)心支持編寫本書的院系領(lǐng)導(dǎo)表示感謝。 目錄目錄 第一部分第一部分 單片機仿真實驗單片機仿真實驗.1 實驗一:流水燈實驗.1 實驗二:中斷實驗.4 實驗三:定時器中斷實驗.6 實驗四:串行口實驗.9 實驗五:矩陣式鍵盤輸入識別.13 實驗六:LCD 循環(huán)顯示設(shè)計.19 實驗七:簡易計算器設(shè)計.27 第二部分第二部分 單片機硬件實驗單片機硬件實驗.26 第一章第一章 試驗箱系統(tǒng)概述試驗箱系統(tǒng)概述.26 一、系統(tǒng)地址分配.26 二、系統(tǒng)接口定義.27 三、通用電路簡介.28 第二章第二章 實驗指導(dǎo)實驗
4、指導(dǎo).32 實驗一 P1 口亮燈和 P1 口加法器實驗.32 實驗二 簡單 I/O 口擴展(選作).37 實驗三 8255 控制交通燈.39 實驗四 128*64LCD 液晶顯示.67 第一部分第一部分 單片機仿真實驗單片機仿真實驗 實驗一:流水燈實驗流水燈實驗 一、一、實驗?zāi)康模簩嶒災(zāi)康模?通過對 P3 口地址的操作控制 8 位 LED 流水點亮,從而認(rèn)識單片機的存儲器。 二、二、實驗原理圖實驗原理圖 實驗參考電路圖如下: 三、三、參考實驗程序參考實驗程序 /流水燈實驗 #include /包含單片機寄存器的頭文件 sfr x=0 xb0; /P3 口在存儲器中的地址是 b0H, 通過 sf
5、r 可定義 8051 內(nèi)核 單片機 /的所有內(nèi)部 8 位特殊功能寄存器,對地址 x 的操作也就是對 P1 口 的操作 /* 函數(shù)功能:延時一段時間 */ void delay(void) unsigned char i,j; for(i=0;i250;i+) for(j=0;j250;j+) ; /利用循環(huán)等待若干機器周期,從而延時一段時間 /* 函數(shù)功能:主函數(shù) */ void main(void) while(1) x=0 xfe; /第一個燈亮 delay(); /調(diào)用延時函數(shù) x=0 xfd; /第二個燈亮 delay(); /調(diào)用延時函數(shù) x=0 xfb; /第三個燈亮 delay(
6、); /調(diào)用延時函數(shù) x=0 xf7; /第四個燈亮 delay(); /調(diào)用延時函數(shù) x=0 xef; /第五個燈亮 delay(); /調(diào)用延時函數(shù) x=0 xdf; /第六個燈亮 delay(); /調(diào)用延時函數(shù) x=0 xbf; /第七個燈亮 delay(); /調(diào)用延時函數(shù) x=0 x7f; /第八個燈亮 delay(); /調(diào)用延時函數(shù) 四、四、實驗思考題:實驗思考題: 1.修改程序使 LED 燈為 18 燈亮27 燈亮36 燈亮45 燈亮,再將 LED 燈亮的順序倒過來既:45 燈亮36 燈亮27 燈亮18 燈亮,連續(xù)運行。 2.設(shè)計一個八位二進制加法計數(shù)器,要求用八個流水燈顯示
7、加法器的結(jié)果,燈 亮表示 1,燈滅表示 0,實現(xiàn)從 0000 00001111 1111 的加法過程。 調(diào)試后的程序代碼:調(diào)試后的程序代碼: 實驗二:中斷實驗中斷實驗 一、一、實驗?zāi)康模簩嶒災(zāi)康模?通過對 P3.2、P3.3 引腳的電平控制,實現(xiàn)外部中斷處理,從而控制輸出口 P1 的輸出效果變化。 二、二、實驗原理圖實驗原理圖 實驗參考電路圖如下: 三、三、參考實驗程序參考實驗程序 /用外中斷 0 的中斷方式進行數(shù)據(jù)采集和處理 #include #include void init(); void delay(unsigned int); void main() init(); while(1
8、) P1 = 0 xff; delay(100); P1 = 0 x00; delay(100); void init() EA = 1; IT0 = 0; IT1 = 0; EX0 = 1; EX1 = 1; void delay(unsigned int n) unsigned int i,j; for(i=0;in;i+) for(j=0;j110;j+); void aa() interrupt 0 unsigned char tmp = 0 xfe; unsigned int i=0; P1 = tmp; delay(100); i = 7; while(i-) tmp = _cro
9、l_(tmp,1); P1 = tmp; delay(100); /delay(500); i=7; while(i-) tmp = _cror_(tmp,1); P1 = tmp; delay(100); / delay(500); void bb() interrupt 2 P1 = 0 xf0; delay(500); P1 = 0 x0f; delay(500); 四、四、實驗思考題:實驗思考題: 根據(jù)指導(dǎo)書中提供的原理圖,自行設(shè)計一個外部中斷實驗,要求: 1.兩個外部中斷全部用上; 2.實驗?zāi)荏w現(xiàn)不同中斷優(yōu)先級的中斷源的相應(yīng)情況; 3.不同中斷處理程序能輸出不同的響應(yīng)效果 實驗三:定
10、時器中斷實驗 一、一、實驗?zāi)康模簩嶒災(zāi)康模?通過使用定時器 T0 的中斷來控制 P2.0 引腳的的 LED 的燈閃爍,要求閃爍 時間 2S,既亮 1 S,滅 1 S。 二、二、實驗原理圖實驗原理圖 實驗參考電路圖如下(注釋,下圖只有 D1 等閃爍,既亮 1 S,滅 1 S): 三、三、參考實驗程序參考實驗程序 /用定時器 T0 的中斷實現(xiàn)長時間定時,單片機晶體振蕩器周期為 12MHZ, 機 器/周期為 1us #include / 包含 51 單片機寄存器定義的頭文件 sbit D1=P20; /將 D1 位定義為 P2.0 引腳 unsigned char Countor; /設(shè)置全局變量,
11、儲存定時器 T0 中斷次數(shù) /* 函數(shù)功能:主函數(shù) */ void main(void) EA=1; /開總中斷 ET0=1; /定時器 T0 中斷允許 TMOD=0 x01; /使用定時器 T0 的模式 2 TH0=(65536-15536)/256; /定時器 T0 的高 8 位賦初值 TL0=(65536-15536)%256; /定時器 T0 的高 8 位賦初值 TR0=1; /啟動定時器 T0 Countor=0; /從 0 開始累計中斷次數(shù) while(1)/無限循環(huán)等待中斷 ; /* 函數(shù)功能:定時器 T0 的中斷服務(wù)程序 */ void Time0(void) interrup
12、t 1 using 0 /“interrupt”聲明函數(shù)為中斷服 務(wù)函數(shù) /其后的 1 為定時器 T0 的中斷編號;0 表示使用第 0 組工 作寄存器 Countor+; /中斷次數(shù)自加 1 if(Countor=20) /若累計滿 20 次,即計時滿 1s D1=D1; /按位取反操作,將 P2.0 引腳輸出電平取反 Countor=0; /將 Countor 清 0,重新從 0 開始計數(shù) TH0=(65536-15536)/256; /定時器 T0 的高 8 位重新賦初值 TL0=(65536-15536)%256; /定時器 T0 的高 8 位重新賦初值 四、四、實驗思考題:實驗思考題:
13、 修改程序使用定時器 T1 的中斷方式來控制 P2.0 、P2.1 引腳的 LED 燈分別 以 200mshe 800ms 的周期閃爍 調(diào)試后的程序代碼:調(diào)試后的程序代碼: 實驗四:串行口實驗 一、一、實驗?zāi)康模簩嶒災(zāi)康模?本實驗要求單片機 U1 通過其串行口 TXD 向計算機發(fā)送一個數(shù)據(jù)“oxab” 。 利用集成電路 MAX232 將單片機的輸出信號轉(zhuǎn)化成計算機能夠識別的信號。針對 發(fā)送的實例,再設(shè)計一個單片機接受計算機送出數(shù)據(jù)的過程 二、二、實驗原理圖實驗原理圖 單片機發(fā)送數(shù)據(jù)實驗參考電路圖如圖(1): 圖(1) 單片機接受數(shù)據(jù)實驗參考電路圖如下: 圖(2) 三、三、參考實驗程序參考實驗程
14、序 /單片機向 PC 發(fā)送數(shù)據(jù) #include /包含單片機寄存器的頭文件 unsigned char code Tab =0 xFE,0 xFD,0 xFB,0 xF7,0 xEF,0 xDF,0 xBF,0 x7F; /流水燈控制碼,該數(shù)組被定義為全局變量 /* 函數(shù)功能:向 PC 發(fā)送一個字節(jié)數(shù)據(jù) */ void Send(unsigned char dat) SBUF=dat; while(TI=0) ; TI=0; /* 函數(shù)功能:延時約 150ms */ void delay(void) unsigned char m,n; for(m=0;m200;m+) for(n=0;n2
15、50;n+) ; /* 函數(shù)功能:主函數(shù) */ void main(void) unsigned char i; TMOD=0 x20; /TMOD=0010 0000B,定時器 T1 工作于方式 2 SCON=0 x40; /SCON=0100 0000B,串口工作方式 1 PCON=0 x00; /PCON=0000 0000B,波特率 9600 TH1=0 xfd; /根據(jù)規(guī)定給定時器 T1 賦初值 TL1=0 xfd; /根據(jù)規(guī)定給定時器 T1 賦初值 TR1=1; /啟動定時器 T1 while(1) for(i=0;i8;i+) /模擬檢測數(shù)據(jù) Send(Tabi); /發(fā)送數(shù)據(jù)
16、i delay(); /150ms 發(fā)送一次數(shù)據(jù) 四、四、實驗思考題:實驗思考題: 根據(jù)參考原理圖圖(2)設(shè)計一個單片機接受計算機送出數(shù)據(jù)的過程。 調(diào)試后的程序代碼:調(diào)試后的程序代碼: 實驗五:矩陣式鍵盤輸入識別 一、一、實驗?zāi)康模簩嶒災(zāi)康模?設(shè)計一個 4X4 的矩陣鍵盤,鍵盤的號碼 015,要求編寫出一個鍵盤輸入掃 描程序,要求單片機能根據(jù)鍵盤排列順序,能將按下去鍵盤號正確識別出來, 并采用兩個數(shù)碼管分別鍵盤號碼的個位和十位。 二、二、實驗原理圖實驗原理圖 實驗參考電路圖如下: 三、三、參考實驗程序參考實驗程序 #include /包含 51 單片機寄存器定義的頭文件 sbit P14=P1
17、4; sbit P15=P15; sbit P16=P16; sbit P17=P17; unsigned char code Tab =0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90; /數(shù)字 09 的段碼 unsigned char keyval; /* 函數(shù)功能:數(shù)碼管動態(tài)掃描延時 */ void led_delay(void) unsigned char j; for(j=0;j200;j+) ; /* 函數(shù)功能:按鍵值的數(shù)碼管顯示子程序 */ void display(unsigned char k) P2=0
18、xbf; P0=Tabk/10; led_delay(); P2=0 x7f; P0=Tabk%10; led_delay(); /* 函數(shù)功能:軟件延時子程序 */ void delay20ms(void) unsigned char i,j; for(i=0;i100;i+) for(j=0;j60;j+) ; /* 函數(shù)功能:主函數(shù) */ void main(void) EA=1; ET0=1; TMOD=0 x01; TH0=(65536-500)/256; TL0=(65536-500)%256; TR0=1; keyval=0 x00; while(1) display(keyva
19、l); /* 函數(shù)功能:定時器 0 的中斷服務(wù)子程序,進行鍵盤掃描,判斷鍵位 */ void time0_interserve(void) interrupt 1 using 1 TR0=0; P1=0 xf0; if(P1 if(P1 if(P14=0) keyval=1; if(P15=0) keyval=2; if(P16=0) keyval=3; if(P17=0) keyval=4; P1=0 xfd; if(P14=0) keyval=5; if(P15=0) keyval=6; if(P16=0) keyval=7; if(P17=0) keyval=8; P1=0 xfb; i
20、f(P14=0) keyval=9; if(P15=0) keyval=10; if(P16=0) keyval=11; if(P17=0) keyval=12; P1=0 xf7; if(P14=0) keyval=13; if(P15=0) keyval=14; if(P16=0) keyval=15; if(P17=0) keyval=16; TR0=1; TH0=(65536-500)/256; TL0=(65536-500)%256; 四、四、實驗思考題:實驗思考題: 修改實驗電路圖和實驗程序和設(shè)計電路,改成靜態(tài)顯示 調(diào)試后的程序代碼:調(diào)試后的程序代碼: 實驗六:LCD 循環(huán)顯示設(shè)計
21、 一、一、實驗?zāi)康模簩嶒災(zāi)康模?采用 1602 型 LCD 循環(huán)顯示字符串“Welcome to Heifei Normal University” 。其中 LCD 顯示模式為: 16*2 顯示、5*7 點陣、8 位數(shù)據(jù)口; 顯示開、有光標(biāo)開且光標(biāo)閃爍; 光標(biāo)右移,字符不移。 二、二、實驗原理圖實驗原理圖 實驗參考電路圖如下: 三、三、參考實驗程序參考實驗程序 /用 LCD 循環(huán)右移顯示 Welcome to Heifei Normal University #include /包含單片機寄存器的頭文件 #include /包含_nop_()函數(shù)定義的頭文件 sbit RS=P20; /寄存器
22、選擇位,將 RS 位定義為 P2.0 引腳 sbit RW=P21; /讀寫選擇位,將 RW 位定義為 P2.1 引腳 sbit E=P22; /使能信號位,將 E 位定義為 P2.2 引腳 sbit BF=P07; /忙碌標(biāo)志位, ,將 BF 位定義為 P0.7 引腳 unsigned char code string = Welcome to Heifei Normal University ; /* 函數(shù)功能:延時 1ms (3j+2)*i=(333+2)10=1010(微秒),可以認(rèn)為是 1 毫秒 */ void delay1ms() unsigned char i,j; for(i=
23、0;i10;i+) for(j=0;j33;j+) ; /* 函數(shù)功能:延時若干毫秒 入口參數(shù):n */ void delay(unsigned char n) unsigned char i; for(i=0;in;i+) delay1ms(); /* 函數(shù)功能:判斷液晶模塊的忙碌狀態(tài) 返回值:result。result=1,忙碌;result=0,不忙 */ unsigned char BusyTest(void) bit result; RS=0; /根據(jù)規(guī)定,RS 為低電平,RW 為高電平時,可以讀狀態(tài) RW=1; E=1; /E=1,才允許讀寫 _nop_(); /空操作 _nop_
24、(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 result=BF; /將忙碌標(biāo)志電平賦給 result E=0; return result; /* 函數(shù)功能:將模式設(shè)置指令或顯示地址寫入液晶模塊 入口參數(shù):dictate */ void WriteInstruction (unsigned char dictate) while(BusyTest()=1); /如果忙就等待 RS=0; /根據(jù)規(guī)定,RS 和 R/W 同時為低電平時,可以 寫入指令 RW=0; E=0; /E 置低電平(根據(jù)表 8-6,寫指令時,E 為高脈 沖, / 就是讓 E 從 0 到
25、1 發(fā)生正跳變,所以應(yīng)先 置0 _nop_(); _nop_(); /空操作兩個機器周期,給硬件反應(yīng)時間 P0=dictate; /將數(shù)據(jù)送入 P0 口,即寫入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 E=1; /E 置高電平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 E=0; /當(dāng) E 由高電平跳變成低電平時,液晶模塊開 始執(zhí)行命令 /* 函數(shù)功能:指定字符顯示的實際地址 入口參數(shù):x */ void WriteAddress(unsigned
26、char x) WriteInstruction(x|0 x80); /顯示位置的確定方法規(guī)定為80H+地址碼 x /* 函數(shù)功能:將數(shù)據(jù)(字符的標(biāo)準(zhǔn) ASCII 碼)寫入液晶模塊 入口參數(shù):y(為字符常量) */ void WriteData(unsigned char y) while(BusyTest()=1); RS=1; /RS 為高電平,RW 為低電平時,可以寫入數(shù)據(jù) RW=0; E=0; /E 置低電平(根據(jù)表 8-6,寫指令時,E 為高脈沖, / 就是讓 E 從 0 到 1 發(fā)生正跳變,所以應(yīng)先置0 P0=y; /將數(shù)據(jù)送入 P0 口,即將數(shù)據(jù)寫入液晶模塊 _nop_(); _
27、nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 E=1; /E 置高電平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四個機器周期,給硬件反應(yīng)時間 E=0; /當(dāng) E 由高電平跳變成低電平時,液晶模塊開始執(zhí)行命 令 /* 函數(shù)功能:對 LCD 的顯示模式進行初始化設(shè)置 */ void LcdInitiate(void) delay(15); /延時 15ms,首次寫指令時應(yīng)給 LCD 一段較長的 反應(yīng)時間 WriteInstruction(0 x38); /顯示模式設(shè)置:162 顯示,57 點陣,8 位數(shù)據(jù)接口 de
28、lay(5); /延時 5ms WriteInstruction(0 x38); delay(5); WriteInstruction(0 x38); delay(5); WriteInstruction(0 x0f); /顯示模式設(shè)置:顯示開,有光標(biāo),光標(biāo)閃爍 delay(5); WriteInstruction(0 x06); /顯示模式設(shè)置:光標(biāo)右移,字符不移 delay(5); WriteInstruction(0 x01); /清屏幕指令,將以前的顯示內(nèi)容清除 delay(5); void main(void) /主函數(shù) unsigned char i; LcdInitiate();
29、 /調(diào)用 LCD 初始化函數(shù) delay(10); while(1) WriteInstruction(0 x01);/清顯示:清屏幕指令 WriteAddress(0 x00); / 設(shè)置顯示位置為第一行的第 5 個字 i = 0; while(stringi != 0) / 顯示字符 WriteData(stringi); i+; delay(150); for(i=0;i4;i+) delay(250); 四、四、實驗思考題:實驗思考題: 試編寫 LCD12864 顯示初始化程序,設(shè)計電路,采用漢字取模,使 LCD 循環(huán) 顯示字符串 hefei normal university 和個人
30、學(xué)號、姓名。 要求: 1. 字符分為兩行,居中顯示 2. 字符從左向右緩慢移動 調(diào)試后的程序代碼:調(diào)試后的程序代碼: 實驗七實驗七 簡易計算器的設(shè)計與實現(xiàn)簡易計算器的設(shè)計與實現(xiàn) 一、一、實驗?zāi)康膶嶒災(zāi)康?掌握 89C51 單片機開發(fā)應(yīng)用系統(tǒng)的方法和應(yīng)用程序的編寫和調(diào)試 要求:由 P1 口輸出字形碼,P0 口輸出字位碼。先將存放于 30H 單元的數(shù)值 個位七段碼由 P1 口輸出,同時 P0 口輸出使數(shù)值個位顯示數(shù)碼管點亮的字位碼。 由于采用的是共陽數(shù)碼管,所以只有該位數(shù)碼管對應(yīng)的 P0.0 為 1,其他位 P0.1-P0.3 位 0,點亮延時 10MS。然后 P1 口輸出數(shù)值十位七段碼,P0.1
31、 位 1, 數(shù)值十位數(shù)碼管點亮,延時 10MS。接著 P1 口輸出數(shù)值百位七段碼,P0.2 為 1,數(shù)值百位數(shù)碼管點亮,延時 10MS。最后 P1 口輸出數(shù)值千位七段碼,P0.3 為 1,數(shù)值千位數(shù)碼管點亮,延時 10MS。 二、二、實驗原理圖實驗原理圖 三、三、源程序清單或?qū)嶒灢襟E源程序清單或?qū)嶒灢襟E 1.設(shè)計電路,并按照電路接線 2.編寫調(diào)試程序: #include /包含單片機寄存器的頭文件 #include /包含_nop_()函數(shù)定義的頭文件 #include delay10ms() unsigned char a,b; for(a=100;a0;a-) for(b=50;b0;b-
32、); delay1ms() unsigned char a,b; for(a=10;a0;a-) for(b=50;b0;b-); unsigned char code tab= 0 x3f,6,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,7, 0 x7f,0 x6f,0 x77,0 x7c,0 x39,0 x5e,0 x79,0 x71 ; main() unsigned char m,i,j,k,l,p,cc2,cc3,cc4,cc5,o; unsigned long c1,c2,cc; unsigned int cc1; unsigned char aa0,aa1,aa2
33、,aa3,bb0,bb1,bb2,bb3; unsigned char a0,a1,a2,a3,b0,b1,b2,b3; bit q,n; while(1) static dian=0 x80,fuhao=0; for (j=0;j=3;j+) k=0 xfe(8-j); P0=k|l; if(P0_4=0) delay10ms(); if(P0_4=0) while(P0_4=0) P2=b0; P1=0 xfe; delay1ms(); P2=0; P2=b1; P1=0 xfd; delay1ms(); P2=0; P2=b2; P1=0 xfb; delay1ms(); P2=0; P
34、2=b3; P1=0 xf7; delay1ms(); P2=0; P2=a0; P1=0 xef; delay1ms(); P2=0; P2=a1; P1=0 xdf; delay1ms(); P2=0; P2=a2; P1=0 xbf; delay1ms(); P2=0; P2=a3; P1=0 x7f; delay1ms(); P2=0; P2=dian; P1=0 xef; delay1ms(); P2=0; P2=fuhao; P1=0 xef; delay1ms(); P2=0; if(tab4*j=0 x39) n=1; i=3; else m+; if(m=4 a2=a1; a
35、1=a0; a0=tab4*j; aa3=aa2; aa2=aa1; aa1=aa0; aa0=4*j; else if(p=3 b2=b1; b1=b0; b0=tab4*j; bb3=bb2; bb2=bb1; bb1=bb0; bb0=4*j; p+; if(P0_5=0) delay10ms(); if(P0_5=0) while(P0_5=0) P2=b0; P1=0 xfe; delay1ms(); P2=0; P2=b1; P1=0 xfd; delay1ms(); P2=0; P2=b2; P1=0 xfb; delay1ms(); P2=0; P2=b3; P1=0 xf7;
36、 delay1ms(); P2=0; P2=a0; P1=0 xef; delay1ms(); P2=0; P2=a1; P1=0 xdf; delay1ms(); P2=0; P2=a2; P1=0 xbf; delay1ms(); P2=0; P2=a3; P1=0 x7f; delay1ms(); P2=0; P2=dian; P1=0 xef; delay1ms(); P2=0; P2=fuhao; P1=0 xef; delay1ms(); P2=0; if(tab4*j+1=0 x5e) i=4; n=1; else m+; if(m=4 a2=a1; a1=a0; a0=tab4
37、*j+1; aa3=aa2; aa2=aa1; aa1=aa0; aa0=4*j+1; else if(p=3 b2=b1; b1=b0; b0=tab4*j+1; bb3=bb2; bb2=bb1; bb1=bb0; bb0=4*j+1; p+; if(P0_6=0) delay10ms(); if(P0_6=0) while(P0_6=0) P2=b0; P1=0 xfe; delay1ms(); P2=0; P2=b1; P1=0 xfd; delay1ms(); P2=0; P2=b2; P1=0 xfb; delay1ms(); P2=0; P2=b3; P1=0 xf7; dela
38、y1ms(); P2=0; P2=a0; P1=0 xef; delay1ms(); P2=0; P2=a1; P1=0 xdf; delay1ms(); P2=0; P2=a2; P1=0 xbf; delay1ms(); P2=0; P2=a3; P1=0 x7f; delay1ms(); P2=0; P2=dian; P1=0 xef; delay1ms(); P2=0; P2=fuhao; P1=0 xef; delay1ms(); P2=0; if(tab4*j+2=0 x77) i=1; n=1; else if(tab4*j+2=0 x79) q=1; n=1; else m+;
39、 if(m=4 a2=a1; a1=a0; a0=tab4*j+2; aa3=aa2; aa2=aa1; aa1=aa0; aa0=4*j+2; else if(p=3 b2=b1; b1=b0; b0=tab4*j+2; bb3=bb2; bb2=bb1; bb1=bb0; bb0=4*j+2; p+; if(P0_7=0) delay10ms(); if(P0_7=0) while(P0_7=0) P2=b0; P1=0 xfe; delay1ms(); P2=0; P2=b1; P1=0 xfd; delay1ms(); P2=0; P2=b2; P1=0 xfb; delay1ms()
40、; P2=0; P2=b3; P1=0 xf7; delay1ms(); P2=0; P2=a0; P1=0 xef; delay1ms(); P2=0; P2=a1; P1=0 xdf; delay1ms(); P2=0; P2=a2; P1=0 xbf; delay1ms(); P2=0; P2=a3; P1=0 x7f; delay1ms(); P2=0; P2=dian; P1=0 xef; delay1ms(); P2=0; P2=fuhao; P1=0 xef; delay1ms(); P2=0; if(tab4*j+3=0 x71) i=6; n=1; else if(tab4*
41、j+3=0 x7c) i=2; n=1; else m+; if(m=4 a2=a1; a1=a0; a0=tab4*j+3; aa3=aa2; aa2=aa1; aa1=aa0; aa0=4*j+3; else if(p=c2) cc=c1-c2; else cc=c2-c1; fuhao=0 x40; if(i=3)/乘法運算 cc=c1*c2; a3=tabcc/; aa3=cc/; a2=tab(cc%)/; aa2=(cc%)/; a1=tab(cc%)/; aa1=(cc%)/; a0=tab(cc%)/10000; aa0=(cc%)/10000; b3=tab(cc%10000
42、)/1000; bb3=(cc%10000)/1000; b2=tab(cc%1000)/100; bb2=(cc%1000)/100; b1=tab(cc%100)/10; bb1=(cc%100)/10; b0=tabcc%10; bb0=cc%10; dian=0;/消除點 if(aa3=0)/消除多余的零 a3=0; if(aa2=0) a2=0; if(aa1=0) a1=0; if(aa0=0) a0=0; if(bb3=0) b3=0; if(bb2=0) b2=0; if(bb1=0) b1=0; if(i=4)/除法運算 if(c2=0) for(o=100;o0;o-) b
43、2=b1=b0=0; a3=0 x79; a2=a1=b3=0 x77; a0=0 x3f; P2=b0; P1=0 xfe; delay1ms(); P2=0; P2=b1; P1=0 xfd; delay1ms(); P2=0; P2=b2; P1=0 xfb; delay1ms(); P2=0; P2=b3; P1=0 xf7; delay1ms(); P2=0; P2=a0; P1=0 xef; delay1ms(); P2=0; P2=a1; P1=0 xdf; delay1ms(); P2=0; P2=a2; P1=0 xbf; delay1ms(); P2=0; P2=a3; P1=0 x7f; delay1ms(); P2=0; delay10ms(); i=6; e
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度農(nóng)業(yè)機械出租與農(nóng)產(chǎn)品冷鏈物流合同3篇
- 二零二五年度公寓租賃合同書(含共享空間服務(wù))3篇
- 2025年度大型國企原材料采購合同風(fēng)險管理與優(yōu)化3篇
- 2025年度公務(wù)車輛個人使用管理與費用監(jiān)督協(xié)議3篇
- 二零二五年度數(shù)字健康產(chǎn)業(yè)合作成立公司協(xié)議3篇
- 2025年度車輛分期付款買賣合同協(xié)議書3篇
- 農(nóng)村土地征收補償安置買賣合同(2025年版)3篇
- 二零二五年度農(nóng)村土地經(jīng)營權(quán)流轉(zhuǎn)與農(nóng)業(yè)產(chǎn)業(yè)鏈金融合作合同2篇
- 二零二五年度高端醫(yī)療器械采購合同風(fēng)險分析與預(yù)防3篇
- 二零二五年度美發(fā)品牌形象授權(quán)合作合同3篇
- 外研版小學(xué)英語(三起點)六年級上冊期末測試題及答案(共3套)
- 跨部門合作銷售提成方案
- 外研版(三起)四上Module1-Module10思維導(dǎo)圖
- YY 9706.210-2021醫(yī)用電氣設(shè)備第2-10部分:神經(jīng)和肌肉刺激器的基本安全和基本性能專用要求
- FZ/T 01041-2014絨毛織物絨毛長度和絨毛高度的測定
- 《經(jīng)濟學(xué)導(dǎo)論》考試復(fù)習(xí)題庫(含答案)
- 農(nóng)田水利渠道灌溉與排水課件
- 六棱塊護坡施工方案
- 機械制圖課件(完整版)
- 《行政組織學(xué)小抄》word版
- (完整版)環(huán)境科學(xué)與工程-專業(yè)英語詞匯必備(免費)
評論
0/150
提交評論