freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

單片機(jī)計(jì)算器及密碼鎖程序設(shè)計(jì)論文(文件)

2025-08-14 18:55 上一頁面

下一頁面
 

【正文】 分:鍵盤程序結(jié)束后要 檢測按鍵彈起,如果沒有彈起一直等待直到按鍵彈起才可一返回主程序。 char atc[4]={0xef,0xdf,0xbf,0x7f}。i4。 in=in4。j++) if(atc[j]==in) { find=1。 while(askey()) /*鍵沒釋放一直顯示 */ display()。 if(key=0x0aamp。 } 匯編語言的源程序如下: KEYI: MOV R1,04H MOV R2,0EFH LK1: MOV DPTR,PORTC MOV A,R2 MOVX DPTR,A NOP NOP MOVX A,DPTR JB ,LONE 。第四列沒有鍵按下到 NEXT MOV A,0CH JMP LKP NEXT: MOV A,R2 。查表修改鍵值 CJNE A, 0AH,KEYH1 。是 D 鍵則加入第二功能 ADD A,SND KEYH4: CJNE A, 0EH,KEYEND 。 本文 采用最原始的辦法實(shí)現(xiàn)除法,即類似于豎式的算法。然后用處理函數(shù)處理結(jié)果以便于顯示。返回值不為零就需要調(diào)用移位子函數(shù)改變被除數(shù)。 商的小數(shù)位數(shù) 計(jì)算公式如下: N=XY+Z1 式中 N——商的小數(shù)位數(shù) ; X——商的位數(shù); Y——被除數(shù)的小數(shù)位數(shù); Z——除數(shù)的小數(shù)位數(shù); 注意:上面所說的 存儲器值 小數(shù)位數(shù)都是 duiqi子函數(shù)后的值。 if(point10) point1。 if(point2=point1) { xsd=point2point1。} for(x=0。 cmp=pare(num_Operand1,num_Operand2)。 } yiwei()。 } if(temp==1) /* 求小數(shù)點(diǎn)的位置 */ { if(xxsd0) { num_Operand2=x。 point2=0。 temp2=x。 Operand2[temp2]=temp_Operand[temp1]。 result_point=point2。 jianyi 函數(shù)實(shí)現(xiàn)被除數(shù)取出的數(shù)減除數(shù)一次的功能。 開根號子程序 開根號子程序有 兩 種實(shí)現(xiàn)方案:牛頓迭代法和二分法。(x0)(xx0),求出 L 與 x 軸交點(diǎn)的橫坐標(biāo) x1 = x0f(x0)/f39。重復(fù)以上過程,得 r 的近似值序列,其中 x(n+1)=x(n)- f(x(n))/f39。(x0)+(x -x0)^2*f39。(x0)≠0則其解為 x1=x0- f(x0)/f39。 n 的大小與開更號的精度有關(guān),精度越高 n 越大。 /* 用于保存牛頓迭代的 Y*/ 第 3 章 計(jì)算器程序 33 char s2[8]。 /* S1 的小數(shù)位數(shù) */ char xsd4。 for(temp1=0。 } /* 初始化 */ for(temp1=0。 } sg3=num_Operand2。 s2[0]=2。 num_Operand2=sg4。temp1++) /* 數(shù) 1 沒用位清零 */ Operand2[temp1]=0。 num_Operand1=sg3。temp1++) /* 除法前的必要處理 */ Operand1[temp1]=0。 chufa()。 for(temp1=0。 point1=xsd4。 jiafa()。temp1num_Operand2。 /* 求出( Y/X+X) /2 并存入數(shù) 1*/ jqf=jinque(s2,sg4,xsd4)。temp116。temp1++) /* 將 X 去出放入操作數(shù) 2*/ Operand1[temp1]=s2[temp1]。temp116。temp116。 for(temp1=num_Operand1。temp1sg3。 for(temp1=num_Operand2。temp1sg4。 sg4=1。temp1++) /* 保存數(shù) 1(Y)到 s1*/ { s1[temp1]=Operand2[temp1]。temp1++) { s1[temp1]=0。 /* 暫存 jinque 函數(shù)的返回值 */ symbol=8。 /* S1 的位數(shù) */ char sg4。本程序定義 x( 0) =2。(x(n))。(x0)/2!+… 取其線性部分,作為非線性方程 f(x)=0 的近似方程,即泰勒展開的前兩項(xiàng),則有 f(x0)+f39。 解非線性方程 f(x)=0 的牛頓法是把非線性方程線性化的一種近似方法。過點(diǎn)( x1,f(x1))做曲線 y=f(x)的切線,并求該切線與 x 軸交點(diǎn)的橫坐標(biāo) x2 = x1f(x1)/f39。所以本設(shè)計(jì)采用牛頓迭代法,下面詳細(xì)介紹一下牛頓迭代法。 chuli函數(shù)對計(jì)算結(jié)果的位數(shù)進(jìn)行處理以便于顯示。 } 開 始小 數(shù) 點(diǎn) 處 理清 除 操 作 數(shù) 左 邊 的 零除 數(shù) 和 被 除 數(shù) 高 位 對 齊用 j i e y i 和 c o m p a r e 函 數(shù)求 商 的 一 位改 變 要 求 商 的 位被 除 數(shù) 左 移 一 位除 盡 或 超 出 顯 示 ?保 存 商 到 O p e r a n d 1處 理 結(jié) 果返 回NY 圖 34 除法子程序流程圖 第 3 章 計(jì)算器程序 31 說明: Operand1 是被除數(shù), Operand2 是除數(shù), temp_Operand 在計(jì)算的過程中暫時保存結(jié)果。 temp2。temp1x。 } } else { point2=x+xsd1。 temp2=num_Operand2。 Operand2[0]=0。 temp_Operand[x]++。x++) /*除的次數(shù) */ { if(panduan(Operand1,num_Operand1)) /*除盡時停止 */ break。 } else { xsd=point1point2。 while(Operand1[num_Operand11]==0) num_Operand1。 char cmp。 jianyi 子函數(shù)的功能是 Operand1= Operand1 Operand2。 小數(shù)點(diǎn)處理就是讓 point2( point1)的值與Operand2( Operand1)的小數(shù)位數(shù)相同, 即 point2=1, point1=2。然后從被除數(shù)中取出下一位補(bǔ)到該數(shù)的后邊用同樣的方法求取商的次高位。按鍵沒松開等待直到按鍵松開 RET 燕山大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 26 STAB:DB 0CH,09H,05H,01H,0DH,00H,06H,02H,0EH,0AH,07H,03H,0FH, 0BH,08H,04H 除法子程序 除法子程 序的功能是計(jì)算 Operand1 除以 Operand2 并將結(jié)果存入Operand2 中。是 B 鍵則加入第二功能 ADD A,SND JMP KEYEND KEYH2: CJNE A, 0CH,KEYH3 。沒有掃描完繼續(xù)掃描 MOV JIAN,0FFH RET LKP: ADD A,R1 。第二列沒有鍵按下到 LTWO MOV A,04H JMP LKP LTWO: JB ,LTHR 。key=0x0e) /* 第二功能處理 */ key=key+snd。 if(key==9) /* 修改鍵值 */ key=0。 ini=i。 for(j=0。 delay(3)。 find=0。 燕山大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 22 2, 去除鍵抖動部分:當(dāng)檢測到有鍵按下后,延時一段時間再做下一步的檢測判斷。第幾位不為高電平就說明該列的第幾行的鍵被按下。 本程序主要用到三個子函數(shù), dushu 子函數(shù)主要負(fù)責(zé)接收輸入的數(shù)據(jù)(包括 兩 個操作數(shù)和一個操作符), jisuan 子函數(shù)根 據(jù)操作符的值調(diào)用不同的計(jì)算子函數(shù)計(jì)算結(jié)果, display 子函數(shù)用于顯示操作數(shù)和結(jié)果。 if(key==0x0e) /*清零鍵按下 */ break。 while(1) { 第 3 章 計(jì)算器程序 21 jsf=dushu()。 } PA=0x3f。temp116。 P1_5=1。point1=0。 /*保存讀數(shù)函數(shù)的返回值 */ CR=0x81。模塊化編程可以簡化程序修改的工作。而在單塊程序編程中,這樣的部分深埋在整個程序中,不易被其它的程序使用。最后,測試整個模塊。 主程序 本程序設(shè)計(jì)采用模塊化編程的思想,各功能模塊都用子程序?qū)崿F(xiàn)。 鍵盤功能簡圖如圖 31: 1 2 3 45 6 7 89 0s n d+=x清 零 圖 31 計(jì)算器鍵盤功能簡圖 由于仿真板只有 8 位數(shù)碼管,所以輸入的數(shù)據(jù)或計(jì)算結(jié)果最多只有 8燕山大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 18 位(負(fù)數(shù)只能有 7 位),如果計(jì)算結(jié)果超出 8 位(或 7 位)則四舍五入到全屏顯示即 8 位(或 7 位)。 LED3 對應(yīng)的 操作符是加, LED4 對應(yīng)的操作符是 減, LED5 對應(yīng)的操作符是 乘, LED3 和 LED4 同時亮 對應(yīng)的操作符是除。 F 鍵為Snd 鍵。 SPEAKER+5V蜂鳴器R14 9013DB9P13 圖 27 蜂鳴器連接電路 燕山大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 16 本章小結(jié) 本章主要介紹了單片機(jī)仿真器系統(tǒng)中的硬件電路原理圖,以方便對整個電路的了解,使使用者熟悉電路原理, 這是閱讀程序的必要前提 。 這里采用的是電磁式蜂鳴器,通過 單片機(jī) I/O 口周期性的取反,使三極管周期性的導(dǎo)通從而使蜂鳴器振動發(fā)聲。 電磁式蜂鳴器由振蕩器、電磁線圈、磁鐵、振動膜片及外殼等組成。 最后將建位值保存起來就完成了接收鍵盤數(shù)據(jù)。 PC4 到 PC7 為輸出口, PC1 到 PC4 為輸入口。 L0+5V200MCU 圖 25 流水燈電路簡圖 燕山大學(xué)本科生畢業(yè)設(shè)計(jì)(論文) 14 鍵盤電路 在微機(jī)應(yīng)用系統(tǒng)中,為了輸 入數(shù)據(jù)、查詢和控制系統(tǒng)的工作狀態(tài),一般都設(shè)置有鍵盤,本系統(tǒng)中 采 用 44 的鍵盤,鍵盤的 8 位接口與 PC 口相連。 共陰極四位一體數(shù)碼管的引腳圖如右圖所示, 顯示數(shù)字所對 應(yīng)的控制字如下表: a bcdefghA B CD第 2 章 硬件系統(tǒng)的介紹 13 0 1 2 3 4 5 6 7 8 9 3fH 06H 5bH 4fH 66H 6dH 7bH 07H 7fH 6fH 圖 24 數(shù)碼管與 8255 連接電路 LED與單片機(jī)的鏈接 將發(fā)光二極管與單片機(jī)的 I/O 口相聯(lián),控制各各燈的亮樣,以達(dá)到使其呈現(xiàn)不同樣式。由于人眼響應(yīng)較慢,最后的效果是每一個數(shù)碼管都在顯示各自的字符。 所謂靜態(tài)顯示,就是每一個顯示器都要占用單獨(dú)的具有鎖存功能的I/O 接口用于筆劃段字形代碼。 本設(shè)計(jì)中只選用 8255 的方式 0,即基本的輸入 /輸出方式, 3 個端口互不影響,可以分別設(shè)置為輸入或輸出。端口工作 于方式 0 時,沒有相應(yīng)的狀
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1