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

正文內(nèi)容

基于51單片機(jī)的簡易帶密碼計算器設(shè)計報告(已修改)

2025-06-30 21:42 本頁面
 

【正文】 浙江萬里學(xué)院電子信息學(xué)院創(chuàng)新開放實(shí)驗(yàn)課程設(shè)計 專業(yè)電子信息工程班級學(xué)號姓名導(dǎo)師時間~設(shè)計題目:基于51單片機(jī)的簡易帶密碼計算器 一、設(shè)計實(shí)驗(yàn)條件:地 點(diǎn):學(xué)生自主創(chuàng)新實(shí)驗(yàn)室4506實(shí)驗(yàn)設(shè)備:PC機(jī)( 裝有Keil;Protues;Word ;DXP )、電路板印制腐蝕相關(guān)設(shè)備二、設(shè)計任務(wù):本系統(tǒng)選用STC89C52單片機(jī)為主控機(jī)。通過擴(kuò)展必要的外圍接口電路,實(shí)現(xiàn)對計算器的設(shè)計,具體設(shè)計如下:(1)由于設(shè)計的計算器要進(jìn)行四則運(yùn)算,為了得到較好的顯示效果,經(jīng)綜合分析后,最后采用LCD液晶1602顯示數(shù)據(jù)和結(jié)果。(2)采用鍵盤輸入方式,鍵盤包括數(shù)字鍵(0~9)、符號鍵(+、247。)、小數(shù)點(diǎn)(.)和等號鍵(=),故只需要16 個按鍵即可,設(shè)計中采用集成的4x4矩陣鍵盤。(3)在執(zhí)行過程中,首先執(zhí)行開機(jī)字符串提示,接著開機(jī)密碼提示,等待鍵入密碼后,判斷密碼是否正確,正確則清屏進(jìn)入計算界面,錯誤則提示重新輸入,共有三次輸密碼機(jī)會,3次錯誤后則需要等待15秒然后再輸密碼,接著又有3次機(jī)會。(4)當(dāng)鍵入+、*、/運(yùn)算符,計算器在內(nèi)部執(zhí)行數(shù)值轉(zhuǎn)換和存儲,并等待再次鍵入數(shù)值,當(dāng)再鍵入數(shù)值后將顯示鍵入的數(shù)值,按等號就會在LCD上輸出運(yùn)算結(jié)果。(5)錯誤提示:當(dāng)計算器執(zhí)行過程中有錯誤時,會在LCD上顯示相應(yīng)的提示,由于程序設(shè)計原因,將所有輸入數(shù)據(jù)以浮點(diǎn)型類型去計算,而輸入最多只有16位,故不會存在超量程。當(dāng)除數(shù)為0時,程序運(yùn)算出錯,計算器會在LCD上提示+INF。設(shè)計要求:分別對鍵盤輸入檢測模塊;LCD顯示模塊;算術(shù)運(yùn)算模塊;錯誤處理及提示模塊進(jìn)行設(shè)計, keil與protues仿真分析其設(shè)計結(jié)果。用DXP畫PCB,印制硬件電路板,進(jìn)行硬件調(diào)試。三、設(shè)計時間與設(shè)計時間安排:設(shè)計時間:5月24日~6月14日設(shè)計時間安排: 熟悉課題、收集資料: 2天(5月24日~ 5月25日) 具體設(shè)計(含編程、仿真、硬件調(diào)試):16天(5月26日~ 6月8日)編寫課程設(shè)計說明書: 2天(6月13日~ 6月14日)答辯: 1天(6月 日)四、設(shè)計說明書的內(nèi)容:前言: 本設(shè)計是基于51系列單片機(jī)來進(jìn)行的數(shù)字計算器系統(tǒng)設(shè)計,可以完成計算器的鍵盤輸入,進(jìn)行加、減、乘、除基本四則運(yùn)算,并在LCD上顯示相應(yīng)的結(jié)果;設(shè)計電路采用STC89C52單片機(jī)為主要控制電路,顯示采用字符LCD顯示;軟件方面使用C語言編程,并用PROTUES仿真。最后用DXP畫PCB,印制硬件電路板,進(jìn)行硬件調(diào)試。設(shè)計題目與設(shè)計任務(wù):現(xiàn)實(shí)生活中人們熟知的計算器,其功能主要如下:(1)鍵盤輸入;(2)數(shù)值顯示;(3)加、減、乘、除四則運(yùn)算(浮點(diǎn)計算可帶小數(shù)點(diǎn)); (4)外加開機(jī)密碼。針對上述功能,計算器軟件程序要完成以下模塊的設(shè)計:(1)鍵盤輸入檢測模塊;(2)LCD顯示模塊;(3)算術(shù)運(yùn)算模塊(主程序);(4)加密模塊。(5)延時模塊主體設(shè)計部分:(1)、系統(tǒng)模塊圖:(2)、算術(shù)運(yùn)算程序流程圖:(3)、系統(tǒng)總流程圖:開始液晶、定時器初始化按鍵有效?密碼正確?按鍵有效?執(zhí)行運(yùn)算程序液晶顯示YNYYN(4)、硬件設(shè)計:(一)總體硬件設(shè)計:本設(shè)計選用STC89C52單片機(jī)為主控單元; 顯示部分:采用LCD(1602)顯示;按鍵部分:采用4*4鍵盤。 PCB印刷電路圖總體設(shè)計如下圖(protues仿真圖):PCB原理圖(二)、單片機(jī)接口電路說明:手動上電復(fù)位電路:當(dāng)VCC上電時,C充電,在10K電阻上出現(xiàn)電壓,使得單片機(jī)復(fù)位;幾個毫秒后,C充滿,10K電阻上電流降為0,電壓也為0,使得單片機(jī)進(jìn)入工作狀態(tài)。工作期間,按下S,C放電。S松手,C又充電,在10K電阻上出現(xiàn)電壓,使得單片機(jī)復(fù)位。幾個毫秒后,單片機(jī)進(jìn)入工作狀態(tài)。內(nèi)部時鐘模式電路:當(dāng)單片機(jī)工作于內(nèi)部時鐘模式的時候,只需在XTAL1和XTAL2引腳連接一個晶體振蕩器或者陶瓷振蕩器,并接兩個電容后接地即可,在使用時對于電容的選擇有一定的要求:當(dāng)外接晶體振蕩器的時候,電容值一般選擇C1=C2=30+10pF或3010pF;當(dāng)外接陶瓷振蕩器的時候,電容值一般選擇C1=C2=40+10pF或4010pF;STC89C52單片機(jī)引腳介紹:VCC: 供電電壓。GND:接地。 P0口:P0口為一個8位漏級開路雙向I/O口,每腳可吸收8TTL門電流。當(dāng)P0口的管腳第一次寫1時,被定義為高阻輸入。P0能夠用于外部程序數(shù)據(jù)存儲器,它可以被定義為數(shù)據(jù)/地址的第八位。在FIASH編程時,P0 口作為原碼輸入口,當(dāng)FIASH進(jìn)行校驗(yàn)時,P0輸出原碼,此時P0外部必須被拉高。 P1口:P1口是一個內(nèi)部提供上拉電阻的8位雙向I/O口,P1口緩沖器能接收輸出4TTL門電流。P1口管腳寫入1后,被內(nèi)部上拉為高,可用作輸入,P1口被外部下拉為低電平時,將輸出電流,這是由于內(nèi)部上拉的緣故。在FLASH編程和校驗(yàn)時,P1口作為第八位地址接收。 P2口:P2口為一個內(nèi)部上拉電阻的8位雙向I/O口,P2口緩沖器可接收,輸出4個TTL門電流,當(dāng)P2口被寫“1”時,其管腳被內(nèi)部上拉電阻拉高,且作為輸入。并因此作為輸入時,P2口的管腳被外部拉低,將輸出電流。這是由于內(nèi)部上拉的緣故。P2口當(dāng)用于外部程序存儲器或16位地址外部數(shù)據(jù)存儲器進(jìn)行存取時,P2口輸出地址的高八位。在給出地址“1”時,它利用內(nèi)部上拉優(yōu)勢,當(dāng)對外部八位地址數(shù)據(jù)存儲器進(jìn)行讀寫時,P2口輸出其特殊功能寄存器的內(nèi)容。P2口在FLASH編程和校驗(yàn)時接收高八位地址信號和控制信號。 P3口:P3口管腳是8個帶內(nèi)部上拉電阻的雙向I/O口,可接收輸出4個TTL門電流。當(dāng)P3口寫入“1”后,它們被內(nèi)部上拉為高電平,并用作輸入。作為輸入,由于外部下拉為低電平,P3口將輸出電流(ILL)這是由于上拉的緣故。 P3口也可作為AT89C51的一些特殊功能口: RXD(串行輸入口) TXD(串行輸出口) /INT0(外部中斷0) /INT1(外部中斷1) T0(記時器0外部輸入) T1(記時器1外部輸入) /WR(外部數(shù)據(jù)存儲器寫選通) /RD(外部數(shù)據(jù)存儲器讀選通) P3口同時為閃爍編程和編程校驗(yàn)接收一些控制信號。 RST:復(fù)位輸入。當(dāng)振蕩器復(fù)位器件時,要保持RST腳兩個機(jī)器周期的高電平時間。 ALE/PROG:當(dāng)訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的地位字節(jié)。在FLASH編程期間,此引腳用于輸入編程脈沖。在平時,ALE端以不變的頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的1/6。因此它可用作對外部輸出的脈沖或用于定時目的。然而要注意的是:每當(dāng)用作外部數(shù)據(jù)存儲器時,將跳過一個ALE脈沖。如想禁止ALE的輸出可在SFR8EH地址上置0。此時, ALE只有在執(zhí)行MOVX,MOVC指令是ALE才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài)ALE禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取指期間,每個機(jī)器周期兩次/PSEN有效。但在訪問外部數(shù)據(jù)存儲器時,這兩次有效的/PSEN信號將不出現(xiàn)。 /EA/VPP:當(dāng)/EA保持低電平時,則在此期間外部程序存儲器(0000HFFFFH),不管是否有內(nèi)部程序存儲器。注意加密方式1時,/EA將內(nèi)部鎖定為RESET;當(dāng)/EA端保持高電平時,此間內(nèi)部程序存儲器。在FLASH編程期間,此引腳也用于施加12V編程電源(VPP)。 XTAL1:反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。單片機(jī)與復(fù)位、時鐘電路連接電路圖(單片機(jī)最小系統(tǒng)):運(yùn)算模塊主要代碼switch(sign) //檢測到輸入=號,判斷上次讀入的符合 { case 39。+39。:a=a+b。 break。 case 39。39。:a=ab。 break。 case 39。x39。:a=a*b。 break。 case 39。/39。:a=a/b。 break。 default:break。}sprintf(temp,%g,a)。 //輸出浮點(diǎn)型,無用的0不輸出 LCD_Write_String(1,1,temp)。//顯示到液晶屏 sign=0。a=b=0。 //用完后所有數(shù)據(jù)清零for(s=0。s16。s++) temp[s]=0。延時模塊主要代碼/* uS延時函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號字符變量,其值的范圍是 0~255 這里使用晶振12M,精確延時請使用匯編,大致延時 長度如下 T=tx2+5 uS */void DelayUs2x(unsigned char t){ while(t)。}/* mS延時函數(shù),含有輸入?yún)?shù) unsigned char t,無返回值 unsigned char 是定義無符號字符變量,其值的范圍是 0~255 這里使用晶振12M,精確延時請使用匯編*/void DelayMs(unsigned char t){ while(t) { //大致延時1mS DelayUs2x(245)。 DelayUs2x(245)。 }}加密模塊主要代碼for(。Flag!=1。){ num=KeyPro()。 //掃描鍵盤 _mima_ if(num!=0xff) //如果掃描是按鍵有效值則進(jìn)行處理 { if(i16) { passwordtemp[i]=num。 LCD_Write_Char(i,1,39。*39。)。//輸入的密碼用*代替 } i++。 //輸入次數(shù)值累加 if((39。=39。==num)||(i==16))//輸入按鍵39。=39?;蛘呙艽a輸入到最大值16,表示輸入結(jié)束,需要進(jìn)行比對 { passwordlength=i1。 //計算輸入密碼長度,除去等號占有的一位 i=0。 //計數(shù)器復(fù)位 if(passwordlength==PLEN)//長度相等則比較,否則直接輸出錯誤 { Flag=1。//先把比較位置1 for(j=0。jPLEN。j++)//循環(huán)比較8個數(shù)值,如果有一個不等 則最終Flag值為0 Flag=Flagamp。amp。(passwordtemp[j]==password[j])。//比較輸入值和已有密碼,如果比較全部相同,標(biāo)志位置1 } if(Flag) { password_Right()。 //密碼正確,進(jìn)入打開界 break。 //跳出for大循環(huán) } else password_Wrong()。 //密碼錯誤,提示重新輸入 }} }(三)、鍵盤接口電路:計
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦

畢業(yè)設(shè)計(論文)-基于mc51單片機(jī)的簡易計算器設(shè)計-資料下載頁

【總結(jié)】電》