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

正文內容

電子信息技術畢業(yè)設計論文-文庫吧

2025-06-12 15:17 本頁面


【正文】 片機的應用幾乎無處不在。從形形色色的家用電器、電子玩具、數碼產品,到各種醫(yī)療器械、智能儀器儀表、通信設備,大到航空航天、雷達、導彈等現代化武器裝備,單片機的身影無處不在。復雜的工業(yè)控制系統中甚至有數百臺單片機在同時工作。單片機的應用從根本上改變了傳統的控制系統的設計思想和設計方法,可以說,單片機技術的出現和發(fā)展給現代電子技術和控制領域帶來了一場新的革命。以往由硬件電路實現的大部分控制功能現在都能夠使用單片機通過軟件方式來實現,這種以軟件取代硬件并能夠提高系統性能的微控制技術,隨著單片機應用的推廣普及,不斷發(fā)展,日益完善。因此,學習單片機,掌握其應用和開發(fā)技術,也成為當今職業(yè)院校電子信息專業(yè)的學生必須具備的一項基本技能。下面談談單片機的發(fā)展情況及其常用系列。雖然單片機出現的歷史并不長,至今也不到四十年的時間,但其發(fā)展卻十分迅猛。1976年,美國的Intel公司在8位微處理器的基礎上首先研制成功了最早的單片機產品——MCS48系列單片機,這是一種低檔的8位單片機,但它以其體積小、功能全、價格低、容易嵌入到其他控制產品中等特點得到了廣泛的應用?,F在MCS48系列單片機已經完全退出了歷史舞臺。20世紀80年代,Intel公司在總結MCS48系列單片機的基礎上推出了8位單片機的第二代產品——MCS51系列單片機。雖然它仍然是8位單片機,但其功能有了很大的增強。其系列產品包括基本型8031/8051/8751/89580C31/80C51,增強型8032/8052,改進型8044/8344/8744等,其中80C31/80C51采用CHMOS工藝制造,功耗更低。上述單片機產品的內核均是8051內核,它們是高檔的8位單片機。由于Intel公司主要致力于計算機的CPU的研究和開發(fā),所以該公司在推出MCS51體系結構后不久,開放了8051內核技術,授權一些廠商以MCS51系列單片機為核心生產各自的單片機,為單片機的發(fā)展起了很大作用。隨后世界各大半導體公司依靠自己的優(yōu)勢,爭相研究和開發(fā)單片機,發(fā)展了MCS51單片機,創(chuàng)造了許多各具特色的單片機產品,成為事實上的8位單片機主流和經典。這些單片機統稱MCS51系列單片機,它們與MCS51單片機兼容,又各具特點。目前,全世界生產單片機的廠家不計其數,單片機的型號也五花八門。值得一提的是,本設計中所采用的AT89S52單片機是Atmel公司的產品,它擁有與MCS51單片機同樣的內核和引腳排列,它除了具有和MCS51單片機的全部功能外,還內置了一些非常實用的功能。例如,它采用Flash ROM、支持ISP(在系統可編程)功能,可以反復快速擦寫,因此程序寫入和調試非常方便,使得我們在寫入程序時不需再依靠傳統的編程器,只需使用它所支持的專用ISP軟件就可輕易將程序寫入,它改變了單片機應用系統的結構模式和開發(fā)運行條件,此外它還增加了一些外部接口功能,內置有看門狗。AT89S52是目前占有較大市場份額、性能卓越的典型的51系列單片機。AT89S52單片機的主要參數如下:l 8KB在系統可編程Flash ROM存儲器。l 片內256B RAM存儲器。l 工作電源電壓:~。l 可重復擦寫1000次。l 時鐘頻率0Hz~33MHz。l 加密結構:三級。l 可編程并行I/O口:48位。l 定時/計數器:3個16位可編程定時/計數器。l 中斷源:8個可編程中斷源。l 全雙工UART串行通道。l 具有低功耗空閑工作模式和掉電保持模式。l 內置看門狗定時器和復位電路。l 雙數據指針。 51單片機引腳功能介紹單片機就是一塊集成電路,在使用其之前,必須先了解其外部引腳功能。51單片機有多種封裝方式,下面以DIP40封裝為例介紹其引腳功能。DIP40封裝的AT89S52單片機實物圖如圖31所示。圖31 DIP40封裝的AT89S52單片機實物圖由于受到集成電路芯片引腳數目的限制,許多引腳具有雙重功能。AT89S52單片機的引腳排列如圖32所示。按其功能類別來劃分,這40個引腳可分為以下四類:電源引腳、時鐘引腳、I/O接口引腳、編程控制引腳。各引腳功能介紹如下。(1) 電源引腳Vcc和GND集成電路都需要電源供電才能正常工作,單片機也不例外。采用DIP40封裝的AT89S52單片機的第40腳Vcc為電源正極輸入端,一般接+5V,第20腳GND為電源負極輸入端,接電源負極,也作為電路中的公共接地端。圖32 DIP40封裝的AT89S52單片機外部引腳圖(2) 時鐘引腳XTAL1和XTAL2第19腳XTAL1為片內振蕩電路輸入端,第18腳XTAL2為片內振蕩電路輸出端。在使用片內時鐘發(fā)生電路時,這兩個引腳用于外接石英晶體和振蕩電容(取值一般為10p~30p),此時晶振頻率即為時鐘振蕩頻率;在使用片外時鐘電路時,這兩個引腳用于外接外部時鐘源。需要說明的是:本設計采用單片機內部時鐘振蕩電路,所以這兩個引腳外接石英晶體和振蕩電容。為便于計算定時器的初始值及定時時間,晶振頻率為12MHz。(3) 并行I/O接口引腳AT89S52單片機共有4個8位并行I/O口,分別為P0、PPP3(字母P為英文單詞Port(意為“端口”)的第一個字母),每個I/O口均有8位,(m=0,1,2,3;n=0,1,2,3,4,5,6,7),在用C語言寫程序時則應寫成Pm^n的形式。P0口(第39~30腳,即最低位,即最高位,其余依此遞推)為8位雙向三態(tài)I/O口。值得注意的是,P0口內部沒有上拉電阻,不能正常輸出高電平,因此P0口在作為通用I/O口作基本輸入輸出使用時必須外接上拉電阻,否則應輸出高電平時為高阻態(tài),無法正常輸出高電平。上拉電阻阻值一般取10KW。P0口除了作為I/O口使用外,在系統擴展時還作為低8位地址總線和數據總線分時復用。本設計中的1602液晶顯示器的數據總線就是與P0口連接的,已外接上拉電阻。P1口(第1~8腳,即最低位,即最高位,其余遞推)為8位準雙向并行I/O口。P1口內部已接有上拉電阻,故在使用時無需再接上拉電阻。P1口功能較為簡單,僅作基本I/O口使用,沒有第二功能。本設計中用P1口作為矩陣式按鍵接口使用。P2口(第21~28腳,即最低位,即最高位,其余遞推)為8位準雙向并行I/O口。P2口內部也已接有上拉電阻,故在使用時無需再接上拉電阻。P2口除了作為I/O口使用外,在系統擴展時還作為高8位地址總線使用。P3口(第10~17腳,即最低位,即最高位,其余遞推)作為第一功能使用時為普通的8位并行I/O口,在使用時也無需再接上拉電阻。需要強調的是:P3口的每個引腳又各自具有非常重要的第二功能。P3口的每個引腳的第二功能如表31所示。注意:P3口每個引腳各自具有的第二功能都是比較重要的控制信號,在實際應用中應優(yōu)先滿足第二功能使用需要,然后再用剩余的口線作為數據的輸入和輸出使用。由于本設計中不涉及到P3口第二功能的使用,故不再對P3口的第二功能作詳細介紹。以上四個I/O口既可字節(jié)操作(8位同時并行輸入輸出),亦可位操作(即每根口線均可獨立控制)表31 AT89S52單片機P3口的第二功能引腳名稱第二功能功能描述RXD串行數據輸入TXD串行數據輸出外部中斷0中斷請求輸入外部中斷1中斷請求輸入T0定時/計數器0外部時鐘輸入T1定時/計數器1外部時鐘輸入外部RAM寫選通信號外部RAM讀選通信號(4) 編程控制引腳第9腳RST/Vpd為復位信號輸入端。當RST端保持兩個機器周期以上的高電平時即可使單片機進入復位狀態(tài),完成一系列初始化操作。單片機復位時,使片內各特殊功能寄存器的內容復位到初始狀態(tài),程序計數器PC的值歸零,即指向ROM的第一個單元。復位操作還使4個并行I/O口的每根口線都置為高電平狀態(tài)。除作為復位信號輸入外,該引腳也具有不太常用的第二功能,即作為片內RAM的備用電源輸入端。一旦電源斷電或者電壓降到一定值時,可通過該引腳為片內RAM供電,以保護片內RAM中的數據不丟失,且上電后能夠繼續(xù)工作。第29腳為外部ROM的讀選通信號,當訪問片外擴展ROM時,只有該引腳為低電平有效信號,才能選通片外程序存儲器對其進行讀操作。本設計中無外接擴展ROM,不涉及對該引腳的使用,故懸空。第30腳ALE/為地址鎖存使能/片內ROM編程脈沖信號輸入端。在單片機擴展外部存儲器時,該引腳作第一功能使用,用于控制把P0口提供的低8位地址送鎖存器鎖存起來,以實現低8位地址和數據的隔離。在沒有訪問外部存儲器時,該引腳以時鐘周期頻率的6分頻固定頻率輸出,因此可作為外部時鐘,或可作為外部定時脈沖使用。該引腳的第二功能為片內ROM的編程脈沖輸入端。這是為兼容以往的低版本單片機而設置的。以往低版本單片機的片內ROM要靠編程脈沖才能將程序寫入,而AT89S52支持ISP功能,無需編程脈沖輸入。本設計中既沒有擴展外部存儲器,往片內ROM寫入程序時也無需編程脈沖輸入,故不涉及該引腳的使用,故閑置。第31腳/Vpp具有雙重功能。其第一功能為訪問片內、片外ROM的控制信號,當該引腳接低電平時,CPU對ROM的訪問限定在片外ROM(對于片內沒有ROM的單片機,如8031,CPU只能訪問片外ROM,則該引腳一直是接低電平的);當該引腳接高電平時,CPU對ROM的訪問方式為,如果地址不超過片內ROM的存儲單元范圍,則訪問片內ROM(低端地址),當地址信號所標志的存儲單元超出片內ROM范圍時(高端地址),則自動延伸至片外ROM(即只能訪問片外ROM的高端存儲單元)。該引腳的第二功能Vpp用于對片內含有EPROM的單片機(如8751),對其內部EPROM寫入程序時作編程電壓輸入端。本設計中采用的AT89S52單片機片內含有8KB Flash ROM,其存儲容量已能滿足需求,無需擴展片外ROM,且AT89S52單片機支持ISP(在系統可編程)功能,無需編程電壓輸入,故此引腳直接接高電平(與第40腳電源正極相連),僅限于對片內程序存儲器的訪問。 由已知日期推算星期幾數碼日歷鐘顯示的年份如果是閏年,則2月為29天,否則為28天。在本設計任務中,無論是日期的調整,還是星期幾的推算,都涉及到閏年的判斷。查閱相關資料可知,如果一個年份是閏年,則該年份必然滿足以下兩個條件其中之一:(1) 年份是4的整數倍但不是100的整數倍;(2) 年份是400的整數倍。只要年份能滿足以上兩個條件其中之一,便可判定是閏年,否則不是閏年。于是,不難寫出判斷一個年份是否閏年的函數如下: bit leap(int year) //判斷是否閏年函數{ return(year%4==0amp。amp。year%100!=0||year%400==0)。 }//閏年的條件該函數的類型為C51中擴展的bit型(即位類型),這種類型的函數的返回值只能是0或1,不能為其它值。具體到本函數,若年份能滿足閏年的條件則返回1,否則返回0。我們在日常生活中經常會遇到這樣的問題,忘記了某年某月某日是星期幾,特別是一些重大節(jié)日或是一些值得紀念的日子,這就是星期幾的推算問題。那么,如何由一個已知日期推算出是星期幾呢?人們一般會采用這樣的方法:從一個已知星期幾的某天開始推算,先計算已知星期幾的這一天距要推算的那天共相差幾天,由于星期是7天一輪回的,故可以將相差的天數除以7取余數,再用已知的那天星期幾加上余數,就可以推算出要計算的這天是星期幾了。在此,我們也采用類似的方法進行推算。已知公元元年1月1日正好是星期一,那么,只需計算出從公元元年1月1日到要推算的這一天總共多少天(s),再用天數s除以7取余數,余0則說明正好夠整數個星期,則要推算的這一天正好就是一個星期的最后一天,也就是星期日;余1則說明整數個星期還多一天,那么要推算的這一天就是星期一了;依次類推,余2就是星期二,余3就是星期三.……。但是我們在計算天數時會發(fā)現由于中間會經歷平年(365天)、閏年(366天),每年的不同月份天數也不相同,這樣算來,計算量是很大的,計算也十分不便。有沒有改進的方法呢?我們不妨這樣來考慮:如果一個年份是平年,則該年有365天,也就是52個星期多一天;如果一個年份是閏年,則該年有366天,也就是52個星期多兩天;于是,對于以前的年份,如果是平年,則只計為一天(扣除其中的整數個星期),同理,如果是閏年,則計為兩天。這樣一來,則計算量大大減少。再進一步,把要推算的這一年之前的所有年份都先按平年計算,則之前有多少年,就有多少天(一個平年只計一天,其中的整數個星期已扣除)。設要推算的年份為y,則之前有y1個年份,就計為y1天。其中y1個年份中有若干個年份是閏年,由于閏年比平年多一天(平年2月28天,閏年2月29天,閏年和平年的其它相應月份的天數是一樣的,只有2月份不同),則需再加上閏年的個數,于是可以算出y年之前有(y1) +(y1)/4(y1)/100+(y1)/400天。注意:先把之前y1年中凡是4的整數倍的年份都暫按閏年計算,然后再去掉是100的整數倍的年份,再加上是400的整數倍的年份,即可算出y年之前有之少天了(整數個星期已扣除)。然后再計算要推算的這一天是當年的第多少天,這個不難計算。如果要推算的日子在該年的前兩個月,則與該年是否閏年無關;如果是2月份以后的月份,可以先按平年計算,如果是閏年,則再加上一天(因為閏年的2月份比平年的2月份多一天)。這樣,就可以對要推算的日子所在的月份進行測試,并按各種情況計算出要推算的這一天所在的月份之前當年已過了多少天,再加上要推算的這一天是當月的第幾天,就可以算出要推算的這一天是當年的第多少天了。用之前所算出的當年之前的總天數加上要推算的這一天是當年的多少天,如此計算出總天數,再用這個總天數除以7取余數,余0則是星期日,余1則是星期一,余2則是星期二,……如此等等。由已知日期推算星期幾的函數的參考源代碼如下:char tuisuan(int y, char m, char d) //根據已知日期推算
點擊復制文檔內容
畢業(yè)設計相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1