ImageVerifierCode 换一换
格式:DOCX , 页数:62 ,大小:977.76KB ,
资源ID:5765101      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-5765101.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Keil软件的使用文档格式.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

Keil软件的使用文档格式.docx

1、 以下將介紹的是如何將HEX檔下載到單片機裡面。我們用的下載軟體是Easy 51ProEasy51Pro v2.0軟體的使用Easy51Pro v2.0是單片機下載工具: 在我們的QQ群裡有這個軟體,大家可以下載來直接用,而不用安裝。下面我給大家簡單的說一下用法:1.硬體連接;必須滿足下面的每一個條件才能下載。如圖2.打開軟體;3.檢測器件,注意右邊的資訊提示。如果沒有檢測到器件,檢查硬體連接。3.打開HEX文件。先按一下“(自動)打開檔”。在“實驗1”的資料夾裡找到檔LED.hex文件.4.最後按一下“自動完成”,OK 大功告成。5.大功既然告成,就要看到效果。現在我們在實驗板的左下角找到J

2、K7,用導線連到P1.0上,LED2被點亮了把。是不是很有成就感。如果以上的實驗你覺得是小兒科,太簡單了。那麼請關注以下的內容。一. 閃爍燈 實驗任務 在P1.0埠上接一個發光二極體L1,使L1在不停地一亮一滅,一亮一滅的時間間隔為0.2秒。硬體電路 與上麵點亮小燈的連接完全相同。C語言來源程式 #include /* 第一行是一個檔包含處理。所謂是指一個檔將另外一個檔的內容全部包含進來,所以這裡的程式雖然只有4行,但C編譯器在處理的時候卻要處理幾十或幾百行。這裡程式中包含REG51.h檔的目的是為了要使用P1這個符號,即通知C編譯器,程式中所寫的P1是指80C51單片機的P1埠而不是其它變數

3、。*/void delay02s(void) /延時0.2秒副程式 unsigned char i,j,k; /定義3個無符號字元型資料。 for(i=20;i0;i-) /作迴圈延時 for(j=20;jj-) for(k=248;kk-); void main(void) /每一個C語言程式有且只有一個主函數, while(1) /迴圈條件永遠為真,以下程式一直執行下去。 P1_0=0; / I/O口P1.0輸出低電平,小燈被點亮。 delay02s(); /延時經過0.2秒。 P1_0=1; / I/O口P1.0輸出高電平,小燈熄滅。 二.廣告燈的左移右移實驗任務 做廣告燈的左移右移,八

4、個發光二極體分別接在單片機的P3.0P3.7介面上,輸出“0”時,發光二極體亮,開始時P3.0P3.1P3.2P3.3P3.7P3.6P3.0亮,重複迴圈。DPY-1實驗板連接 用8芯排線把JP-LSH連接到JP12上。 #include unsigned char i; unsigned char temp; unsigned char a,b; void delay(void) /延時副程式 unsigned char m,n,s; for(m=20;mm-) for(n=20;nn-) for(s=248;ss-); void main(void) /主程序 temp=0xfe; P3=

5、temp; /直接對I/O口P3賦值,使.P3.0輸出低點平。 delay(); /延時 for(i=1;i8;i+) /實現廣告燈的從右到左移動(以原理圖為准) a=temp(8-i); P3=a|b;i+) /實現廣告燈的從左到右移動 a=temp b=temp三. 按鍵識別通過按下一次按鍵,使廣告燈向左移動一位,直到最後一位,在向右移動。 硬體電路 (大家注意到這一個電路圖與上一個實驗的電路圖只多了一個按鍵和一個5.1K的電阻。)用一根導線把JK5接到P2.1上。實驗原理從圖中可以看出P2.1在按鍵沒有按下時接的是高電平,按鍵按下時接的就是低電平了。所以我們只要判斷P2.1的電平就可以知

