




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第頁共18頁電子臺秤課程設計目錄TOC\o"1-3"\h\u目錄 1摘要 2ABSTRACT 3第1章前言 41.1設計目的 41.2設計意義 5第2章設計方案以及原理 62.1總體設計方案 62.2電子臺秤工作原理 6第3章硬件的方案設計 83.1基于AT89S52的控制電路 83.2傳感器 93.3信號處理電路 103.4A/D轉換器 103.5鍵盤輸入電路 113.6顯示電路 12第4章軟件設計以及程序編寫 134.1主程序流程圖 134.2子程序設計 144.2.1A/D轉換啟動及數據讀取程序設計 144.2.2鍵盤輸入控制程序及顯示程序設計 15第五章調試與仿真 175.1調試 175.2仿真 17總結 19致謝 20參考文獻 21摘要本次課程設計是以51系列單片機AT89S52為控制核心,實現電子秤的基本控制功能。首先通過了解電子臺秤的應用以及發展前景對本次設計有一個大概的認識,再通過制定總體設計方案以及了解其原理對本次設計有一個清晰的思路。本次設計的硬件電路包括AT89S52單片機、稱重傳感器、放大濾波電路、A/D轉換器、鍵盤輸入電路和LCD顯示電路。通過了解它們的工作原理以及工作環境,來完成電子臺秤的硬件部分設計;然后通過繪制主程序流程圖以及子程序的編寫來完成軟件部分設計;最后,對整體的調試和系統仿真來完成本次課程設計。關鍵詞:AT89S52單片機;A/D轉換器;LCD顯示器;ABSTRACTThecurriculumdesignisbasedon51seriesMCUAT89S52asthecontrolcore,realizethebasiccontrolfunctionsofelectronicscale.:thefirstelectronicplatformscalethroughtheapplicationanddevelopmentprospectofthisdesignhaveaprobablyunderstanding,againbymakingoveralldesignandunderstandtheprincipleofthisdesignhasacleartrainofthought.ThedesignofhardwarecircuitincludingAT89S52singlechipmicrocomputer,weighingsensor,amplifiedfiltercircuit,A/Dconvertercircuit,keyboardinputandLCDdisplaycircuit.Byunderstandingtheirworkingprincipleandtheworkingconditions,tocompletethehardwarepartdesignoftheelectronicplatformscale;Thenthroughmappingthemainprogramflowchartandthewritingofthesubroutinetocompletethesoftwarepartofthedesign;Finally,thedebuggingandanalysisoftheoveralldesigntocompletethecourse.Keywords:AT89S52singlechipmicrocomputer;A/Dconverter;LCDdisplay;第1章前言21世紀,電子產品變得越來越豐富,給人們帶來了很多很多的方便,其中電子秤成了人們生活中不可缺少的一部分。大大小小的市場電子秤能夠完成許多工作,為人們節省了時間,提高了工作效率。在超市里的一臺電子秤,它能很精確的稱出商品的重量,還能去除皮重,更主要的是,它其中預存了超市里商品的單價,當稱出商品的重量后,電子秤馬上就能算出價格,不管幾種商品都能一一累加,最后列出清單,可以說非常的智能化,而且非常的精確。近年來,電子秤已愈來愈多地參與到數據處理和過程控制中。現代稱重技術和數據系統已經成為工藝技術、儲運技術、預包裝技術、收貨業務及商業銷售領域中不可缺少的組成部分。隨著稱重傳感器各項性能的不斷突破,為電子秤的發展奠定了其礎,國外如美國、西歐等一些國家在20世紀60年代就出現了0.1%稱量準確度的電子秤,并在70年代中期約對75%的機械秤進行了機電結合式的電子化改造。稱重裝置不儀是提供重量數據的單體儀表,而且作為工業控制系統和商業管理系統的一個組成部分,推進了工業生產的自動化和管理的現代化,它起到了縮短作業時間、改善操作條件、降低能源和材料的消耗、提高產品質量以及加強企業管理、改善經營管理等多方面的作用。稱重裝置的應用已遍及到圍民經濟各領域,取得了顯著的經濟效益。因此,稱重技術的研究和衡器工業的發展各國都非常重視。50年代中期電子技術的滲入推動了衡器制造業的發展。60年代初期出現機電結合式電了衡器以來,經過40多年的不斷改進與完善,我國電子衡器從最初的機電結合型發展到現在的全電子型和數字智能型?,F今電子衡器制造技術及應用得到了新發展。電子稱重技術從靜態稱重向動態稱重發展:計量方法從模擬測量向數字測量發展;測量特點從單參數測量向多參數測量發展,特別是對快速稱重和動態稱重的研究與應用。通過分析近年來電子衡器產品的發展情況及國內外市場的需求,電子衡器總的發展趨勢是小型化、模塊化、集成化、智能化;其技術性能趨向是速率高、準確度高、穩定性高、可靠性高;其功能趨向是稱重計量的控制信息和非控制信息并重的“智能化”功能;其應用性能趨向于綜合性和組合性。電子秤是電了衡器中的一種,衡器是國家法定計量器具,是圍計民生、國防建設、科學研究、內外貿易不可缺少的計量設備,衡器產品技術水平的高低,將直接影響各行各業的現代化水平和社會經濟效益的提高。1.1設計目的設計目的是為了學習和鞏固知識,提高對所學應用基本理論分析和解決實際問題的能力,應設計并制作實際的模型實現電子秤要求的功能,從而達到并熟悉一個產品完整的開發流程和具體內容,提高實踐應用能力。1.2設計意義隨著生活水平的提高,商品的種類和樣式越來越來多,我們出門買東西無論是在超市還是在市場都經常會用到電子稱,電子稱在我們的日常生活中已經成為必不可少的工具,因此,有針對性地開發出一套有實用價值的電子秤系統,從技術上克服上述諸多缺點,改善電子秤系統在應用中的不足之處,具有現實意義。第2章設計方案以及原理電子秤的應用系統是由硬件和軟件所組成。硬件指單片機、擴展的存儲器、擴展的輸入輸出設備等部分;軟件是各種工作程序的總稱。硬件和軟件只有緊密配合、協調一致,才能提高系統的性能價格比。從一開始設計硬件時,就應考慮相應軟件的設計方法,而軟件設計是根據硬件原理和系統的功能要求進行的。2.1總體設計方案按照設計的基本要求,系統可分為三大模塊,數據采集模塊、控制器模塊、人機交互界面模塊。其中數據采集模塊由壓力傳感器、信號的前級處理和A/D轉換部分組成。轉換后的數字信號送給控制器處理,由控制器完成對該數字量的處理,驅動顯示模塊完成人機間的信息交換。此部分對軟件的設計要求比較高,系統的大部分功能都需要軟件來控制。在擴展功能上,本設計增加了一個過載、量程報警提示。前端信號處理時,選用放大、A/D轉換等措施,尤其在顯示方面采用具有字符圖文顯示功能的LCD顯示器。這種方案不僅加強了人機交換的能力,而且滿足設計要求,可以顯示購物清單、所稱量的物體信息等相關內容。結構簡圖如圖2-1。圖2-1結構簡圖目前單片機技術比較成熟,功能也比較強大,被測信號經放大整形后送入單片機,由單片機對測量信號進行處理并根據相應的數據關系譯碼顯示出被測物體的重量。由于系統需要的按鍵較多,因此要加一個鍵盤顯示管理芯片(ZLG7289)。單片機控制適合于功能比較簡單的控制系統,而且其具有成本低,功耗低,體積小算術運算功能強,技術成熟等優點。2.2電子臺秤工作原理當被稱物體放置在秤體的秤臺上時,其重量便通過秤體傳遞到稱重傳感器,傳感器隨之產生力-電效應,將物體的重量轉換成與被稱物體重量成一定函數關系(一般成正比關系)的電信號(電壓或電流等)。此信號由放大電路進行放大、經濾波后再由模/數(A/D)器進行轉換,數字信號再送到微處器的CPU處理,CPU不斷掃描鍵盤和各種功能開關,根據鍵盤輸入內容和各種功能開關的狀態進行必要的判斷、分析、由儀表的軟件來控制各種運算。運算結果送到內存貯器,需要顯示時,CPU發出指令,從內存貯器中讀出送到顯示器顯示,或送打印機打印。一般地信號的放大、濾波、A/D轉換以及信號各種運算處理都在儀表中完成。第3章硬件的方案設計根據設計要求以及系統所需要實現的功能,在設計系統時可以分成以下幾個部分:單片機控制模塊,前端信號采集、處理、轉換模塊,人機接口界面以及系統電源部分。3.1基于AT89S52的控制電路AT89S52是51系列單片機的一個型號,它是ATMEL公司生產的。AT89C52是一個低電壓,高性能CMOS8位單片機,片內含8kbytes的可反復擦寫的Flash只讀程序存儲器和256bytes的隨機存取數據存儲器(RAM),器件采用ATMEL公司的高密度、非易失性存儲技術生產,兼容標準MCS-51指令系統,片內置通用8位中央處理器和Flash存儲單元,功能強大的AT89C52單片機可為您提供許多較復雜系統控制應用場合。AT89S52有40個引腳,32個外部雙向輸入/輸出(I/O)端口,同時內含2個外中斷口,3個16位可編程定時計數器,2個全雙工串行通信口,2個讀寫口線,AT89C52可以按照常規方法進行編程,但不可以在線編程(S系列的才支持在線編程)。其將通用的微處理器和Flash存儲器結合在一起,特別是可反復擦寫的Flash存儲器可有效地降低開發成本。AT89S52有PDIP、PQFP/TQFP及PLCC等三種封裝形式,以適應不同產品的需求。主要引腳功能說明:P3引腳功能復用見下表:表3-1P3引腳功能復用P3.0串行通訊輸入(RXD)P3.1串行通訊輸出(TXD)P3.2外部中斷0(INT0)P3.3外部中斷1(INT1)P3.4定時器0輸入(T0)P3.5定時器1輸入(T1)P3.6外部數據存儲器寫選通WRP3.7外部數據存儲器寫選通RD3.2傳感器能感受規定的被測量,并按照一定規律轉換成可用輸出信號的器件或裝置。通常傳感器由敏感元件和轉換元件組成。其中敏感元件指傳感器中能直接感受被測量的部分,轉換部分指傳感器中能將敏感元件輸出量轉換為適于傳輸和測量的電信號部分?,F代科技的快速發展使人類社會進入了信息時代,在信息時代人們的社會活動將主要依靠對信息資源的開發和獲取、傳輸和處理,而傳感器處于自動檢測與控制系統之首,是感知獲取與檢測信息的窗口;傳感器處于研究對象與測控系統的接口位置,一切科學研究和生產過程要獲取的信息,都要通過它轉換為易傳輸與處理的電信號。因此,傳感器的地位與作用特別重要。為保證電子秤稱量結果的準確度,克服傳感器在低量程段線性度差的缺點。傳感器的量程應根據皮帶秤的最大流量來選擇。在實際工作中,要求稱重傳感器的有效量程在20%~80%之間.線性好,精度高。重量誤差應控制存±0.OIKg,又考慮到秤臺自重、振動和沖擊分量,還要避免超重損壞傳感器,根據設計需要,確定傳感器的額定載荷為1Kg,允許過載為150%F.S,精度為0.05%,最大量程時誤差±0.1kg,可以滿足本系統的精度要求。綜合考慮,本設計采用SP20C-G501電阻應變式傳感器,其最人量程為1Kg.稱重傳感器由組合式S型梁結構及金屬箔式應變計構成,具有過載保護裝置。由于惠斯登電橋具諸如抑制溫度變化的影響,抑制干擾,補償方便等優點,所以該傳感器測量精度高、溫度特性好、工作穩定等優點,廣泛用于各種結構的動、靜態測量及各種電子稈的一次儀表。該稱重傳感器主要由彈性體、電阻應變片電纜線等組成,其工作原理如圖3-1所示。圖3-1稱重傳感器原理圖3.3信號處理電路經由傳感器或敏感元件轉換后輸出的信號一般電平較低而且有干擾;經由電橋等電路變換后的信號亦難以直接用來顯示、記錄、控制或進行信號轉換。為此,測量電路中常設有模擬放大環節和整流濾波環節。圖3-2為濾波放大電路圖:圖3-2濾波放大電路圖圖中電容C5、C6用來濾除采樣信號電壓中的高頻噪聲,選用0.1uF的普通獨石電容;電容C7、C84用來濾除采樣信號電壓中的低頻噪聲,選用22uF的普通獨石電容。電阻R3、R4選用較小的阻值,因為采樣信號電壓值只有毫伏級,所以其阻值不宜太大,否則導致放大器由于輸入電流太小而放大效果不明顯。微弱信號Vi1和Vi2被分別放大后從AD620的第6腳輸出。A/D轉換器ICL7135的輸入電壓變化范圍是-2V~+2V,傳感器的輸出電壓信號在0~20mv左右,因此放大器的放大倍數在200~300左右,可將R9接成1K的滑動變阻器。由于ICL7135對高頻干擾不敏感,所以濾波電路主要針對工頻及其低次諧波引入的干擾。因為壓力信號變化十分緩慢,所以濾波電路可以把頻率做得很低。圖中的LM741的輸出端與AD620的地端相連,LM741的2腳與6腳相連構成電壓跟隨器,R15與正負電源相接,通過改變R15的阻值可使VO與RET之間的壓差變化,從而實現調零、去皮的功能。3.4A/D轉換器A/D轉換器選用的原則:1、A/D轉換器的位數。A/D轉換器決定分辨率的高低。在系統中,A/D轉換器的分辨率應比系統允許引用誤差高一倍以上。2、A/D轉換器的轉換速率。不同類型的A/D轉換器的轉換速率大不相同。積分型的轉換速率低,轉換時間從幾豪秒到幾十毫秒,只能構成低速A/D轉換器,一般用于壓力、溫度及流量等緩慢變化的參數測試。逐次逼近型屬于中速A/D轉換器,轉換時間為納秒級,用于個通道過程控制和聲頻數字轉換系統。3、是否加采樣/保持器。4、A/D轉換器的有關量程引腳。有的A/D轉換器提供兩個輸入引腳,不同量程范圍內的模擬量可從不同引腳輸入。5、A/D轉換器的啟動轉換和轉換結束。一般A/D轉換器可由外部控制信號啟動轉換,這一啟動信號可由CPU提供。轉換結束后A/D轉換器內部轉換結束信號觸發器置位,并輸出轉換結束標志電平。通知微處理器讀取轉換結果。6、A/D轉換器的晶閘管現象。其現象是在正常使用時,A/D轉換器芯片電流驟增,時間一長就會燒壞芯片??紤]到其他部分所帶來的干擾,12位A/D轉換器無法滿足系統精度要求。所以我們需要選擇14位或者精度更高的A/D轉換器。3.5鍵盤輸入電路鍵盤輸入是人機交互界面中重要的組成部分,它是系統接受用戶指令的直接途徑。鍵盤是由若干個按鍵開關組成,鍵的多少根據單片機應用系統的用途而定。鍵盤由許多鍵組成,每一個鍵相當于一個機械開關觸點,當鍵按下時,觸點閉合,當鍵松開時,觸點斷開。單片機接收到按鍵的觸點信號后作相應的功能處理。因此,相對于單片機系統來說鍵盤接口信號是輸入信號。矩陣式鍵盤又叫行列式鍵盤。如圖3-3,用I/O口線組成行、列結構,按鍵設置在行列的交點上。例如,用2×2的行列結構可構成4個鍵的鍵盤,4×4行列結構可構成16個鍵的鍵盤。因此,在按鍵數量較多時,可以節省I/O口線。相對于專用芯片式可以節省成本,且更為靈活。缺點就是需要用軟件處理消抖、重鍵等問題。圖3-3鍵盤輸入電路圖3.6顯示電路LCD液晶顯示器是LiquidCrystalDisplay的簡稱,LCD的構造是在兩片平行的玻璃當中放置液態的晶體,兩片玻璃中間有許多垂直和水平的細小電線,透過通電與否來控制桿狀水晶分子改變方向,將光線折射出來產生畫面。比LED要好的多,但是價錢較其貴。液晶顯示的原理是利用液晶的物理特性,通過電壓對其顯示區域進行控制,有電就有顯示,這樣即可以顯示出圖形。液晶顯示器具有厚度薄、適用于大規模集成電路直接驅動、易于實現全彩色顯示的特點,目前已經被廣泛應用在便攜式電腦、數字攝像機、PDA移動通信工具等眾多領域。由于本次設計的顯示模塊需要顯示多位數字,如果采用數碼管顯示的話將會占用多個單片機I/O口,使得電路變得更為復雜。所以選用液晶顯示,1602LCD符合基本條件,能夠采用。第4章軟件設計以及程序編寫程序數據的一種理想方法是結構化程序設計方法。4.1主程序流程圖主程序流程圖4-1給出了系統工作的基本過程,描述了信號的基本流向,起到一個向導的作用。圖4-1主程序流程圖4.2子程序設計系統子程序主要包括A/D轉換啟動及數據讀取程序設計、鍵盤輸入控制程序設計及顯示程序設計等。4.2.1A/D轉換啟動及數據讀取程序設計externucharcodeadcount2[3];externbitbAd;//已產生AD值externbitb_warnled;externbitb_steady;externbitb_up_last;externucharadup_count;externulongidataad_steady;//AD數據處理后的穩定值externucharadd_count;//AD累加計數器externulongidataadd_val;//AD累加值externucharwdcount;externucharadup_count;//AD異常值計數externucharaddcount3;externulongidataup_val;externulongidataadval;//AD芯片采樣值externulongidatalvbo[6];externucharidatafollow_time;//零位跟蹤時間externucharidatatime_weight;//重量為0時,消隱時間voidtime(void);ulongbuf_left(ulongtemp);voidad_processor(void){ulongtemp1;ulongtemp2;uchari;bitb_up;if(bAd){bAd=0;time();//時間計數器自減adval=adval>>4;add_val=add_val+adval;//傳感器累加濾波add_count++;if(add_count<addcount3)return;temp1=add_val/addcount3;//累加n次平均add_count=0;add_val=0;//傳感器累加清零i=(uchar)(temp1>>16)+1;4.2.2鍵盤輸入控制程序及顯示程序設計externbitb_keyok;//有按鍵產生標記externbitb_longdown;//長按下標記externucharkey_num;//鍵值externucharkey_temp;//臨時鍵值externucharkey_count;//鍵長按計數externucharkey_dly;//鍵去抖動延時externucharbeep_time;//蜂鳴時間voidkey_scan1();////按鍵松開或沒有按下處理/****************************************************/oiddisp_t1(void)interrupt3using1//顯示中斷程序{uchartemp;TR1=0;P_OE=1;//高阻態,禁止輸出if((disp_number==(5-bdf.dp))&(bdf.dp!=0))//這一位是否有小數點temp=0x08;//小數點段碼elsetemp=0;if(disp_number==6)//指示燈顯示不用查表P0=fun_led;//else{if((disp_number==fu_number)&&b_fuhao)temp=temp|0x40;if((disp_number==flash_num)&b_flash)//是否有閃爍位P0=0x0;elsedisp_number=0;if(beep_time)//是否要鳴叫{if(!TR0){buz0=~buz1;TR0=1;}beep_time--;}else{TR0=0;buz0=1;buz1=1;}//不鳴叫時置高,減小電流if(key_dly)//按鍵去抖動延時key_dly--;if(flash_num<6){if(flash_time)//閃爍計時flash_time--;else{b_flash=!b_flash;flash_time=20;}//時間到,置閃爍標記}}TH1=0xf8;TL1=0x18;TR1=1;}主程序的作用為程序初始化,計算單價木單重(單價和單重分別在定時中斷程序和INT0外部中斷程序中獲得),并時時顯示十進制的單重,單價,總價。設定T0為計數工作方式,T1為定時工作方式。其中R0為標志位寄存器當為OOH時為正常顯示方式。當為01H時為累計顯示方式,在T1定時中斷程序中。一秒鐘采樣物料重量(已轉成脈沖頻率),并賦值重量計算RAM區和顯示RAM區。在INTO外部中斷程序中,采樣單價并賦值單價計算。調試與仿真系統的調試工作環節在設計中的地位尤為重要,在硬件焊接布線與軟件程序編寫完成之后,就要對其進行調試,以保證編寫的軟件程序通過硬件能夠正常實現其功能,完成設計要求。5.1調試可采用萬用表測試。先用萬用表復核目測中認為可疑的連線或接點,查看它們的通斷狀態是否與設計規定相符。再檢查各種電源線與地線之間是否有短路現象。在短路問題排除后通電。上電時,首先檢查所有插座或器件引腳的電源端是否有符合要求的電壓值,接地端電壓值是否接近于零。然后,在斷電狀態下將芯片逐個插在電路板上的相應插座中,每插上一個做一遍上述的電壓檢查,特別要檢查電源到地是否短路,這樣就可以確定電源錯誤或與地短路發生在哪塊芯片上。在對各芯片、器件加電過程中,還要注意觀察芯片或器件是否出現過熱、變色、冒煙、異味等現象,如出現這些現象,應立即斷電,仔細檢查電源加載等情況,找出產生異常的原因加以解決。5.2仿真在protues的ISIS7.6sp4軟件環境下畫出電路原理圖,接下來就是將設計的程序在KeilC51μVision3開發集成環境上編譯成機器語言,進入Proteus的ISIS,鼠標左鍵點擊菜單“Debug”,選中“useromotedebugermonitor”,便可實現KeilC與Proteus連接調試。首先在Proteus中雙擊單片機AT89S52,將KeilC下編程生成的.HEX文件導入到AT89S52中,可在Proteus中單擊全速仿真運行按鈕,進行現象的查看,能清楚地觀察到芯片上每一個引腳的電平變化,紅色代表高電平,藍色代表低電平。仿真結果如下圖5-1所示;圖5-1系統仿真圖導入仿真文件,進入仿真界面。調節傳感器電路電壓并將其設定為0.00此時表示載物臺上沒有重物。此時LCD顯示器顯示單價0.000元/千克,總重量:0.000千克,總價:0.000元。
然后再上調電壓,表示載物臺上有重物,給予程序一個商品名稱,例如西瓜,輸入價格與重量。得到的結果為單價:3元/千克,總重量:4.1千克,總價:“12.1元”。本次設計的電子臺秤系統測量范圍是0~10千克,仿真參數:
實際重量測量值誤差
5kg5.1kg0.1kg
7kg7.1kg0.1kg
9kg9.3kg0.3kg總結經過大概一周的課程設計,我不僅學到了很多專業知識,更豐富了自己的實踐經驗以及實際動手能力。剛開始自己感覺電子秤的原理很簡單,應該不會費什么功夫就能完成。因為設計所需的知識點如傳感器原理、信號放大、模數轉換、單片機原理、I/O接口技術等都在大學課程里學過,實際的操作遠非理解原理這么簡單。譬如,同樣是單片機,型號卻有很多種,到底選擇哪種,為什么要選擇它而它又有什么好處都需要我更深入地了解多種機型及目前的流行趨勢,才能做出決定。又如,運用放大器時,我得根據實際任務要求計算出所需防大的倍數,并要考慮信號的濾波以及電路的功率負載等問題。認識到這些問題后,我開始不斷的出入圖書館查閱課題的相關資料,并充分運用網絡這個現代化工具,在各個網站上收集資料。經過努力,終于按照設計進度要求如期完成了電子臺秤的硬件設計任務。在做課程設計的過程中,雖然碰到了不少的困難,但是在老師的指導以及自己的努力下,終于取得了一定成果。雖然存在很多問題,比如系統設計不夠優化,有待改善??蓴U展更多電路,如日歷時鐘電路、通訊接口電路等。日歷時鐘電路可以顯示購貨日期,通訊接口電路可以與上位機(PC機)進行通訊,從而將大量的商品數據存于上位機,然后通過串口或并口通訊與電子稱相連,達到遠距離控制的目的??偟膩碚f,只要積極參與了課程設計,肯定是收獲匪淺。在課程設計中,我才發現,我們還有很多東西都不曾了解,有很多東西我們都還沒有熟練掌握。通過此次設計,使我將所學到的知識得到了系統化、貫穿成了一條線。致謝本電子臺秤的設計工作是在我的指導老師的精心指導和悉心關懷下完成的,在我的學業和設計工作中無不傾注著導師辛勤的汗水和心血。導師的嚴謹治學態度、淵博的知識、無私的奉獻精神使我深受的啟迪。從尊敬的導師身上,我不僅學到了扎實、寬廣的專業知識,也學到了做人的道理。在此我要向我的導師致以最衷心的感謝和深深的敬意。在我的設計(論文)撰寫過程中,老師也提出了寶貴的意見和建議,給了我莫大的幫助,在這里向他們表示深深的感謝。參考文獻[1]宋文續,揚帆.傳感器與檢測技術.北京:高等教育出版社,2005.4[2]常健生.檢測與轉換技術.北京:機械工業出版社,2004.6[3]凌志浩.智能儀表原理與設計技術.上海:華東理工大學出版社,2003.8[4]于永權.89系列(MCS-51兼容)Flash單片機原理及應用.北京:電子工業出版社,1997[5]李朝清.單片機原理及接口技術.北京:北京航空航天大學出版社,1996.8[6]丁元杰.單片微機原理及應用.北京:機械工業出版社,1999.8[7]周航慈.單片機應用程序設計技術.北京:北京航空航天大學出版社,2002.11[8]孫涵芳.單片機原理及應用(修訂版).北京:北京航空航天大學出版社,1996年[9]何立民.單片機應用技術選編(1)-(8).北京:北京航空航天大學出版社,2002[10]于海生.微型計算機控制技術.北京:清華大學出版社,1999年[11]閻石.數字電子技術基礎.第四版.北京:高等教育出版社,1997.12[12]《中國集成電路大全》編寫委員會TTL/CMOS分冊國防工業出版社1985數字時鐘課程設計目錄《數字時鐘設計》總說明…………………….21.硬件…………31.1AT89C51簡介………….31.2硬件電路總圖…………31.3LED燈顯示模塊……….31.4數字時鐘的構成………52.程序功能說明………………72.1主程序………………….72.2初始化………………….72.3顯示控制程序………….82.4匯編指令說明93.程序流程圖……………….113.1主程序流程圖…………113.2顯示控制流程圖………124.小結……………………….135.附錄……………………….147參考文獻……………………18《數字時鐘設計》總說明姓名:趙紫艷班級:測控1002班學號100650206本次課程設計通過對單片機的加深學習,實現了一個可以顯示時分秒變化并且可以調整時間的數字時鐘。通過對定時中斷原理、數碼管顯示原理、動態掃描顯示原理等,進一步學習、應用單片機匯編語言系統的實現了各種功能。從而使自身明白使用單片機匯編語言的效率、整體性問題。系統由AT89C51、獨立式按鍵、二極管、LED數碼管、等部分構成,能實現24小時制時、分、秒的時鐘顯示功能。同時也可進行時、分、秒的校準和八個LED二極管流水燈顯示。文章后附有本次課程設計系統電路原理圖及源程序,以供讀者參考。設計內容實現的功能:在數字鐘正常進行顯示時,其顯示周期為00:00:00至23:59:59,其中有三個按鍵,初始化之后程序開始運行。按下“秒設置”時鐘秒位自加1,加至60時向分位進1,按下“分設置”時鐘分位自加1,加至60時向時位進1,按下“時設置”時鐘秒位自加1,加至24時顯示00,并且在小時的十位是零但各位非零時,十位不顯示。T0為中斷程序,當調整時間時時鐘停止計時。其中八個顯示管分別為:時/分/秒的個,十位和兩個分隔符。P0口輸出段選信號,P2口輸出位選信號。P1.0為調時按鈕,P1.1為調分按鈕;晶振12M關鍵詞:單片機,AT89C51,共陰極LED數碼顯示器硬件硬件主要是電路的連接以實現程序。硬件有電路板,芯片,譯碼器,數碼管開關等組成。1.1AT89C51的簡介AT89C51是我們這次選擇的芯片。AT89C51是一種帶4K字節FLASH存儲器的低電壓、高性能CMOS8位微處理器,俗稱單片機。AT89C2051是一種帶2K字節閃存可編程可擦除只讀存儲器的單片機。AT89C51單片機為很多嵌入式控制系統提供了一種靈活性高且價廉的方案。管腳說明:1.2硬件總電路圖圖1-2總電路圖1.3LED燈顯示模塊采用LED燈可以方便的用不同的流水方式或單個LED燈來判斷系統的工作狀態,實現不同的顯示功能,是一種經濟又實用的方式。分為靜態現實和動態顯示。1.3.1LED顯示方式靜態顯示:系統在每一次顯示輸出后,能保持顯示不變,僅僅在待顯示數字需要改變時,才更新其數字顯示器中鎖存的內容,這種顯示占用CPU時間少,顯示穩定可靠。缺點是:當顯示位數較多時,占用I/O較多。動態顯示:CPU需定時地對每位LED顯示器進行掃描,每位LED顯示器分時輪流工作,每次只能使一位LED顯示,但由于人眼視覺暫留現象,仍感覺所有的LED顯示器都同時顯示。這種顯示的優點是使用硬件少,占用I/O少。缺點是:占用CPU時間長,只要不執行顯示程序,就立刻停止顯示。由于動態掃描用分時的方法輪流控制每個顯示器的COM端,使每個顯示器輪流點亮。在輪流點亮過程中,每位顯示器的點亮時間極為短暫,但由于人的視覺暫留現象及發光二極管的余輝效應,給人的印象就是一組穩定的顯示數據。這種電路連接簡單,而且所用器件少,只需要相關的軟件就能實現。因此我們選擇動態顯示。1.3.2數碼管連接方式數碼管連接方式有共陰極接法和共陽極接法)。共陰極的設計中所用的是7段六位共陰級數碼管,如果要實現動態顯示必須位碼(1-6)輪流通低電位,也就是片選,段碼控制數碼管的顯示.圖1-3數碼顯示器圖1-4共陰極接法圖1-5共陽極接法如圖1-3數碼管顯示原理圖所示,使用LED顯示器時,要注意是共陰還是共陽,要注意區分這兩種不同的接法。為了顯示數字或字符,必須對數字或字符進行編碼。七段數碼管加上一個小數點,共計8段。因此為LED顯示器提供的編碼正是一個字節。LED數碼顯示器通常用的七段數碼顯示器的內部有8個發光二極管,其中7個發光二極管組成了數字“8”,剩下一個發光二極管就是這位數字所帶的小數點。數碼管結構圖如圖1-2所示。各段碼位與顯示段的對應關系如表1。表1各段碼位的對應關系段碼位D7D6D5D4D3D2D1D0顯示段dpgfedcba表2七段LED的段選字碼(字形碼)顯示字符dpgfedcba段選碼011000000C0H111111001F9H210011000A4H310110000B0H41001000199H51001001092H61000001082H711111010F8H81010000080H91001000090H表2只是數字0~9的字形碼1.4數字時鐘的構成數字時鐘實際上是一個對標準頻率(1HZ)進行計數的計數電路.由晶體振蕩器電路,時間計數器電路和數碼管構成。系統原理圖如圖4所示單片機單片機數碼顯示器按鍵P3.0-5P1.0-4圖4系統原理圖2.程序功能說明程序完成顯示,時間變化和時間調整,以此來實現課程設計目的,這里主要說數碼管顯示的子程序2.1主程序ORG0000H;程序入口地址
LJMPSTART
ORG000BH;定時器0中斷入口地址LJMPTIMER_0
K1BITP1.0;定義調時按鍵
K2BITP1.1;定義調分按鍵K3BITP1.2;定義調秒按鈕
功能:設置程序地址入口,定時器0中斷入口地址,定義按鍵。2.2程序初始化START:MOVTMOD,#51H;定時器0,工作模式1
MOVTH0,#03CH
MOVTL0,#0B0H;賦初值,定時50ms
SETBEA;開中斷總開關
SETBTR0;開啟定時器0
SETBET0;定時器0中斷允許位
MOVR6,#0;用于控制走時的基準時鐘源,計中斷次數
MOVR5,#0;R5用于控制掃描按鍵的時間間隔
MOV20H,#0;秒個位寄存器清零
MOV21H,#0;秒十位寄存器清零
MOV22H,#0;分個位寄存器清零
MOV23H,#0;分十位寄存器清零
MOV24H,#0;時個位寄存器清零
MOV25H,#0;時十位寄存器清零
LJMPDISPLAY2.3DISPLAY顯示控制子程序功能:用動態的顯示方法,將當前的時間內容通過數碼管顯示出來。DISPLAY:
MOVDPTR,#TABLE在TABLE中尋址
MOVA,20HA為偏移量。
MOVCA,@A+DPTR查表指令,(尋址數組內的第A個元素,這里的A等于20H)
MOVP0,A累加器A的值給P0即秒的個位值
CLRP2.7
LCALLDELAY
SETBP2.7;顯示秒個位
MOVA,21H
MOVCA,@A+DPTR查表指令,(尋址數組內的第A個元素,這里的A等于21H)
MOVP0,A
CLRP2.6
LCALLDELAY
SETBP2.6;顯示秒十位
MOVA,#0BFH
MOVP0,A
CLRP2.5
LCALLDELAY
SETBP2.5;顯示“-”
MOVA,22H
MOVCA,@A+DPTR查表指令,(尋址數組內的第A個元素,這里的A等于22H)
MOVP0,A
CLRP2.4
LCALLDELAY
SETBP2.4;顯示分個位
MOVA,23H
MOVCA,@A+DPTR
MOVP0,A
CLRP2.3
LCALLDELAY
SETBP2.3;顯示分十位
MOVA,#0BFH
MOVP0,A
CLRP2.2
LCALLDELAY
SETBP2.2;顯示“-”
MOVA,24H
MOVCA,@A+DPTR查表指令,(尋址數組內的第A個元素,這里的A等于24H)
MOVP0,A
CLRP2.1
LCALLDELAY
SETBP2.1;顯示時個位
MOVDPTR,#TABLE1;該位使用TABLE1以消除前置0
MOVA,25H
MOVCA,@A+DPTR查表指令,(尋址數組內的第A個元素,這里的A等于25H)
MOVP0,A
CLRP2.0
LCALLDELAY
SETBP2.0;顯示時十位
2.4匯編指令說明1.LCALL長調用指令可以調用64kb范圍內程序存儲器中的任何一個子程序。先把程序計數器pc加3獲得下條指令的地址(也就是斷點地址),并把它壓入堆棧(先低四位后高四位),同時把堆棧指針加2.接著把指令的第二個和第三個字節(A15-A8,A7-A0)分別裝入pc的高位和低位中,然后從pc中指出的地址開始執行程序。本指令執行后不影響任何標志。如:LCALLDELAY就是調用延時子程序.2MOVCMOVC是c51單片機匯編中的查表指令。在匯編中,MOVC指令是表示程序存儲器里的內容和別的存儲單元進行傳送的,主要是用在累加器A和程序存儲器的數據傳送。如:MOVCA,@A+DPTR3.匯編指令CLRCLRA//累加器A被賦零值,此時為邏輯運算指令。CLRC//程序狀態寄存器PSW中的CY位狀態清零,此時為位操作指令。4.設置目標程序起始地址偽指令ORG格式:【標號:】ORG地址(十六進制)功能:規定其后面的目標程序或數據塊的起始地址。如:ORG0000H;程序入口地址為0000H定義字節偽指令DB
格式:【標號:】DB項或項表其中項或項表指一個字節數據,或用逗號分開的字節數據串,或以引號括起來的字符串。如:ORG2000HTAB1:DB30H8AH73DB‘5’’A’3.程序流程圖流程圖能更好的更直觀的反應程序的執行過程順序。可以更清楚地了解程序。3.1主程序流程圖主要反映的是整個程序的大體過程。開始開始初始化初始化T0,T1設為16位定時器T0,T1設為16位定時器T0允許中斷T0允許中斷調用顯示子程序調用顯示子程序是否按下鍵?是否按下鍵?N進入功能程序Y進入功能程序3-1主程序流程圖3.2顯示控制子程序流程圖數碼管顯示的實現過程,尋址然后輸入內容求時分秒的個十位,進入片選過程最后顯示時分秒的個位,由于小時的十位顯示如果個位非零而十位是零則十位不顯示。流程圖如下:開始開始求時/分/秒的個、十位求時/分/秒的個、十位片選片選顯示時/分/秒的個位顯示時/分/秒的個位延時消影延時消影顯示時/分/秒的十顯示時/分/秒的十位顯示小數點顯示小數點結束結束3-2數據顯示流程圖4.小結通過七天的單片機課程設計學到很多東西。在這段時間我們上網查找了很多資料,多次對比最終才確定方案。我們組三個人是數字時鐘的設計。分工明確,我主要負責顯示的子程序。相對來說要對數碼管顯示要清楚。先要學習數碼管的數字顯示,需要學習數碼管的共陰極接法(共陰極接法相對簡單),從圖書館查資料,網上查看原理圖,最終了解。還要了解匯編指令的意思,要理解每一條指令的目的,然后跟搞軟件的隊友一起研究沒各個接口的作用和分配接口。最終確定各自負責的程序塊,然后自己查資料編寫。我主要是數字顯示塊,用AT89C51芯片,P2.0~P2.7主要傳輸顯示時分秒的個位十位和分隔符,最后顯示格式:23-59-59(小時十位如果為0則不顯示)在此次課程設計中我發現了自己知識的不足,通過一周的學習、實踐,我學到了很多東西。通過此次課程設計的教學實踐,進一步學習、掌握單片機應用系統的有關知識,加深了解單片機的工作原理。初步掌握簡單單片機應用系統的設計、制作、調試的方法。提高動手實踐能力。通過這次對數字時鐘的設計,讓我系統的了解和學會應用單片機匯編語言來對所需實現的功能進行編程。這次課程設計也再次讓我看到理論與實踐的差別和聯系,理論固然重要,然而我們要在實踐中發現錯誤,并解決錯誤,也提高了自己的動手能力和實際解決問題的能力。我的另一個收獲是態度端正,不僅僅是做課程設計,無論是做什么研究,都必須要有一種認真嚴謹的學習態度,要獨立思考,獨立完成,認真編寫程序了解每條指令的目的。這些都是對我們自身能力的一種培養,在以后的學習甚至工作中,很多東西都只能靠自己去獨立思考完成,因此我們也藉此學會了一種獨立思考的學習態度。無論最后的結果是怎樣,我參與了,并且我有收獲,這就夠了。在這幾天可以說是廢寢忘食的課程設計過程中,我收獲了許多我理解團體的力量。5.附錄程序清單ORG0000H;程序入口地址
LJMPSTART
ORG000BH;定時器0中斷入口地址
LJMPTIMER_0
K1BITP1.0;定義調時按鍵
K2BITP1.1;定義調分按鍵K3BITP1.2;定義調秒按鈕
START:MOVTMOD,#51H;定時器0,工作模式1
MOVTH0,#03CH
MOVTL0,#0B0H;賦初值,定時50ms
SETBEA;開中斷總開關
SETBTR0;開啟定時器0
SETBET0;定時器0中斷允許位
MOVR6,#0;用于控制走時的基準時鐘源,計中斷次數
MOVR5,#0;R5用于控制掃描按鍵的時間間隔
MOV20H,#0;秒個位寄存器清零
MOV21H,#0;秒十位寄存器清零
MOV22H,#0;分個位寄存器清零
MOV23H,#0;分十位寄存器清
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業專利工作管理制度
- 京東自營客服管理制度
- 云浮學校膳食管理制度
- 二級公司三級管理制度
- 中學考務工作管理制度
- 企業運營戰略管理制度
- ABC高危藥管理制度
- 全球高端醫療器械技術趨勢解讀
- 倉庫來貨現場管理制度
- 從事測繪活動管理制度
- 學校食堂食材配送服務方案(肉類、糧油米面、蔬菜水果類)
- 信用修復申請書
- 人教版初中物理實驗目錄詳表
- 糖尿病周圍血管病變課件
- (完整版)政府工程項目代建管理方案(范本)
- 2023年江蘇省蘇州大學醫學部藥學院統招博士后招收(共500題含答案解析)高頻考點題庫參考模擬練習試卷
- 2023年全國高考語文乙卷作文“一花獨放不是春百花齊放春滿園”寫作
- 《國家中藥飲片炮制規范》全文
- 合作方案介紹文案
- 年部級優課馬克思主義在中國的傳播
- 檢驗科生物安全防護知識培訓試題及
評論
0/150
提交評論