




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上通達(dá)學(xué)院2016/2017 學(xué)年 第 一 學(xué)期課程設(shè)計(jì) 實(shí)驗(yàn)報(bào)告模 塊 名 稱 51單片機(jī)課程設(shè)計(jì) 專 業(yè) 通信工程 學(xué) 生 班 級(jí) 學(xué) 生 學(xué) 號(hào) 學(xué) 生 姓 名 陳揚(yáng) 指 導(dǎo) 教 師 林建中 設(shè)計(jì)題目跑步機(jī)控制器設(shè)計(jì)任務(wù)要求基本要求:l 觀察和了解一臺(tái)實(shí)際跑步機(jī)的功能和狀態(tài),設(shè)計(jì)一模擬跑步機(jī)l 用鍵設(shè)定跑步速度(用兩位LED/LCD)l 設(shè)計(jì)啟動(dòng),停止,加速/減速,升高/降底,緊急停止等鍵l 用LED/LCD合理安排數(shù)據(jù)顯示l 具有倒計(jì)時(shí)運(yùn)行功能發(fā)揮部分:l 速度變化編成運(yùn)行模式l 高度變化編成運(yùn)行模式l 速度+高度混合編程運(yùn)行模式l 計(jì)數(shù)熱量消耗參數(shù)實(shí)驗(yàn)設(shè)備及軟
2、件1. 微型計(jì)算機(jī)2. Proteus;Keil3. 德飛萊51單片機(jī)實(shí)驗(yàn)板同組人員學(xué)號(hào)及姓名 沈燁參考文獻(xiàn)Proteus教程Proteus電子電路設(shè)計(jì)及仿真報(bào)告內(nèi)容一、實(shí)驗(yàn)?zāi)康模罕菊n程設(shè)計(jì)是在理論課程學(xué)習(xí)和軟件設(shè)計(jì)的基礎(chǔ)上,對51單片機(jī)硬件系統(tǒng)進(jìn)行了解和研究,使學(xué)生更深入的掌握51單片機(jī)開發(fā)技術(shù),培養(yǎng)學(xué)生面對實(shí)際課題,發(fā)現(xiàn)問題、分析問題和解決問題,提高學(xué)生的實(shí)驗(yàn)動(dòng)手能力。設(shè)計(jì)根據(jù)實(shí)驗(yàn)大綱提供的題目要求,選擇適當(dāng)?shù)恼n題,并通過課題資料收集、原理分析、理論計(jì)算、實(shí)際編程、系統(tǒng)調(diào)試、測試和故障排除,解決在實(shí)際設(shè)計(jì)中的問題,使設(shè)計(jì)系統(tǒng)能正常工作,有能力的同學(xué)可以超出題目要求任意發(fā)揮設(shè)計(jì)。二、實(shí)驗(yàn)要求
3、:基本要求:l 觀察和了解一臺(tái)實(shí)際跑步機(jī)的功能和狀態(tài),設(shè)計(jì)一模擬跑步機(jī)l 用鍵設(shè)定跑步速度(用兩位LED/LCD)l 跑步啟動(dòng)后計(jì)算和顯示跑步時(shí)間和距離l 設(shè)計(jì)啟動(dòng),停止,加速/減速,升高/降底,緊急停止等鍵l 用LED/LCD合理安排數(shù)據(jù)顯示l 具有倒計(jì)時(shí)運(yùn)行功能發(fā)揮部分:l 速度變化編成運(yùn)行模式l 高度變化編成運(yùn)行模式l 速度+高度混合編程運(yùn)行模式l 計(jì)數(shù)熱量消耗參數(shù)顯示格式:8LED數(shù)碼管顯示格式見下圖LCD屏顯示方法自定三、實(shí)驗(yàn)設(shè)備以及軟件:1. 微型計(jì)算機(jī)一臺(tái)2. Proteus;Keil 3. 德飛萊51單片機(jī)實(shí)驗(yàn)板四、實(shí)驗(yàn)原理1.AT89C51單片機(jī)引腳及其功能 AT89C51有
4、40條引腳,與其他51系列單片機(jī)引腳是兼容的。這40條引腳可分為I/O端口線、電源線、控制線、外接晶體線四部分。其封裝形式有兩種:雙列直插封裝(DIP)形式和方形封裝形式,如圖所示。2.1 I/O端口功能 1P0口 P0口有八條端口線,命名為P0.0P0.7,其中P0.0為低位,P0.7為高位。每條線的結(jié)構(gòu)組成如圖2-3所示。它由一個(gè)輸出鎖存器,兩個(gè)三態(tài)緩沖器,輸出驅(qū)動(dòng)電路和輸出控制電路組成。P0口是一個(gè)三態(tài)雙向I/O口,它有兩種不同的功能,用于不同的工作環(huán)境。2. P1口 P1口有八條端口線,命名為P1.0P1.7,每條線的結(jié)構(gòu)組成如圖所示。P1口是一個(gè)準(zhǔn)雙向口,只作普通的I/O口使用,其功
5、能與P0口的第一功能相同。作輸出口使用時(shí),由于其內(nèi)部有上拉電阻,所以不需外接上拉電阻;作輸入口使用時(shí),必須先向鎖存器寫入“1”,使場效應(yīng)管T截止,然后才能讀取數(shù)據(jù)。3. P2口 P2口有八條端口線,命名為P2.0P2.7,每條線的結(jié)構(gòu)如圖所示。P2口也是一個(gè)準(zhǔn)雙向口,它有兩種使用功能:一種是當(dāng)系統(tǒng)不擴(kuò)展外部存儲(chǔ)器時(shí),作普通I/O口使用,其功能和原理與P0口第一功能相同,只是作為輸出口時(shí)不需外接上拉電阻;另一種是當(dāng)系統(tǒng)外擴(kuò)存儲(chǔ)器時(shí),P2口作系統(tǒng)擴(kuò)展的地址總線口使用,輸出高8位的地址A7A15,與P0口第二功能輸出的低8位地址相配合,共同訪問外部程序或數(shù)據(jù)存儲(chǔ)器(64 KB),但它只確定地址并不能
6、像P0口那樣還可以傳送存儲(chǔ)器的讀寫數(shù)據(jù)。 4. P3口 P3口有八條端口線,命名為P3.0P3.7,每條線的結(jié)構(gòu)如圖所示。P3口是一個(gè)多用途的準(zhǔn)雙向口。第一功能是作普通I/O口使用,其功能和原理與P1口相同。第二功能是作控制和特殊功能口使用,這時(shí)八條端口線所定義的功能各不相同,如表1所示。表1 P3口各位的第二功能 5I/O口的讀寫 P0P3口都可作為普通I/O口來使用。當(dāng)作為輸入口使用時(shí),必須先向該口的鎖存器中寫入“1”,然后再從讀引腳緩沖器中讀入引腳狀態(tài),這樣的讀入結(jié)果才正確。2.2 控制線 AT89C51單片機(jī)的控制線有以下幾種: (1) RST:復(fù)位輸入端,高電平有效。 (2) ALE
7、/ :地址鎖存允許/編程線。 (3) :外部程序存儲(chǔ)器的讀選通線。 (4) /VPP:片外ROM允許訪問端/編程電源端2.LCD管腳說明LCD通常有14條引腳線或16條引腳線的LCD,多出來的2條線是背光電源線VCC(15腳)和地線GND(16腳),其控制原理與14腳的LCD完全一樣,其中:引腳符號(hào)功能說明1VSS一般接地2VDD接電源(+5V)3V0液晶顯示器對比度調(diào)整端,接正電源時(shí)對比度最弱,接地電源時(shí)對比度最高(對比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對比度)。4RSRS為寄存器選擇,高電平1時(shí)選擇數(shù)據(jù)寄存器、低電平0時(shí)選擇指令寄存器。5R/WR/W為讀寫信號(hào)線,
8、高電平(1)時(shí)進(jìn)行讀操作,低電平(0)時(shí)進(jìn)行寫操作。+6EE(或EN)端為使能(enable)端,寫操作時(shí),下降沿使能。讀操作時(shí),E高電平有效7DB0低4位三態(tài)、 雙向數(shù)據(jù)總線 0位(最低位)8DB1低4位三態(tài)、 雙向數(shù)據(jù)總線 1位9DB2低4位三態(tài)、 雙向數(shù)據(jù)總線 2位10DB3低4位三態(tài)、 雙向數(shù)據(jù)總線 3位11DB4高4位三態(tài)、 雙向數(shù)據(jù)總線 4位12DB5高4位三態(tài)、 雙向數(shù)據(jù)總線 5位13DB6高4位三態(tài)、 雙向數(shù)據(jù)總線 6位14DB7高4位三態(tài)、 雙向數(shù)據(jù)總線 7位(最高位)(也是busy flag)15BLA背光電源正極16BLK背光 電源負(fù)極實(shí)驗(yàn)原理框圖:五、程序代碼:#inc
9、lude#includelcd.hsbit key_1 = P10; /開始按鍵sbit key_2 = P11;/停止按鍵sbit key_3 = P12;/加速sbit key_4 = P13; /減速sbit key_5 = P14; /升高sbit key_6 = P15; /降低sbit key_7 = P16; /緊急停止sbit key_8 = P17; /倒計(jì)時(shí)unsigned int count_1=0;/計(jì)數(shù)標(biāo)量unsigned int time_1 = 0; /按鍵1的計(jì)數(shù)時(shí)間char start = 0; /開始char sudu_flag = 0; /速度變量char
10、 high_flag = 0; /速度變量void delay10us(char c) /誤差 0us unsigned char a,b; for(b=c;b0;b-) for(a=2;a0;a-);void delay10ms(char d) /誤差 0us unsigned char a,b,c; for(c=d;c0;c-) for(b=38;b0;b-) for(a=130;a0;a-);void main() TMOD = 0X01; /設(shè)置定時(shí)器T0 16位EA = 1; /打開中斷ET0 = 1; /打開TO定時(shí)器TR0 = 1; /關(guān)閉中斷TH0 = (65536-50000
11、)/256;TL0 = (65536-50000)%256;LcdInit();/初始化液晶顯示屏while(1)if(key_1=0) /按鍵1按下while(key_1=0); /等待K1抬起start = 1;if(key_2=0) /按鍵2按下while(key_2=0); /等待K2抬起start = 0;time_1=0;if(key_3=0) /按鍵3按下while(key_3=0); /等待K3抬起sudu_flag+;if(sudu_flag=4)sudu_flag=4;if(key_4=0) /按鍵4按下while(key_4=0); /等待K4抬起sudu_flag-;i
12、f(sudu_flag=4)high_flag=4;if(key_6=0) /按鍵6按下while(key_6=0); /等待K6抬起high_flag-;if(high_flag0)&(start=1)if(count_1=20) /1s時(shí)間count_1 = 0;time_1-; /時(shí)間倒計(jì)時(shí)if(time_1=0)start = 0; /倒計(jì)時(shí)結(jié)束,時(shí)間停止 #includelcd.h/* 函 數(shù) 名 : Lcd1602_Delay1ms* 函數(shù)功能 : 延時(shí)函數(shù),延時(shí)1ms* 輸 入 : c* 輸 出 : 無* 說 名 : 該函數(shù)是在12MHZ晶振下,12分頻單片機(jī)的延時(shí)。*/void
13、 Lcd1602_Delay1ms(uint c) /誤差 0us uchar a,b;for (; c0; c-) for (b=199;b0;b-) for(a=1;a0;a-); /* 函 數(shù) 名 : LcdWriteCom* 函數(shù)功能 : 向LCD寫入一個(gè)字節(jié)的命令* 輸 入 : com* 輸 出 : 無*/#ifndef LCD1602_4PINS /當(dāng)沒有定義這個(gè)LCD1602_4PINS時(shí)void LcdWriteCom(uchar com) /寫入命令LCD1602_E = 0; /使能LCD1602_RS = 0; /選擇發(fā)送命令LCD1602_RW = 0; /選擇寫入LC
14、D1602_DATAPINS = com; /放入命令Lcd1602_Delay1ms(1);/等待數(shù)據(jù)穩(wěn)定LCD1602_E = 1; /寫入時(shí)序Lcd1602_Delay1ms(5); /保持時(shí)間LCD1602_E = 0;#else void LcdWriteCom(uchar com) /寫入命令LCD1602_E = 0; /使能清零LCD1602_RS = 0; /選擇寫入命令LCD1602_RW = 0; /選擇寫入LCD1602_DATAPINS = com;/由于4位的接線是接到P0口的高四位,所以傳送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E =
15、 1; /寫入時(shí)序Lcd1602_Delay1ms(5);LCD1602_E = 0;/Lcd1602_Delay1ms(1);LCD1602_DATAPINS = com 4; /發(fā)送低四位Lcd1602_Delay1ms(1);LCD1602_E = 1; /寫入時(shí)序Lcd1602_Delay1ms(5);LCD1602_E = 0;#endif/* 函 數(shù) 名 : LcdWriteData* 函數(shù)功能 : 向LCD寫入一個(gè)字節(jié)的數(shù)據(jù)* 輸 入 : dat* 輸 出 : 無*/ #ifndef LCD1602_4PINS void LcdWriteData(uchar dat)/寫入數(shù)據(jù)L
16、CD1602_E = 0;/使能清零LCD1602_RS = 1;/選擇輸入數(shù)據(jù)LCD1602_RW = 0;/選擇寫入LCD1602_DATAPINS = dat; /寫入數(shù)據(jù)Lcd1602_Delay1ms(1);LCD1602_E = 1; /寫入時(shí)序Lcd1602_Delay1ms(5); /保持時(shí)間LCD1602_E = 0;#elsevoid LcdWriteData(uchar dat)/寫入數(shù)據(jù)LCD1602_E = 0; /使能清零LCD1602_RS = 1; /選擇寫入數(shù)據(jù)LCD1602_RW = 0; /選擇寫入LCD1602_DATAPINS = dat;/由于4位的
17、接線是接到P0口的高四位,所以傳送高四位不用改Lcd1602_Delay1ms(1);LCD1602_E = 1; /寫入時(shí)序Lcd1602_Delay1ms(5);LCD1602_E = 0;LCD1602_DATAPINS = dat 4; /寫入低四位Lcd1602_Delay1ms(1);LCD1602_E = 1; /寫入時(shí)序Lcd1602_Delay1ms(5);LCD1602_E = 0;#endif/* 函 數(shù) 名 : LcdInit()* 函數(shù)功能 : 初始化LCD屏* 輸 入 : 無* 輸 出 : 無*/ #ifndefLCD1602_4PINSvoid LcdInit()
18、 /LCD初始化子程序 LcdWriteCom(0x38); /開顯示LcdWriteCom(0x0c); /開顯示不顯示光標(biāo)LcdWriteCom(0x06); /寫一個(gè)指針加1LcdWriteCom(0x01); /清屏LcdWriteCom(0x80); /設(shè)置數(shù)據(jù)指針起點(diǎn)#elsevoid LcdInit() /LCD初始化子程序LcdWriteCom(0x32); /將8位總線轉(zhuǎn)為4位總線LcdWriteCom(0x28); /在四位線下的初始化LcdWriteCom(0x0c); /開顯示不顯示光標(biāo)LcdWriteCom(0x06); /寫一個(gè)指針加1LcdWriteCom(0x0
19、1); /清屏LcdWriteCom(0x80); /設(shè)置數(shù)據(jù)指針起點(diǎn)#endif#ifndef _LCD_H_#define _LCD_H_/*當(dāng)使用的是4位數(shù)據(jù)傳輸?shù)臅r(shí)候定義,使用8位取消這個(gè)定義*/#define LCD1602_4PINS/*包含頭文件*/#include/-重定義關(guān)鍵詞-/#ifndef uchar#define uchar unsigned char#endif#ifndef uint #define uint unsigned int#endif/*PIN口定義*/#define LCD1602_DATAPINS P0sbit LCD1602_E=P26;sbit LCD1602_RW=P25;sbit LCD1602_RS=P24;/*函數(shù)聲明*/*在51單片機(jī)12MHZ時(shí)鐘下的延時(shí)函數(shù)*/void Lcd1602_Delay1ms(uint c); /誤差 0us/*LCD1602寫入8位命令子函數(shù)*/void LcdWriteCom(uch
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 借款保證合同與借款保證擔(dān)保合同
- 瀝青攤鋪勞務(wù)合同
- 廈門軟件職業(yè)技術(shù)學(xué)院《會(huì)計(jì)手工實(shí)訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 長春理工大學(xué)《醫(yī)學(xué)微生物學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 大連財(cái)經(jīng)學(xué)院《CoreDraw圖像設(shè)計(jì)》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇科技大學(xué)蘇州理工學(xué)院《影視文學(xué)研究》2023-2024學(xué)年第二學(xué)期期末試卷
- 江蘇海洋大學(xué)《材料與加工工藝》2023-2024學(xué)年第二學(xué)期期末試卷
- 大慶醫(yī)學(xué)高等??茖W(xué)?!夺t(yī)學(xué)免疫學(xué)與病原生物學(xué)實(shí)驗(yàn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 石家莊科技信息職業(yè)學(xué)院《流體傳動(dòng)及控制》2023-2024學(xué)年第二學(xué)期期末試卷
- 四川現(xiàn)代職業(yè)學(xué)院《農(nóng)業(yè)相關(guān)政策培訓(xùn)》2023-2024學(xué)年第二學(xué)期期末試卷
- 新能源汽車故障診斷與排除實(shí)訓(xùn)工單
- 2024年江蘇淮陰城市產(chǎn)業(yè)投資集團(tuán)有限公司招聘筆試沖刺題(帶答案解析)
- 2024年太倉高新控股有限公司招聘筆試沖刺題(帶答案解析)
- 人教版七年級(jí)地理下冊《全冊完整》
- 10kv高壓送電專項(xiàng)方案
- 煤炭供應(yīng)鏈管理與協(xié)同創(chuàng)新
- 健康生活方式與健康促進(jìn)的科學(xué)研究
- 腦卒中患者便秘護(hù)理措施課件
- 踐行志愿服務(wù)(上)
- 文旅部門消防培訓(xùn)課件
- 泌尿外科教學(xué)查房課件
評(píng)論
0/150
提交評(píng)論