版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、摘要 近些年以單片機為核心的技術發(fā)展很快,現在它被廣泛的應用于與我們生活相 關的各個領域中,如電子、通信、科技、工業(yè)等,其中電子產品的更新速度更為迅 猛。計算器是日常生活中比較常見的電子產品之一,怎樣才能使計算器技術更加的 成熟、簡單,充分利用已有的硬件和軟件條件,設計出更簡易的計算器。 本設計是以 AT89C51 單片機為核心的簡易計算器設計,輸入采用 4*4 矩陣鍵盤, 可以進行加、減、乘、除帶符號數字運算(八位整數) ,并在液晶顯示屏 LCD1602 上 靜態(tài)顯示操作的過程及結果。軟件用 C 語言編程、Keil uVision2 和 pretues 仿真。 關鍵詞:關鍵詞:單片機;計算器
2、;液晶顯示屏;矩陣鍵盤 Abstract In recent years, the microcontroller as the core technology is developing very fast, now it is widely used in various fields related with our life, such as electronics, communications, science and technology, industry and so on, and the update speed of electronic product is more
3、 rapid. The calculator is the one of common electronic products in our daily life, how to make the computer technology more mature and simple and to make full use of the existing hardware and software conditions to design a simple calculator. The design is based on the AT89C51single-chip microcomput
4、er as the core of a simple calculator design, using 4*4matrix keyboard input, you can add, subtract, multiplication, except the symbol digit operation ( eight integers ), and static display operation process and result in the LCD1602 screen LCD. The Software programming use C language, Keil uVision2
5、 and pretues simulation. KeyKey words:words: single chip microcomputer; calculator; LCD screen; keyboard matrix 目錄 引言.1 第一章 設計原理及要求.2 1.1 設計方案的確定.2 1.2 系統(tǒng)的設計方案.2 1.3 系統(tǒng)的設計要求.2 第二章 硬件模塊設計.4 2.1 單片機 AT89C51 .4 2.1.1 AT89C51 芯片的特點 .5 2.1.2 管腳說明.5 2.1.3 振蕩器特性.7 2.1.4 芯片擦除.7 2.2 鍵盤控制模塊.7 2.2.1 矩陣鍵盤的工作原理.
6、8 2.2.2 鍵盤電路主要器件介紹.8 2.3 LCD 顯示模塊 .10 2.3.1 顯示電路.11 2.3.2 LCD1602 主要技術參數 .11 2.3.3 引腳功能說明.11 2.4 運算模塊(單片機控制).12 第三章 軟件設計.14 3.1 功能介紹.14 3.2 系統(tǒng)流程圖 .14 3.3 程序.16 第四章 系統(tǒng)調試.17 4.1 軟件介紹 .17 4.1.1 Keil uVision2 仿真軟件簡介 .17 4.1.2 protues 簡介 .17 4.2 軟件調試.18 4.2.1 軟件分析及常見故障.19 4.2.2 仿真結果演示.20 4.3 硬件調試.21 結束語.
7、23 參考文獻.24 附錄.25 致謝.36 引言 計算工具最早誕生于中國,中國古代最早采用的一種計算工具叫籌策,也被叫 做算籌。這種算籌多用竹子制成,也有用木頭,獸骨充當材料的,約二百七十枚一 束,放在布袋里可隨身攜帶。另外直到今天仍在使用的珠算盤,是中國古代計算工 具領域中的另一項發(fā)明,明代時的珠算盤已經與現代的珠算盤幾乎相同。 17 世紀初,西方國家的計算工具有了較大的發(fā)展,英國數學家納皮爾發(fā)明的 “納皮爾算籌” ,英國牧師奧卻德發(fā)明了圓柱型對數計算尺,這種計算尺不僅能做加、 減、乘、除、乘方和開方運算,甚至可以計算三角函數、指數函數和對數函數。這 些計算工具不僅帶動了計算器的發(fā)展,也為
8、現代計算器發(fā)展奠定了良好的基礎,成 為現代社會應用廣泛的計算工具。1642 年,年僅 19 歲的法國偉大科學家帕斯卡引 用算盤的原理,發(fā)明了第一部機械式計算器,在他的計算器中有一些互相聯鎖的齒 輪,一個轉過十位的齒輪會使另一個齒輪轉過一位,人們可以像撥電話號碼盤那樣, 把數字撥進去,計算結果就會出現在另一個窗口中,但是它只能做加減運算。1694 年,萊布尼茲在德國將其改進成可以進行乘除的計算。此后,一直到 20 世紀 50 年 代末才有電子計算器的出現。 第一章 設計原理及要求 1.1 設計方案的確定 本設計是以單片機 AT89C51 為核心的簡易計算器設計,要通過芯片 AT89C51 實 現
9、計算器程序運行來完成加、減、乘和除的簡單計算功能。 本設計運算模塊由 AT89C51 實現,數據輸入模塊由 4*4 矩陣鍵盤電路實現,輸 出數據模塊由 LCD 顯示電路實現,再外加一個時鐘電路和一個復位電路完成整個簡 易計算器的設計。 1.2 系統(tǒng)的設計方案 本設計由以下幾部分組成:AT89C51 單片機系統(tǒng)(運算模塊) 、鍵盤電路、顯示 電路、時鐘電路和復位電路構成,計算器系統(tǒng)框圖如圖 1-1 所示。 圖 1-1 計算器系統(tǒng)框圖 1.3 系統(tǒng)的設計要求 為了更好地實現系統(tǒng)的功能,硬件電路的設計應該遵循以下原則: 1、優(yōu)化硬件電路 采用軟件設計與硬件設計相結合的方法。盡管采用軟件來實現硬件系統(tǒng)
10、的功能 時,也許響應的時間會比單純使用硬件時長,而且還要占用微處理器(MCU)的時間; 但是,用軟件實現硬件的功能可以簡化硬件結構,提高電路的可靠性。所以,在設 計本系統(tǒng)的時候,在滿足可靠性和實時性的前提下,盡可能地通過軟件來實現硬件 功能。 2、可靠性及抗干擾設計 根據可靠性設計理論,系統(tǒng)所用芯片數量越少,系統(tǒng)的平均無故障時間越長。 而且,所用芯片數量越少,地址和數據總線在電路板上受干擾的可能性也就越小。 因此,系統(tǒng)的設計思想是在滿足功能的情況下爭取較少數量的芯片。 3、靈活的功能擴展 功能擴展是否靈活是衡量一個系統(tǒng)優(yōu)劣的重要指標之一。一次設計往往不能完 全考慮到系統(tǒng)的各個方面,系統(tǒng)需要不斷
11、完善以及進行功能升級。進行功能擴展時, 應該在原有設計的基礎上,通過修改軟件程序和少量硬件完成。對于本系統(tǒng)而言, 就是要求在系統(tǒng)硬件不變的情況下,能夠通過修改軟件程序,完成功能的升級和擴 展。 根據提出的系統(tǒng)設計方案,結合以上三條原則,確定了系統(tǒng)硬件的設計。計算 器主要由以下一些功能模塊組成:非編碼鍵盤模塊、運算模塊(單片機內部)和 LCD 液晶顯示模塊等。 該系統(tǒng)的硬件設計采用了模塊化的設計方法。AT89C51 單片機、LCD 液晶顯示屏 顯示電路和鍵盤電路是整個電路的核心,它們能實現系統(tǒng)的功能要求。 簡易計算器主要包括:鍵盤電路、運算電路和輸出顯示電路。 第二章 硬件模塊設計 在本設計中主
12、要用到的硬件:單片機 AT89C51、液晶顯示屏 LCD1602 、4*4 矩 陣鍵盤。 單片機 AT89C51 的硬件資源分配: (1)P3 口:作為輸入口,與鍵盤連接,實現數據的輸入; (2)P0、P2 口:作為輸出口(P2 口為高位,P0 口為低位) ,控制 LCD 液晶顯示 屏顯示數據的結果; (3)P1 口和部分 P3 口:作為液晶顯示屏 LCD1602 顯示輸出。 2.1 單片機 AT89C51 本設計所用單片機采用 AT89C51 單片機,它兼容于 MCS51 系列單片機,而且 具有 1000 次可擦寫的 FLASHMEMORY,方便于系統(tǒng)的開發(fā)以及參數的修改。盡管它是 8 位機
13、,但它的處理精度完全滿足系統(tǒng)的設計要求。該種單片機的最高頻率可達到 24MHz。在 12MHz 時,其處理速度完全達到設計要求,AT89C51 的實物圖及引腳圖如 圖 2-1 所示。 圖 2-1 單片機 AT89C51 實物圖及引腳圖 2.1.1 AT89C51 芯片的特點 AT89C51 是一種帶 4K 字節(jié)閃爍可編程可擦除只讀存儲器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低電壓,高性能 CMOS8 位微處 理器,俗稱單片機,他的特點如下: 1、與 MCS-51 兼容 2、1000 寫/擦循環(huán) 3、4K 字節(jié)可編程閃爍
14、存儲器 4、數據保留時間:10 年 5、全靜態(tài)工作:0Hz-24Hz 6、三級程序存儲器鎖定 7、128*8 位內部 RAM 8、32 可編程 I/O 線 9、兩個 16 位定時器/計數器 10、5 個中斷源 11、可編程串行通道 12、低功耗的閑置和掉電模式 13、片內振蕩器和時鐘電路 2.1.2 管腳說明 VCC:供電電壓。 GND:接地。 P0 口:P0 口為一個 8 位漏級開路雙向 I/O 口,每腳可吸收 8TTL 門電流。當 P0 口的管腳第一次寫“1”時,被定義為高阻輸入。P0 口能夠用于外部程序數據存儲 器,它可以被定義為數據/地址的第八位。在 FLASH 編程時,P0 口作為原
15、碼輸入口, 當 FLASH 進行校驗時,P0 口輸出原碼,此時 P0 口外部必須被拉高。 P1 口:P1 口是一個內部提供上拉電阻的 8 位雙向 I/O 口,P1 口緩沖器能接收 輸出 4TTL 門電流。P1 口管腳寫入“1”后,被內部上拉為高,可用作輸入,P1 口被 外部下拉為低電平時,將輸出電流,這是由于內部上拉的緣故。在 FLASH 編程和校 驗時,P1 口作為第八位地址接收。 P2 口:P2 口是一個內部提供上拉電阻的 8 位雙向 I/O 口,P2 口緩沖器可接收 和輸出 4 個 TTL 門電流,當 P2 口被寫“1”時,其管腳被內部上拉電阻拉高,且作 為輸入。當作為輸出時,P2 口的
16、管腳被外部拉低,將輸出電流,這是由于內部上拉 的緣故。當 P2 口用于外部程序存儲器或 16 位地址外部數據存儲器進行存取時,P2 口輸出地址的高八位。在給出地址“1”時,它利用內部上拉優(yōu)勢,當對外部八位地 址數據存儲器進行讀寫時,P2 口輸出其特殊功能寄存器的內容。P2 口在 FLASH 編程 和校驗時接收高八位地址信號和控制信號。 P3 口:P3 口管腳是 8 個帶內部上拉電阻的雙向 I/O 口,可接收和輸出 4 個 TTL 門電流。當 P3 口寫入“1”后,它們被內部上拉為高電平,并用作輸入。作為輸入, 由于外部下拉為低電平,P3 口將輸出電流(ILL) ,這是由于上拉的緣故。 P3 口
17、也可作為 AT89C51 的一些特殊功能口。 P3 口管腳備選功能如下: P3.0 RXD(串行輸入口) P3.1 TXD(串行輸出口) P3.2 /INT0(外部中斷 0) P3.3 /INT1(外部中斷 1) P3.4 T0(記時器 0 外部輸入) P3.5 T1(記時器 1 外部輸入) P3.6 /WR(外部數據存儲器寫選通) P3.7 /RD(外部數據存儲器讀選通) P3 口同時為閃爍編程和編程校驗接收一些控制信號。 RST:復位輸入。當振蕩器復位器件時,要保持 RST 腳兩個機器周期的高電平時 間。 ALE/PROG:當訪問外部存儲器時,地址鎖存允許的輸出電平用于鎖存地址的低 位字節(jié)
18、。在 FLASH 編程期間,此引腳用于輸入編程脈沖。在平時,ALE 端以不變的 頻率周期輸出正脈沖信號,此頻率為振蕩器頻率的 1/6。因此它可用作對外部輸出 的脈沖或用于定時目的。然而要注意的是:每當用作外部數據存儲器時,將跳過一 個 ALE 脈沖。如想禁止 ALE 的輸出可在 SFR8EH 地址上置 0。此時,ALE 只有在執(zhí)行 MOVX 時 ALE 才起作用。另外,該引腳被略微拉高。如果微處理器在外部執(zhí)行狀態(tài) ALE 禁止,置位無效。 /PSEN:外部程序存儲器的選通信號。在由外部程序存儲器取值期間,每個機器 周期兩次/PSEN 有效。但在訪問外部數據存儲器時,這兩次有效的/PSEN 信號
19、將不出 現。 /EA/VPP:當/EA 保持低電平時,則在此期間只管外部程序存儲器(0000H- FFFFH) ,不管是否有內部程序存儲器,注意加密方式 1 時,/EA 將內部鎖定為 RESET;當/EA 端保持高電平時,此時只管內部程序存儲器。在 FLASH 編程期間,此 引腳也用于施加 12V 編程電源(VPP) 。 XTAL1:反向振蕩放大器的輸入及內部時鐘工作電路的輸入。 XTAL2:來自反向振蕩器的輸出。 2.1.3 振蕩器特性 XTAL1 和 XTAL2 分別為反向放大器的輸入和輸出。該反向放大器可以配置為片 內振蕩器。晶體振蕩和陶瓷振蕩均可采用。如采用外部時鐘源驅動器件,XTAL
20、2 應 不接。輸入至內部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬 無任何要求,但必須保證脈沖的高低電平要求的寬度。 2.1.4 芯片擦除 整個 PEROM 陣列和三個鎖定位的電擦除可通過正確的控制信號組合,并保持 ALE 管腳處于低電平 10ms 來完成。在芯片擦操作中,代碼陣列全被寫“1”且在任 何非空存儲字節(jié)被重復編程以前,該操作必須被執(zhí)行。 此外,AT89C51 設有穩(wěn)態(tài)邏輯,可以在低到零頻率的條件下表示靜態(tài)邏輯,支 持兩種軟件可選的掉電模式。在閑置模式下,CPU 停止工作。但 RAM、定時器、計數 器、串口和中斷系統(tǒng)仍在工作。在掉電模式下,保存 RAM 的內容并且凍結振
21、蕩器, 禁止所用其他芯片功能,直到下一個硬件復位為止。 2.2 鍵盤控制模塊 計算器輸入數字和其他功能按鍵要用到很多按鍵,如果采用獨立按鍵的方式, 在這種情況下,編程會很簡單,但是會占用大量的 I/O 口資源,因此在很多情況下 都不采用這種方式,而是采用矩陣鍵盤的方案。矩陣鍵盤采用四條 I/O 線作為行線, 四條 I/O 線作為列線組成鍵盤,在行線和列線的每個交叉點上設置一個按鍵。這樣 鍵盤上按鍵的個數就為 44 個。這種行列式鍵盤結構能有效地提高單片機系統(tǒng)中 I/O 口的利用率。 2.2.1 矩陣鍵盤的工作原理 鍵盤可分為兩類:編碼鍵盤和非編碼鍵盤。編碼鍵盤是較多按鍵(20 個以上) 和專用
22、驅動芯片的組合;當按下某個按鍵時,它能夠處理按鍵抖動、連擊等問題, 直接輸出按鍵的編碼,無需系統(tǒng)軟件干預。 通用計算機使用的鍵盤就是編碼鍵盤。在智能儀器中,使用并行接口芯片 8279 或串行接口 HD7279 均可以組成編碼鍵盤,同時還可以兼顧數碼管的顯示驅動,其相 關的接口電路和接口軟件均可在芯片資料中得到。當系統(tǒng)功能比較復雜,按鍵數量 很多時,采用編碼鍵盤可以簡化軟件設計。 而非編碼鍵盤成本低廉。從簡易和成本角度出發(fā),本設計選用的是非編碼鍵盤。 如圖 2-2 所示。一般由 16 個鍵組成,在單片機中正好可以用一個 P 口實現 16 個按 鍵功能,這種形式在單片機系統(tǒng)中也最常用。其矩陣圖所對
23、應的仿真圖如圖 2-3 所 示。 圖 2-2 矩陣鍵盤內部電路圖 圖 2-3 矩陣鍵盤布局圖 2.2.2 鍵盤電路主要器件介紹 為了進一步節(jié)省單片機 I/O 口資源,我們在設計中使用了 MM74C922 芯片。 MM74C922 是一款 4*4 鍵盤掃描 IC,它可檢測到與之相連的 4*4 鍵盤的按鍵輸入,并 通過數據輸出口將按鍵相應的編碼輸出。其引腳圖如圖 2-4 所示。 圖 2-4 MM74C922 芯片引腳圖 MM74C922 引腳說明: (1) Y1-Y4(腳 1-腳 4):4*4 鍵盤第一列至第四列。 (2) X1-X4(腳 11、10、8、7):4*4 鍵盤第一行至第四行。 (3)
24、 DOA- DOD(Dataout A-D,腳 14-17):按鍵之 BCD 碼輸出,其中 DOA 為 LSB,DOD 為 MSB。 (4) VCC(腳 18):電源腳,+3V 至+15V (5) GND(腳 9):接地管腳 (6) OSC(Oscillator,腳 5):鍵盤掃描電路之頻率所需外加電容的引腳。 (7) KBM(Keyboard Mask,腳 6):內部消除開關彈跳電路所外加電容的引腳。 (8) OE(Output Enable,腳 13):芯片使能腳,接低電位可使芯片使能。 (9) DA(Data Available,腳 12):數據有效輸出腳。任一按鍵按下時,此腳 位會輸出
25、高電位,按鍵釋放后此腳又會恢復為低電位。 如圖 2-5 所示,在本設計中,計算器輸入鍵盤的 4 條行線、4 條列線分別連接 到 MM74C922 的 X1-X4、Y1-Y4 引腳,MM74C922 的數據輸出口與單片機的 P2 口相連, MM74C922 的 DA 引腳經過一個非門連接到單片機的/INT0 腳,當 MM74C922 檢測到鍵 盤輸入時,DA 產生高電平,與之相連的/INT0 檢測到低電平,給單片機一個中斷, 單片機從 P2 口的低四位讀入鍵盤上按下的按鍵值。 圖 2-5 鍵盤接口電路圖 2.3 LCD 顯示模塊 本設計采用 LCD 液晶顯示器來顯示輸入輸出數據。通過 D0-D7
26、 引腳向 LCD 寫指 令字或寫數據以使 LCD 實現不同的功能或顯示相應數據。LCD 引腳圖如圖 2-6 所示。 圖 2-6 LCD1602 引腳圖 LCD 分為帶背光和不帶背光兩種,基控制器大部分為 HD44780,帶背光的比不帶 背光的厚,在實際使用中是否帶背光并無多大差別,兩者尺寸差別如圖 2-7 所示。 圖 2-7 LCD 背光和不帶背光的尺寸對比圖 2.3.1 顯示電路 當系統(tǒng)需要顯示少量數據時,采用 LCD 液晶顯示屏進行顯示是一種經濟實用的 方法。P1 口作為液晶顯示的數據端口,P3.4-P3.6 口作為其控制端口,控制 LCD 液 晶顯示屏顯示輸出數據。 顯示電路圖如圖 2-
27、8 所示。 圖 2-8 LCD 液晶顯示電路 2.3.2 LCD1602 主要技術參數 顯示容量:162 個字符 芯片工作電壓:4.55.5V 工作電流:2.0mA(5.0V) 模塊最佳工作電壓:5.0V 字符尺寸:2.954.35(WH)mm 2.3.3 引腳功能說明 LCD 采用標準的 14 腳(無背光)或 16 腳(帶背光)接口,各引腳接口說明如 表 2-1 所示。 表 2-1 引腳接口說明表 編號符號引腳說明編號符號引腳說明 1VSS 電源地 9D2 數據 2VDD 電源正極 10D3 數據 3VL 液晶顯示偏壓 11D4 數據 4RS 數據/命令選擇 12D5 數據 5R/W 讀/寫
28、選擇 13D6 數據 6E 使能信號 14D7 數據 7D0 數據 15BLA 背光源正極 8D1 數據 16BLK 背光源負極 第 1 腳:VSS 為地電源。 第 2 腳:VDD 接 5V 正電源。 第 3 腳:VL 為液晶顯示器對比度調整端,接正電源時對比度最弱,接地時對比 度最高,對比度過高時會產生“鬼影”,使用時可以通過一個 10K 的電位器調整對 比度。 第 4 腳:RS 為寄存器選擇,高電平時選擇數據寄存器,低電平時選擇指令寄存 器。 第 5 腳:R/W 為讀寫信號線,高電平時進行讀操作,低電平時進行寫操作。當 RS 和 R/W 共同為低電平時可以寫入指令或者顯示地址,當 RS 為
29、低電平 R/W 為高電 平時可以讀忙信號,當 RS 為高電平 R/W 為低電平時可以寫入數據。 第 6 腳:E 端為使能端,當 E 端由高電平跳變成低電平時,液晶模塊執(zhí)行命令。 第 714 腳:D0D7 為 8 位雙向數據線。 第 15 腳:背光源正極。 第 16 腳:背光源負極。 2.4 運算模塊(單片機控制) AT89C51 單片機是在一塊芯片中集成了 CPU、RAM、ROM、定時器/計數器和多功 能 I/O 等一臺計算機所需要的基本功能部件。如果按功能劃分,它由如下功能部件 組成,即微處理器(CPU)、數據存儲器(RAM)、程序存儲器(ROM/EPROM)、并行 I/O 口、串行口、定時
30、器/計數器、中斷系統(tǒng)及特殊功能寄存器(SFR)。單片機是 靠程序運行的,并且可以修改。通過不同的程序實現不同的功能,尤其是一些特殊 的功能,通過使用單片機編寫的程序可以實現高智能、高效率以及高可靠性!因此 我們采用單片機作為計算器的主要功能部件,可以很快地實現運算功能。 另外系統(tǒng)還包括時鐘電路和復位電路。 第三章 軟件設計 3.1 功能介紹 實際運用中人們熟悉的計算器,其功能主要如下: 1、鍵盤輸入; 2、顯示數值; 3、加、減、乘、除四則運算; 4、對錯誤輸入和輸出的控制及提示。 3.2 系統(tǒng)流程圖 在軟件設計中程序分別要完成鍵盤輸入檢測、LCD 初始化及顯示、算術運算和 錯誤處理及輸出等功
31、能。對主程序進行初始化,其他的程序選擇模塊式的方式。首 先對每個模塊進行調試,當模塊調試成功后,逐一地加入主程序中,最后完成整個 軟件部分的設計。系統(tǒng)流程圖如圖 3-1 所示。 開始 初始化參數 初始化 LCD 顯示 有鍵輸入? 讀取鍵碼 LCD 顯示 數字鍵清零鍵功能鍵 狀態(tài)清零 輸入數值 數值送顯示緩沖 Y N 根據上次功能鍵和輸 入的數據計算結果 結果送顯示緩沖 本次功能鍵 圖 3-1 系統(tǒng)流程圖 3.3 程序 本設計程序采用 C 語言編程,程序分為多個模塊,由主程序、鍵值轉換和 LCD 系列程序等模塊組成。具體程序見附錄。 第四章 系統(tǒng)調試 4.1 軟件介紹 4.1.1 Keil uV
32、ision2 仿真軟件簡介 Keil uVision2 是德國 Keil 公司開發(fā)的基于 Windows 平臺的單片機集成開發(fā)環(huán) 境,它包含一個高效的編譯器、一個項目管理器和一個 MAKE 工具。其中 Keil C51 是一種專門為單片機設計的高效率 C 語言編譯器,符合 ANSI 標準,生成的程序代碼 運行速度極高,所需要的存儲器空間極小,完全可以與匯編語言媲美。Keil uVision2 的界面如圖 4-1 所示,Keil uVision2 允許同時打開、瀏覽多個源文件。 圖 4-1 Keil uVision2 的界面 4.1.2 protues 簡介 protues 軟件是英國 Labc
33、enter electronics 公司出版的 EDA 工具軟件。它不 僅具有其它 EDA 工具軟件的仿真功能,還能仿真單片機及外圍器件。它是目前最好 的仿真單片機及外圍器件的工具。雖然目前國內推廣剛起步,但已受到單片機愛好 者、從事單片機教學的教師、致力于單片機開發(fā)應用的科技工作者的青睞。Proteus 是世界上著名的 EDA 工具(仿真軟件),從原理圖布圖、代碼調試到單片機與外圍電 路協(xié)同仿真,一鍵切換到 PCB 設計,真正實現了從概念到產品的完整設計。它是目 前世界上唯一將電路仿真軟件、PCB 設計軟件和虛擬模型仿真軟件三合一的設計平 臺,其處理器模型支持 8051、HC11、PIC10
34、/12/16/18/24/30/DsPIC33、AVR、ARM、8086 和 MSP430 等, 2010 年已經增加了 Cortex 和 DSP 系列處理器,并持續(xù)增加其他系列處理器模型。 在編譯方面,它也支持 IAR、Keil 和 MPLAB 等多種編譯器,界面圖如圖 4-2 所示。 圖 4-2 protues 界面圖 4.2 軟件調試 4.2.1 軟件分析及常見故障 在此次設計中使用 Keil uVision2 和 Proteus 軟件仿真,其中使用 Keil uVision2 軟件匯編源程序,使用 Proteus 軟件對硬件電路進行模擬。正確連接電路 圖,使其能按照題目要求及設計初衷正
35、常工作。 從庫里正確拾取元器件,認真合理地連線,做到不缺件,不缺線,選取合適的 元件參考值,使其能正常工作。通過編譯,連接程序。使其生成.hex 文件,并連入 連好的 Proteus 圖中。測試該計算器是否能正常工作。若不能,首先要檢查有沒有 漏掉元器件,元器件是否都連接好。其次,要看元件各引腳是否都連接正確,有無 接反的。最后要看元件的參考值是否選擇合理,電源電壓是否能帶動元器件正常工 作。 常見故障: 1、邏輯錯誤:它是由設計錯誤或加工過程中的工藝性錯誤所造成的。這類錯誤 包括錯線、開路、短路等。 2、元器件失效:有兩方面的原因:一是器件本身已損壞或性能不符合要求;二 是組裝錯誤造成元件失
36、效,如電解電容、集成電路安裝方向錯誤等。 3、可靠性差:因其可靠性差的原因很多,如金屬化孔、接插件接觸不良會造成 系統(tǒng)時好時壞,經不起振動;走線和布局不合理也會引起系統(tǒng)可靠性差。 4、電源故障:若樣機有電源故障,則加電后很容易造成器件損壞。電源故障包 括電壓值不符合設計要求,電源引線和插座不對,功率不足,負載能力差等。 調試方法:包括多級調試和聯機調試。在調試過程中要針對可能出現的故障認 真分析,直至檢查出原因并排除。 本次硬件調試過程中,對所出現的問題進行了認真的分析和改正,最后能夠很 好的達到設計要求的效果。 系統(tǒng)仿真圖如圖 4-3 所示。 圖 4-3 系統(tǒng)仿真圖 4.2.2 仿真結果演示
37、 下面以加、減、乘和除分別做仿真演示: (1)加法:以 258 和 825 作為加數和被加數運算,結果為 1083。加法仿真結果圖 如圖 4-4 所示。 圖 4-4 加法仿真結果圖 (2)減法:以和作為被減數和減數運算,結果為。減法仿真結果圖如圖 4-5 所示。 圖 4-5 減法仿真結果圖 (3)乘法:以 694 和 123 作為乘數和被乘數運算,結果為 85362。乘法結果仿真圖 如圖 4-6 所示。 圖 4-6 乘法結果仿真圖 (4)除法:以 1250 和 5 作為被除數和除數運算,結果為 250。除法結果仿真圖如 圖 4-7 所示。 圖 4-7 除法結果仿真圖 由以上四種運算結果可知軟件
38、仿真均正確,沒有顯示錯誤。 4.3 硬件調試 在 protues 里面把硬件圖畫好,把所有元器件的參數都設置好,程序在 keil 里 面生成.hex 文件,然后在 protues 里單片機芯片中導入此文件,運行一切正常后開 始準備焊接硬件。在焊接硬件過程中首先得準備好所有必備的東西,比如所需元器 件和焊接所用工具等。在焊接前應先在面包板上把硬件插好調試,接通電源看能否 顯示出結果,如果元器件都是好的并且結果可以顯示出,就可以焊接了。如果顯示 不出來再檢查各個器件是否有損壞,并用萬用表挨個檢查,直至一切顯示正常再焊 接。 在焊接時要注意相鄰焊點不能粘在一起,連接線不能太長,并且注意焊點的虛 焊、
39、假焊。在使用電烙鐵時溫度不能太高也不能太低,一般在 350 度左右,溫度太 低容易形成冷焊點,太高則會燒壞電路板。 電路板焊接好以后首先測試一下各個元器件是否正常,焊點有無虛焊、連焊、 假焊等現象,檢查沒有問題以后接通電源查看 LCD 顯示是否正常,如果一切顯示沒 有問題把硬件妥善保管,防止不小心損壞。硬件電路實物圖如圖 4-8 所示。 圖 4-8 硬件電路實物圖 結束語 通過這次簡易計算器的設計,很大程度的提高了我的理解力和動手能力,也拓 寬了知識面。在圖書館和網上查閱資料使我了解了更多的資料,也方便了我們以后 的使用。在查詢的資料中讓我對單片機有了更深入的了解,能把學到的知識用活, 而不只
40、局限于理論方面。 在硬件制作過程中,當我把硬件都焊好以后接通電源 LCD 怎么都不顯示數字并 且在很短的時間內就會發(fā)熱,我查了焊接點和仿真圖都沒有問題,接著仔細查找了 LCD 顯示器各個管腳,發(fā)現兩個電壓管腳接反了,但在仿真時沒出現問題,而在實 物中出現了問題,是由于仿真元件都是理想化的,各個問題在實物中根據實際情況 就會出現。 編程時,充分使用了結構化的思想。這樣一來,因為語句較少,程序調試也比 較方便,功能模塊可以逐一地調試,充分體現了結構化編程的優(yōu)勢。當每個模塊都 完成時,將其功能互相整合就完成了整體的設計。經歷了從最初的不了解設計內容 到最后做出仿真結果的過程使我從根本上提高了對專業(yè)的
41、認識及興趣,對于我們工 科學生來說,學習了這些對我們以后工作有重大的影響。很感謝學校和老師給我們 提供了這樣的平臺,能使我們的動手能力增強。感謝老師對我們提供的幫助。 參考文獻 1 裴巖、劉利民單片機系統(tǒng)綜合設計與實踐J.內蒙古大學出版.2003.1 2 楊國林.C 語言程序設計J.內蒙古大學出版社.2001.9 3 郭天祥.新概念 51 單片機 C 語言程序J.電子工業(yè)出版社.2009.1 4 LED 與 LCD 顯示器的區(qū)別. 5基于單片機簡易計算器的設計. 6 基于單片機的簡易計算器設計. 7 計算器模擬系統(tǒng)設計. 8 計算器設計報告. 9 基于單片機的計算器. 10 AT89C51 單
42、片機簡介 11 Keil uVision2 仿真軟件的使用說明 Vision2 集成開發(fā)環(huán)境 12 44 矩陣鍵盤計算器設計 13 Henderson D. Calibration of fast sampling o scilloscopes. Meas SciTechnol.1990.1 14 Barry Ross. Hands-On Guide to Oscilloscopes, McGraw-Hill.1994,6 15 13 V. A. Krukov, R. V. Udovichenko.Debugging DVM ProgramsJ. Programming and Computi
43、ng Software,May.2001 附錄 #include #include #define uchar unsigned char #define uint unsigned int char translate(int keycode); void arithmetic(); void init_LCM(); void write_data(char ddata); void write_com(char command); void check_BF(); void clearLCD(); void display(long a); void dealerror(); void d
44、ataoverflow(); long x=0,y=0,num=0; int operators,input,iny=0; char key; char error5=error; char overflow8=overflow; sbit EN=P34; sbit R_W=P35; sbit RS=P36; main() EA=1; EX0=1; IT0=1; P2=0 xff; display(0); init_LCM(); write_data(0 x30); while(1) /*鍵值轉化為鍵盤上按鍵值函數*/ char translate(int keycode) switch(ke
45、ycode) case 0: return 7; break; case 1: return 4; break; case 2: return 1; break; case 3: return c; break; case 4: return 8; break; case 5: return 5; break; case 6: return 2; break; case 7: return 0; break; case 8: return 9; break; case 9: return 6; break; case 10: return 3; break; case 11: return =
46、; break; case 12: return /; break; case 13: return *; break; case 14: return -; break; case 15: return +; break; /*外部中斷 0 處理函數*/ void INT_0(void) interrupt 0 using 0 key=translate(P2 if(key=0) /判斷按下的鍵是否為數值 num=num*10+(key-0); if (operators0) y=num; iny=1; else x=num; if(num-) /當前數值是否超出限定范圍 display(n
47、um); else dataoverflow(); else switch(key) case c: x=0; y=0; num=0; iny=0; operators=0; display(num); break; case =: arithmetic(); iny=0; operators=0; num=0; break; case +: if (operators) arithmetic(); operators=1; num=0; break; case -: if (operators) arithmetic(); operators=2; num=0; break; case *: if (operators) arithmetic(); operators=3; num=0; break; case /: if (operators) arithmetic(); operators=4; num=0; break; /*算術運算函數*/ void arithmetic() if (iny) switch(operators) case 1: x=x+y; n
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《GB-T 25750-2010可鎖定氣彈簧技術條件》專題研究報告
- 《GBT 21571-2008危險品 爆燃轉爆轟試驗方法》專題研究報告
- 《GBT 14689-2008技術制圖 圖紙幅面和格式》專題研究報告
- 《GB 4706.63-2008家用和類似用途電器的安全 商用電漂洗槽的特殊要求》專題研究報告
- 道路安全基礎知識培訓課件
- 2025年抽血室工作總結暨工作計劃
- 2025-2026年湘教版九年級地理上冊期末試題庫(附含參考答案)
- 道路交通安全培訓教案課件
- 2025-2026年蘇教版八年級英語上冊期末試題庫(附含參考答案)
- 道德講堂交通安全課件
- 醫(yī)院檢查、檢驗結果互認制度
- 2026年高考化學模擬試卷重點知識題型匯編-原電池與電解池的綜合
- 2025青海省生態(tài)環(huán)保產業(yè)有限公司招聘11人筆試歷年參考題庫附帶答案詳解
- 學堂在線 雨課堂 學堂云 科研倫理與學術規(guī)范 期末考試答案
- 4M變化點管理記錄表
- Tickets-please《請買票》 賞析完整
- 《馬克的怪病》課件
- 部編版八年級道德與法治上冊《樹立維護國家利益意識捍衛(wèi)國家利益》教案及教學反思
- 基于單片機的智能家居控制系統(tǒng)設計
- 鍋爐大件吊裝方案
- 昆明醫(yī)科大學第二附屬醫(yī)院進修醫(yī)師申請表
評論
0/150
提交評論