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