6、道按鍵是否被按下了。而在按鍵按下的過程中,由於抖動,將產生干擾,在按下的過程中,一旦有干擾過來,可能造成誤觸發過程,這並不是我們所想要的。因此在按鍵按下的時候,要把我們手上的干擾信號以及按鍵的機械接觸等干擾信號給濾除掉,一般情況下,我們可以採用軟體濾波的方法去除這些干擾信號,一般情況下,一個按鍵按下的時候,總是在按下的時刻存在著一定的干擾信號,按下之後就基本上進入了穩定的狀態。我們在程式設計時,從按鍵被識別按下之後,延時5ms以上,從而避開了干擾信號區域,我們再來檢測一次,看按鍵是否真得已經按下,若真得已經按下,這時肯定輸出為低電平,若這時檢測到的是高電平,證明剛才是由於干擾信號引起的誤觸發,

7、CPU就認為是誤觸發信號而捨棄這次的按鍵識別過程。#include sbit BY1=P21; /定義按鍵的輸入端unsigned char count; /按鍵計數,每按一下,count加1unsigned char temp;unsigned char a,b;void delay10ms(void) /延時程式 unsigned char i,j;i-) for(j=248;j-); key() /按鍵判斷程式 if(BY1=0) /判斷是否按下鍵盤 delay10ms(); /延時,軟體去干擾 if(BY1=0) /確認按鍵按下 count+; /按鍵計數加1 if(count=8)

8、/計8次重新計數 count=0; /將count清零 while(BY1=0);/按鍵鎖定,每按一次count只加1. move() /廣告燈向左移動移動函數count;(8-count);main() count=0; /初始華參數設置 P3=0xff; while(1) /永遠迴圈,掃描判斷按鍵是否按下 key(); /調用按鍵識別函數 move(); /調用廣告燈移動函數四.數碼管動態顯示 P0埠接動態數碼管的字形碼筆段,P2埠接動態數碼管的數位選擇端,動態顯示“1234”字樣; 注意:在P0口還有1K的排阻作為上拉電阻,在以後的電路原理圖中都是如此,請大家不要忽略了 用排線把JP-C

9、ODE連到JP8是,注意:a接P0.0;b接P0.1;c接P0.3 把JP-CS連到JP14上,注意:4H接P2.4;3H接P2.5;2H接P2.6;1H接P2.7; 七段LED顯示器內部由七個條形發光二極體和一個小圓點發光二極體組成,根據各管的極管的接線形式,可分成共陰極型和共陽極型。 LED數碼管的a-dp七個發光二極體因以不同亮暗的組合就能形成不同的字形,這種組合稱之為字形碼,下面給出共陰極的字形碼“0”3FH “1”06H “2”5BH “3”4FH“4”66H “5”6DH “6”7DH “7”07H “8”7FH “9”6FH “A”77H “b”7CH “C”39H “d”5EH

10、 “E”79H “F”71H 由於顯示的數位09的字形碼沒有規律可循,只能採用查表的方式來完成我們所需的要求了。這樣我們按著數位09的順序,把每個數位的筆段代碼按順序排好!建立的表格如下所示:TABLEDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH動態介面採用各數碼管迴圈輪流顯示的方法,當迴圈顯示頻率較高時,利用人眼的暫留特性,看不出閃爍顯示現象,這種顯示需要一個介面完成字形碼的輸出(字形選擇),另一介面完成各數碼管的輪流點亮(數位選擇)。code unsigned char seg7code10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,

11、0x7d,0x07,0x7f,0x6f; /顯示段碼void Delay(unsigned int tc) /延時程式 while( tc != 0 ) /如果tc為0則終止延時 unsigned int i; /局部正整數變數 i for(i=0; i100; i+); /執行400次將耗時1毫秒 tc-; /tc計數減一void Led(int date) /顯示函數 P2=P2&0x7f; /P2.7輸出低電平,選通千位數 P0=seg7codedate/1000; /取出千位數,查表,輸出。 Delay(8);P2=P2|0xf0; /銷隱0xbf; /P2.6輸出低電平,選通百位數

12、P0=seg7codedate%1000/100; /取出百位數,查表,輸出。 P2=P2|0xf0;0xdf; /P2.5輸出低電平,選通十位數 P0=seg7codedate%100/10; /取出十位數,查表,輸出。0xef; P0=seg7codedate%10; /取出個位數,查表,輸出。 int display_date=1234; /定義並賦值要顯示的資料 while(1) Led(display_date);/調用顯示函數顯示資料display_date五.44矩陣式鍵盤識別用AT89S51的並行口P3接44矩陣鍵盤,以P3.0P3.3作輸入線,以P3.4P3.7作輸出線;在每

