資源描述:
《實驗二 Keil軟件的編程調(diào)試hlx》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、實驗二Keil軟件編程調(diào)試一、實驗?zāi)康?、學(xué)習(xí)keil軟件編程調(diào)試2、實現(xiàn)控制4個按鍵完成一般儀表的設(shè)置二、實驗內(nèi)容使用AT89c51單片機(jī)控制四個數(shù)碼管動態(tài)顯示?三、實驗條件1、裝有Keil軟件的PC機(jī)四、實驗步驟1、設(shè)計思路設(shè)置四個按鍵K1—K4,實現(xiàn)其對數(shù)碼管的顯示K1加一函數(shù),K2除法函數(shù),K3顯示函數(shù),K4延時函數(shù)控制。2、利用Keil軟件編程調(diào)試a、打開Keil軟件并新建一個工程文件,點擊“Project->New?Project…”菜單。b、選擇工程文件要存放的路徑,輸入工程文件名Kei
2、l調(diào)試,最后單擊保存。c、在彈出的對話框中選擇CPU廠商及型號。選擇AT89C51。d、開始編寫代碼前,創(chuàng)建一個C程序文件。選擇File->New,這時會出現(xiàn)在一個Text文本編輯窗口,按一下保存按鈕,把該文件保存為HLX.c文件。e、用鼠標(biāo)在SourceGroup1上單擊右鍵,然后再單擊AddFilestoGroup‘SourceGroup1',把剛保存的Keil調(diào)試.c文件添加到工程的工作組中如下圖:f、在編輯框中編寫控制程序,程序見附件。編寫完成后選擇Project->Build?all?tar
3、get?files來編譯工程,如果在錯誤與警告處看到0Error(s)表示編譯通過。g、進(jìn)入Project->Options?forTarget??Target1?,再進(jìn)入Output一欄,將“Create?HEX?Fi”一欄鉤上,再按確定,生成HLX.hex文件。h、程序下載運行。五、實驗結(jié)論此次實驗過程不僅僅是檢驗了我的專業(yè)知識的學(xué)習(xí)程度,更是培養(yǎng)了一種綜合性能力,無論是對事件的設(shè)計分析還是過程的編寫調(diào)試,實踐加理論的全方面結(jié)合,不斷的調(diào)試修改再調(diào)試,一次又一次的改進(jìn)使得自己有決心去完成它,做好它
4、。的確,由于自己專業(yè)知識的欠缺,我請求了同學(xué)的幫助,與同學(xué)通過書本,網(wǎng)絡(luò)等一些資料的搜索去不斷的學(xué)習(xí),實踐。智能儀表的實驗的確加深了對所學(xué)知識的理解,鞏固了知識并加以實踐運用。學(xué)習(xí)運用Keil軟件,從生疏到熟練的逐步漸進(jìn)的過程并不像曾經(jīng)學(xué)習(xí)的軟件那么順風(fēng)順?biāo)?,它的運用結(jié)合太多了專業(yè)知識,很多問題結(jié)合在一起的確給實驗的完成帶來了不少的困難,好在在同學(xué)幫助下和理論知識的搜索下還是完成了實驗內(nèi)容。這次實驗的過程,體現(xiàn)出了自己單獨設(shè)計能力和專業(yè)理論知識綜合運用的能力,不斷的發(fā)現(xiàn)問題,解決問題,認(rèn)識到自己曾經(jīng)學(xué)
5、習(xí)時候的不足之處,從而加以彌補。附件:編寫程序:#includevoid?jiayi();//加1函數(shù)?void?chufa();//除法函數(shù)?void?xianshi();//顯示函數(shù)?void?delay();//延時函數(shù)?sbit?P2_0=P2^0;//個位位碼?sbit?P2_1=P2^1;//十位位碼?sbit?P2_2=P2^2;//百位位碼?sbit?P2_3=P2^3;//千位位碼?unsigned?char?qianwei,baiwei,shiwei,gewei;
6、?unsigned?int?count=0;?unsigned?char?code?dis[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};?//共陽極0-9?void?main()?{???while(1)???????{?????jiayi();?????chufa();??xianshi();?????}??}?void?chufa()//將數(shù)字的各個位拆開?{?qianwei=count/1000;//千位數(shù)?baiwei=cou
7、nt%1000/100;?//百位數(shù)???shiwei=count%100/10;?//十位數(shù)???gewei=count%10;?//個位數(shù)?}?void?jiayi()?{?count=count+1;???if(count==10000)?????count=0;?}??void?delay()//延時?{?unsigned?int?i,j;???for(i=0;i<10;i++)????{??for(j=0;j<200;j++);????}?}?void?xianshi()//顯示當(dāng)前數(shù)值?{
8、?P2_0=1;?//顯示個位??P1=dis[gewei];??delay();??P2_0=0;??P2_1=1;//顯示十位??P1=dis[shiwei];??delay();?P2_1=0;???P2_2=1;?//顯示百位??P1=dis[baiwei];??delay();??P2_2=0;???P2_3=1;?//顯示千位??P1=dis[qianwei];??delay();??P2_3=0;}