13、一個數碼管上顯示每個按鍵的“0F”序號。用排線把JP-CODE連到JP8是,注意:c接P0.3用排線把JP-KEY連到JP12上,注意1,2,3,4,5,6,7,8,分別對應P3.0,P3.1,P3.3,P3.4每個按鍵有它的行值和列值,行值和列值的組合就是識別這個按鍵的編碼。矩陣的行線和列線分別通過兩平行介面和CPU通信。鍵盤控制碼的任務是:確定有無鍵按下,判斷哪一個鍵按下,鍵的功能是什麼;還要消除按鍵在閉合或斷開時的抖動。兩個並行口中,一個輸出掃描碼,使按鍵逐行動態接地,另一個並行口輸入按鍵狀態,由行掃描值和回饋信號共同形成鍵編碼而識別按鍵,通過軟體查表,查出該鍵的功能。unsigned

14、char code seg7code=0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c, 0x39,0x5e,0x79,0x71;unsigned char k; void Getch ( ) unsigned char X,Y,Z; P3=0x0f; /先對P3置數 行掃描 if(P3!=0x0f) /判斷是否有鍵按下 delay10ms();=0x0f) /確認按鍵按下X = P3; X=P3; /保存行掃描時有鍵按下時狀態 P3=0xf0; /列掃描 Y=P3; /保存列掃描時有鍵按下時狀態 Z=X|Y; /取出鍵

15、值 switch ( Z ) /判斷鍵值(那一個鍵按下) case 0xee: k=0; break; /對鍵值賦值 case 0xde: k=1; case 0xbe: k=2; case 0x7e: k=3; case 0xed: k=4; case 0xdd: k=5; case 0xbd: k=6; case 0x7d: k=7; case 0xeb: k=8; case 0xdb: k=9; case 0xbb: k=10;break; case 0x7b: k=11; case 0xe7: k=12; case 0xd7: k=13; case 0xb7: k=14; case 0

16、x77: k=15; /請注意寫程式時的格式規範,此處是為了節省紙張void main(void) P3=0xff; Getch(); P0=seg7codek; /查表LED輸出 P2=0x0f; /輸出相同的四位元資料。六按鍵中斷識別採用中斷技術,每按一下按鍵,計數器加1,並用LED顯示出來。注意:我們只用了4位數碼管中的兩位。用排線把JP-CODE連到JP8上,注意: 2H接P2.0; 1H接P2.1; 中斷按鍵已經接好。 以上的兩個關於按鍵識別的實驗的程式都是採用掃描的方式來實現的,CPU的利用率比較低,在即時性要求高比較高,要求快速回應的場合不太實用。中斷方式可以滿足快速回應的要求。

17、關於中斷技術的具體內容,請大家參照教材。#include=10) /顯示兩位元數 shiwei=0; P0=tabledispcount/10; shiwei=1; gewei=0; P0=tabledispcount%10; Delay(5); gewei=1; else /顯示一位元數 P0=tabledispcount;void main() TCON=0x01; /中斷設置 IE=0x81; while(1) /迴圈執行 LED(); /只須調用顯示函數七.計時器T0的應用-9.9秒計時設計 實驗任務 開始時,顯示“00”,第1次按下BY1後就開始計時。第2次按BY1後,計時停止。 第

18、3次按BY1後,計時歸零。注意這一個電路圖與上一個的接法只是按鍵接的I/O口不一樣。所以只要用導線把JK5接到P3.0上就可以了。c接P0.3把JP-CS連到JP14,注意: 用導線把JK5接到P3.0上。unsigned char code table=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f, ;unsigned char sec; /定義計數值,每過1/10秒,sec加一unsigned char keycnt=0;unsigned int tcnt; /鍵值判斷void LED() /LED顯示函數 P0=tablesec/10; P0=tablesec%10;void KEY() /按鍵掃描程式unsigned char i,j;if(P3_0=0) i-) /延時去干擾 if(P3_0=0) keycnt+; switch(keycnt) /按下次數判斷 case 1: /第一次按下 TH0=0x06; /對TH0 TL0賦值 TL0=0x06; TR0=1; /開始定時 case 2: /第二次按下 TR0=0; /定時結束 case 3: /第三次按下

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2