單片機實驗指導書_第1頁
單片機實驗指導書_第2頁
單片機實驗指導書_第3頁
單片機實驗指導書_第4頁
單片機實驗指導書_第5頁
已閱讀5頁,還剩57頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、單片機原理及應用實驗指導書編寫人:高玉芹徐州工程學院信電工程學院電子信息教研室2011年12月目錄恒科Keil C超級仿真器使用說明4一、產品簡介4二、KEIL軟件的安裝4三、USB驅動的安裝6四、KEIL C軟件的操作說明6t產品簡介 110.1 系統組成100.2 實驗內容120.3 實驗方式120.4 支持器件12u綜合實驗儀 131.1 實驗模塊131.2 常用邏輯門電路191.3 自由實驗插座191.4 直流電源外引插座191.5 總線插孔191.6 空間分配20v實驗例程(MCS51)20第一節 軟件實驗21實驗一 拆字程序實驗23實驗二 拼字程序實驗24實驗三 數據區傳送子程序實

2、驗24第二節 硬件實驗 25實驗四 八段數碼管顯示實驗25實驗五 鍵盤掃描顯示實驗29實驗六 脈沖計數(定時/計數器記數功能實驗)33實驗七 A/D轉換實驗36實驗八 步進電機控制實驗實驗40實驗九 工業順序控制綜合實驗44實驗十V/F壓頻轉換實驗48實驗十一 壓力測量實驗52實驗十二 溫度測量實驗實驗56附錄 “自檢式”演示實驗580 - LCD液晶顯示器實驗1 - V/F壓力頻率轉換實驗2 - 脈沖計數實驗3 - DA0832轉換實驗4 - AD0809轉換實驗5 - 紅外線遙控實驗6 - 溫度測量實驗7 - 力測量實驗8 - 電子琴9 - 直流電機轉速測量與控制實驗A - 點陣LED廣告

3、屏實驗B - 步進電機控制C - RS232通訊實驗D - 八段碼管顯示實驗E - 鍵盤掃描顯示實驗F - 擴展時鐘系統(DS12887)實驗MCS51簡易操作手冊59恒科Keil C超級仿真器使用說明一、產品簡介keil C51 u Vision2 是德國Keil公司開發的基于Windows環境的8051軟件開發平臺,它集項目管理、源程序編輯、程序調試于一體,是一個強大的集成開發環境。u Vision2支持Keil的各種8051工具,包括:C編譯器,宏匯編譯器、連接/定位器及Objecthex轉換程序,可以幫助用戶快速有效的實現嵌入式系統的設計于調試。采用C語言進行單片機系統的開發,具有避免

4、手工分配寄存器,移植容易等優點。恒科Keil C超級仿真器優特點:1、仿真8031內核的單片機。2、接支持Keil C51的IDE開發仿真環境,63K用戶程序空間。3、全保留單片機特性,避免仿真正常而實際燒錄芯片不正常的問題。4、仿真頻率040MHZ晶振可選。5、程序代碼可重復裝載。6、監控程序占用用戶資源極少,全速運行不占用資源。7、可在Keil uVision2下單步、斷點、全速,可參考變量、RAM變量、結構變量等。8、支持匯編、C語言、混合調試。9、內部存儲物理空間為68K,是偉福通用仿真器G6型的7倍,是偉福51專用仿真器的4倍。10、仿真頻率可達40MHZ。11、支持10個硬件斷點。

5、在Keil C51集成開發環境是使用工程方法來管理文件的,而不是單一文件的模式。所有的文件包括源程序(包括C程序,匯編程序)、頭文件、甚至說明性的技術文檔都可以放在工程項目文件里面統一管理。在使用Keil C51之前,您應該習慣這種工程的管理方式,對于剛剛使用Keil C51的用戶來講,一般可以按照下面的步驟來創建一個自己的Keil C51應用程序。1、建一個項目文件;2、工程選擇一個目標器件(如ATMEL89C52);3、創建源程序文件并輸入程序代碼并保存;4、把源文件添加到項目中;5、為工程項目設置軟硬件調試環境;6、編譯項目文件;7、硬件或者軟件調試。二、KEIL軟件的安裝將帶有KEIL

6、安裝軟件的光盤放入光驅,打開光驅中名為“keil750AHK(3000TC)”的文件夾再打開setup文件夾,雙擊setup文件夾中“setup”文件即開始安裝。單擊“Full Version”.。如圖所示:點擊“Next” “Yes” ”Next”,此時則須序列號(序列號在光盤keil750AHK(3000Tc))文件夾目錄下的”sn”文件中)輸入序列號,其他四項輸入任意字母。如圖:點擊“Next” Next”開始安裝,點擊Next” Finish即完成安裝。三、USB驅動的安裝: 若使用的仿真器是USB接口的,則需要安裝USB驅動。打開KEIL安裝光盤中的“USB驅動”文件夾打開windo

7、w文件夾,雙擊“Window”文件夾中的“setup”開始安裝。安裝完成后會提示你重新啟動計算機。重啟后完成安裝。四、KEIL軟件的操作說明:硬件基礎實驗操作(以實驗一 八段數碼管顯示實驗為例):將KEIL仿真器上40芯排線一端和實驗箱上51CPU板上的40芯排針連接起來,將仿真器連接的USB或串口線與PC機對應的USB或串口連接起來,打開實驗箱電源。進入KEIL軟件界面,點擊項目/打開項目 在C:KEILUV23000TC51配套實驗例程中選擇實驗一,內有ASM和C51兩種程序,進入ASM文件夾打開LED項目文件進入如圖所示界面點擊“調試/啟動/停止調試”,進入調試界面,點擊“調試/運行”可

8、看到8段數碼管交替顯示0F新建一個項目文件: 首先進入Keil軟件,點擊工具欄“項目”選項中的“新項目”,如圖所示:輸入工程文件名稱,并選則保存文件的目錄(該目錄位置任意,可新建文件夾),如圖:為項目文件選擇一個目標器件(ATMEL89C51),如圖所示:點確定后會彈出一個對話框選擇否.右鍵點擊項目工作區的目標1,再彈出的菜單中選擇“為目標目標1選項”如圖所示:在“為目標目標1設置選項”中,點擊“調試”菜單,在此菜單中可選擇是使用硬件仿真,還是軟件仿真,連接實驗箱做實驗時選擇硬件仿真,點擊硬件仿真選項后面的設置選項,在此對對話框中選擇串口和波特率,串口根據所連電腦來決定。波特率為38400。如

9、圖所示:點擊“文件/新建”創建程序文件并輸入源程序并保存。如圖所示:右鍵點擊目標1下的“源代碼組1” “添加文件到源代碼組1”。文件類型改為“所有文件”,把源程序添加進去,如圖所示:文件類型的設置:源程序示C語言就在“類型”選擇C語言,是匯編則選擇“匯編語言文件”點擊確定。如圖:點擊“編譯連接”圖標,對項目文件進行編譯。如圖:若編譯無誤,則點擊“調試” “啟動/停止調試”進入調試界面。如圖:在調試界面中的可以對程序進行單步或全速運行的調試。如圖:t 產品簡介隨著社會對人才素質要求的不斷提高,同時也隨著國家對教育投入的不斷加大,向學生提供高性能的實驗/開發設備成為必要和可能。根據“世行貸款高等教

10、育項目”招標書中技術指標的要求,根據本公司對市場的調研,參考了國外先進教育設備的設計方法,研制了超想-3000TC綜合實驗/仿真系統。超想3000TC綜合實驗/仿真系統全面支持MCS51系列的實驗仿真。0.1 系統組成超想-3000TC開放式綜合實驗仿真系統由仿真器、綜合實驗儀、軟件、電源組成。傳統的實驗儀:把仿真器和實驗模塊合二為一設計,實驗模塊作為仿真器的擴展部分,采用“單板式” 方式進行實驗,這使得仿真器仿真特性和實驗方式真實性、靈活性都受到了限制。我們知道單片機完整的開發過程為:確立方案 制作硬件 調測軟件 固化代碼 脫機運行。很顯然,傳統實驗儀由于硬件的封閉性,是無法進行“確立方案”

11、、“制作硬件”、“固化代碼”、“脫機運行”的實驗,其實驗步驟與實際環境有較大差別。 另外,由于實驗模塊作為仿真器的擴展部分,占用了仿真器的資源,其仿真特性也大打折扣,事實上無法滿足學生畢業設計、電子競賽、教師科研所需。 超想-3000TC綜合實驗儀:超想-3000TC綜合實驗儀摒棄了傳統實驗儀的“單板式”設計方法,而采用了符合單片機開發過程的“仿真式”綜合設計思想,使得所有的實驗模塊及CPU資源均全力對用戶開放,從而充分滿足“驗證式”“模仿式”“探索式”“開發式”的由淺入深的各種實驗要求。并且,實驗平臺作為一個獨立的目標系統,能讓用戶進行脫機驗證實驗結果的實驗,從而,使實驗步驟與實際開發環境完

12、全一致,學以致用。同時,仿真工具作為一個可獨立使用的仿真器,從而,又可滿足學生畢業設計、電子競賽、教師科研所需。達到一機多用之目的。0.1.0 仿真器由于超想-3000TC綜合實驗/仿真系統的“仿真器”與“實驗平臺”可分離使用,故原則上可配備任何品牌的仿真工具。由于本手冊是圍繞Keil C超級仿真器進行編寫,所以,選用該產品成為最佳選擇。作為仿真工具時,仿真器可與實驗儀完全脫離0.1.1 綜合實驗儀新型實用模塊:(1)LCD液晶實驗 (2)點陣LED廣告屏 (3)DS12887實時時鐘 (4)紅外線發送、接收(5)直流電機恒速 (6)電子琴模擬實驗 (7)串行ROM/I2C ROM(8)步進電

13、機變速 傳感器實驗:(1)溫度傳感器 (2)壓力傳感器 (3)霍爾傳感器 (4)紅外傳感器傳統實驗模塊:(1)模數轉換A/D0809 (2)數模轉換D/A0832 (3)8155控制鍵顯 (4)V/F轉換LM331(5)串口通訊MAX232 (6)音響實驗LM386 (7)EPROM27C256擴展(8)RAM6264擴展(9)PWM模塊 (10)微型打印機接口(選配)通用實驗模塊:(1)模擬信號發生器 (2)開關量發生器 (3)發光二極管組 (4)信號發生器(5)74LS138譯碼器 (6)分頻器電路 (7)LED6位數碼管 (8)20個鍵盤組(9)邏輯筆 (10)常用門電路自由實驗模塊:由

14、DIP40鎖緊插座及40個插孔組成,CPU所有信號均以插孔方式引出,還設計了常用門電路、晶振源、電源插孔等,可以完成以上實驗模塊的組合實驗以及由實驗者自行命題和新器件、新方案的實驗,使得實驗方式和內容不受限制。擴展實驗內容:利用自由實驗區可進行以下擴展實驗:(1)8279鍵盤顯示接口(2)8255I/O口擴展(3)8253可編程計數器(4)8251可編程通信接口(5)8259中斷優先級管理器(6)8237DMA數據傳送(7)并行I/O口擴展實驗(8)AT89C51最小系統 (9)I2 C總線24C01(10)GAL16V8實驗(11)AT89C2051實驗 (12)譯碼器實驗 模塊自檢接口:“

15、實驗連線”對于學生理解實驗內容的本質,提高動手能力的培養十分必要。然而,對實驗室管理員而言,卻是工作量倍增。試想,若對所有設備的所有實驗模塊進行一次全面的檢測,將需連多少根線?工作量有多大?很顯然,“模塊自檢接口”的自檢功能十分必要。本產品的自檢監控能對所有模塊進行檢測,管理員僅需在鍵盤上輸入各自檢程序的代碼即可。0.1.2 軟件支持:Keil uVision2平臺。Keil uVision2是德國Keil公司(Keil Quel)的產品,早期曾以美國Franklin公司在美國發行出售。其性能較其它同類產品優異,特別是兼容ANS1 C后,又增加了很多與硬件密切相關的編譯特性,使得在8051系列

16、單片機上開發應用程序更為方便和快捷。在Keil uVision2的平臺下,用戶源程序的大小不再有任何限制,支持ASM、C、PLM語言混合編程,源文本調試,具有項目管理功能,為用戶的資源共享,課題重組提供強有力的手段。豐富的顯示方式,多方位、動態地顯示仿真的各個過程,使用極為便利。為了跟上形勢,現在工程師需要掌握不同的項目管理器、編輯器、編譯器。它們由不同的廠家開發,相互不兼容,使用不同的界面,學習使用很吃力。Keil uVision2調試軟件為你提供了一個全集成環境,統一的界面包含一個項目管理器,一個功能強勁的編輯器,以及匯編和調試工具,并提供一個與第三方編譯器的接口。由于風格一致,從而大大節

17、省時間和精力。0.1.3 電源超想-3000TC綜合實驗儀配備了+5V/2A、+12V/1A、-12V/0.5A的電源,直接使用220V交流電源工作。0.2 實驗內容分成軟件實驗和硬件實驗,軟件實驗是指初學者先熟悉軟件的使用和學習程序的編寫,進一步掌握編程方法的實驗;硬件實驗是通過使用實驗箱使用各種模塊通過連線在軟件上編程實現某種特定功能的實驗。各實驗例程均提供ASM語言、C語言兩套程序清單。以上實驗已充分涉及單片機的原理、接口、傳感器、自控原理等方面的內容。0.3 實驗方式 k 外接仿真器方式: 用PC機連仿真器,再連實驗儀進行仿真和實驗。k 軟件模擬的方式: 無實驗儀、無仿真器,僅在PC機

18、上采用模擬軟件進行實驗。k 仿真器獨立方式: 用戶自制目標板,利用仿真器進行仿真實驗。k 自檢測實驗方式: 利用自檢插口和自檢監控可進行演示實驗,簡單可靠。0.4 支持器件k 選配51CPU適配板可支持MCS51系列CPU的實驗;k 選配88CPU適配板可支持INTEL系列CPU的實驗;k 選配Keil C超級仿真器可支持以下CPU的仿真開發:INTEL系列8位CPU:8031/32/51/52、87C51/52、8751FA/FB/FCATMEL系列8位CPU:89C51/52/54/55/2051/1051LG系列8位CPU:97C51/52、97C54/56/58/2051/1051華邦

19、系列CPU:78E51/54/58SST系列8位CPU:89C58、89C51、89C52、89C59/2051/1051 Termic系列:80C51、80C52、80C154、80C154D、89C51、89C52 Qallas系列:QS83C520、QS87C520u 綜合實驗儀傳統的單片機實驗儀,是把實驗模塊作為仿真器的一個部分進行一體化設計,即所謂的“單板式”設計方法。其在實驗過程中并不涉及“仿真狀態”(或稱工作模式)這個重要的概念,亦不能進行開發式實驗,調試的程序不能進行脫機運行。顯然,這種實驗儀的實驗過程與實際的開發步驟存在較大的差距。另外,由于此類實驗儀的仿真器,大多為單CPU

20、架構,其仿真RAM空間被實驗模塊占用,所以,其仿真性能也不適合作為仿真工具所用。超想-3000TC綜合實驗儀采用“仿真式”設計方法,仿真器與實驗平臺分離,采用“仿真”方式進行實驗,同時,允許進行脫機運行工作,所以,實驗過程是與實際開發過程完全一致。Keil C超級仿真器可滿足學生畢業設計,參加電子競爭,教師科研所需。超想-3000TC綜合實驗儀可根據教學實踐的需要實現MCS51/8088單片機、微機原理與接口實驗,并在硬件上預留了自主開發實驗的空間。該實驗儀對基本實驗僅需少量連線就可進行,以減少學員工作量,同時也提供了一些需較多連線的擴展性實驗以進一步鍛煉學員的動手能力。模塊自檢接口:“實驗連

21、線”對于學生理解實驗內容的本質,提高動手能力的培養十分必要。然而,對實驗室管理員而言,卻是工作量倍增。試想,若對所有設備的所有實驗模塊進行一次全面的檢測,將需連多少根線?工作量有多大?很顯然,“模塊自檢接口”的自檢功能十分必要。本產品的自檢監控能對所有模塊進行檢測,管理員僅需在鍵盤上輸入各自檢程序的代碼即可。1.1 實驗模塊超想-3000TC綜合實驗儀有豐富的實驗電路和靈活的組成方法。這些電路即可以和51CPU適配板(Keil C超級仿真器)組合,以完成MCS51系列實驗;也可和8086CPU適配板相連,以完成8086系列實驗(此項為選配件)。為了描述清楚,在此作統一的介紹。1.1.0 模擬信

22、號發生器:電位器電路用于產生可變的模擬量。順時鐘旋轉,電壓值加大;反之,減小。 減小 加大 1.1.1 138譯碼器為了使得MCS51、8086兼容實驗,所以ROM、RAM同64K空間統一分配地址,程序空間占用前32K(00007FFFH),數據空間占用后32K(8000H-0FFFFH),使用兩片74LS138譯碼器對后32K空間進行譯碼。其中:EPROM27C256:(0000H-7FFFH)YC0-YC1(8000H-9FFFH):6264RAM YC7(0F000H-0FFFFH):U17號74LS138選通YC6(0E000H-0EFFFH):8155YC2(0A000H-0AFFF

23、H):備用YC3(0B000H-0BFFFH):備用YS7(0FE00H-0FFFFH):DALLAS12887YS6(0FC00H-0FDFFH):自檢時的點陣LEDYS5(0FA00H-0FBFFH):LCD液晶顯示YS4(0F800H-0F9FFH):LCD液晶顯示YS2(0F400H-0F5FFH):LED發光二極管YS1(0F200H-0F3FFH):自檢時的DA0832YS0(0F000H-0F1FFH):自檢時的AD08091.1.2 開關量發生器實驗平臺上有8只撥動開關K0-K7及相應的驅動電路,以產生“1”、“0”的邏輯電平。開關向上撥相應插孔輸出高電平為“1”,反之,輸出低

24、電平為“0”。向上:1向下:01.1.3 信號發生器:由U3的74LS04、U43的74LS00組成,每按一次帶鎖開關即產生一個單脈沖。1.1.4 發光二極管組實驗平臺上有8只發光二極管,由U33的74HC245驅動,以顯示電平狀態。高電平“1” 點亮發光二極管。高電平“1”點亮1.1.5 AD0809模塊 1.1.6 8155鍵顯模塊 1.1.7 LED發光二極管總線驅動1.1.8 步進電機實驗電路超想-3000TC綜合實驗儀選用的是四相步進電機,由U25的74LS04和U21、U23的75452驅動。1.1.9 D/A0832模塊1.1.10 音響實驗:喇叭由U16的LM386驅動。1.1

25、.11 AD0809模塊1.1.12 RS232通訊模塊TDI1.1.13 壓力傳感器1.1.14 溫度傳感器1.2 常用邏輯門電路1.3 自由實驗插座超想-3000TC綜合實驗儀設計了一個擴展實驗板,以供自開發實驗用,插座全部引腳都被引出到相應的插孔,40芯、32芯、28芯、24芯、20芯、16芯、14芯、8芯通用,并按照各自的封裝標明引腳號。利用這些插座,可對雙列直插式的各種微機芯片進行實驗。鎖 緊 插 座18161412108641715131197532021394023252729313335372224262830323436381921黑色:地紅色:+5V1.4 直流電源外引插座

26、1.5 總線插孔:超想-3000TC綜合實驗儀的所有總線及控制信號均以插孔方式引出,以便進行開放式實驗。881.6 空間分配擴 展 模 塊資源分配(138譯碼)27C2560000H-7FFFH6264(YC0,YC1)8000H-9FFFH8155(YC6)0E000H-0EFFFHLCD液晶顯示(YS4-YS5)0F800H-0FBFFHDS12887(YS7)0FE00H-0FFFFHLED二極管總線驅動(YS2)0F400H-0F5FFH自檢時AD0809(YS0)0F000H-0F1FFH自檢時DA0832(YS1)0F200H-0F3FFH自檢時點陣LED(YS6)0FC00H-0

27、FDFFH自檢時微型打印機YC2(0A000H-0AFFFH)備 用(YC2)0A000H-0AFFFH備 用(YC3)0B000H-0BFFFH第節 實驗例程 (MCS51)軟 件 實 驗實驗一 拆字程序實驗一、實驗目的:掌握匯編語言設計方法。二、實驗內容:把8000H地址上的內容拆開,高位送8001H地址的低位,低位送8002H地址的低位,8001H、8002H地址的高位清零.本程序通常在把數據送顯示緩沖區時使用。三、實驗器材: 計算機 1臺四、實驗步驟: 1、在PC機上用鼠標點擊“KEIL uvision 2”圖標,進入KEIL調試環境。2、打開“項目/新建項目”,輸入項目名,選擇目標M

28、CU,如:atmeal 89S51。3、編輯文件:用鼠標點擊文件|新文件,在文本編輯器中輸入匯編語言或C51語言程序代碼。4、文件保存:用鼠標點擊文件|保存,在對話框中輸入文件名。如果是匯編語言程序文件名的后綴為.asm;如果是C51語言程序文件名的后綴為.c5、為項目添加文件:右鍵單擊左邊的項目工作區/源代碼組1,在出現菜單中選擇添加文件到組“源代碼組1”,在彈出的對話框中選中您剛保存的文件,點擊確認完成項目文件的添加。6、項目設置:單擊項目菜單,在出現的下拉菜單中選擇為目標“目標1”設置選項,在彈出的菜單中選擇輸出選項卡,在產生HEX文件選項前打勾; 再選擇調試 選項卡,在新窗口中選擇使用

29、左邊的模擬仿真器。7、文件編譯、連接、裝載:用鼠標點擊“下箭頭”快捷按紐,系統自動進行編譯,并出現信息窗口。若有語法錯誤,則需重新修正,重新修正后需再次執行重建所有目標文件;若無語法錯誤,點擊調試/啟動/停止調試快捷按紐后,進入調試狀態。8、設置觀察窗口:用鼠標點擊視圖/存儲口窗口,在地址欄中輸入D:0X8000,將地址定位于8000H。 9、在8000H寫入任意數據:右鍵點擊存儲口窗口中8000H地址的內容,在新窗口中輸入數據即可。10、單步執行程序:按單步運行鍵一條一條地執行程序,檢查8001H、8002H,A,B中內容變化情況。11、連續運行:用鼠標點擊外圍設備/復位CPU,使PC指向0

30、000H,點擊調試/運行后,程序開始連續運行。如需暫停,用鼠標點擊調試/停止運行。12、斷點運行:要使程序執行到某條指令處暫停,如希望程序執行到LOOP處暫停,可按如下操作:將光標移到LOOP處雙擊鼠標左鍵,即可設置斷點,用鼠標點擊調試/運行,程序將在LOOP行停止運行。13、復位:用鼠標點擊外圍設備/復位CPU,強迫PC指向0000H。五、程序框圖:程序流程圖如圖1所示。六、實驗程序 (匯編語言供參考);把指定字節的高低位拆開分別存放,多用于顯示子程序ORG 0000HMOV DPTR,#8000H;指定的字節MOVX A,DPTR8000H內容送A高低位交換屏蔽高位后送8001H8000內

31、容送A屏蔽高位后送8002H結 束MOV B,A;暫存 SWAP A ;交換ANL A,#0FH ;屏敝高位INC DPTRMOVX DPTR,AINC DPTRMOV A,BANL A,#0FH ;指定字節的內容屏敝高位MOVX DPTR,ALOOP:SJMP LOOPEND圖1拆字程序流程圖七、思考題,請用C51語言編程實現上述功能。實驗二 拼字程序實驗一、實驗目的:1、進一步掌握匯編語言設計;2、熟悉軟件調試方法。二、實驗內容:把8000H、8001H兩個字節的低位分別送入8002H的高位和低位。本程序一般用于把顯示緩沖區數據取出拼裝成一個字節。三、實驗器材:計算機 1臺四、實驗步驟:前

32、8步同實驗一。 9、在8000H、8001H中寫入任意數據。10、單步執行程序:按F11鍵一條一條地執行下去,檢查8002H,A,B中內容變化情況。11、連續運行:用鼠標點擊外圍設備/復位CPU,使PC指向0000H,點擊調試/運行后,程序開始連續運行。如需暫停,用鼠標點擊調試/停止運行。12、斷點運行:要使程序執行到某條指令處暫停,如希望程序執行到LOOP處暫停,可按如下操作:將光標移到LOOP處雙擊鼠標左鍵,即可設置斷點,用鼠標點擊調試/運行,程序將在LOOP行停止運行。13、復位:用鼠標點擊外圍設備/復位CPU,強迫PC指向0000H五、程序框圖:拼字程序流程圖如圖2所示。六、思考問題:

33、1、修改8000H、8001H內容重復上述實驗。2、請用C51語言編程實現上述功能。七、實驗程序:(匯編出程序供參考);把兩字節的低位合拼成一個字節,多用于顯示子程序ORG 0000h8000H的內容送A,屏蔽高位交換高低位送B屏蔽高位后送200H8001H的內容送A,屏蔽高位A和B或后送8002H結 束MOV DPTR,#8000HMOVX A,DPTRANL A,#0FH;屏敝高位SWAP AMOV B,A ;保存INC DPTRMOVX A,DPTRANL A,#0FHORL A,B ;合拼INC DPTRMOVX DPTR,A;送8002H存放LOOP:SJMP LOOPEND 圖2拼

34、字程序流程圖實驗三 數據區傳送子程序實驗一、實驗目的:學習Windows平臺下的編輯、編譯、排錯調試方法。二、實驗內容:把外部擴展RAM(6264)的8000H-807FH中的內容傳送到8080H開始的空間中去。R2.R3存放源RAM區首址,R6.R7存放需傳送的字節數,R4.R5存放目的RAM區首址。三、實驗器材:計算機 1 臺 四、實驗步驟:前8步同實驗一。9、在8000H-807FH中寫入任意數據。10、單步執行程序:按F11鍵一條一條地執行下去,檢查8080H開始的空間中內容變化情況。11、連續運行:用鼠標點擊外圍設備/復位CPU,使PC指向0000H,點擊調試/運行后,程序開始連續運

35、行。如需暫停,用鼠標點擊調試/停止運行。12、斷點運行:要使程序執行到某條指令處暫停,如希望程序執行到LOOP處暫停,可按如下操作:將光標移到LOOP處雙擊鼠標左鍵,即可設置斷點,用鼠標點擊調試/運行,程序將在LOOP行停止運行。13、復位:用鼠標點擊外圍設備/復位CPU,強迫PC指向0000H開 始字節數到嗎?源地址內容送AA送目的地址源地址加1目地址加1結 束五、程序框圖:如圖3所示六、實驗程序:匯編語言僅供參考 ORG 0000HLOOP0: MOV DPL,R3MOV DPH,R2;建立源程序首地址 MOVX A,DPTR;取數 MOV DPL,R5 MOV DPH,R4;目標首地址L

36、OOP:MOVX DPTR,A ;傳送 CJNE R3,#0FFH,LOOPA INC R2LOOPA:INC R3;源地址加1 CJNE R5,#0FFH,LOOP1 INC R4LOOP1:INC R5;目地址加1圖3 數據傳送子程序流程圖 CJNE R7,#00H,LOOP2 CJNE R6,#00H,LOOP3LOOP4: SJMP LOOP4LOOP2: DEC R7;字節數減1 SJMP LOOP0LOOP3: DEC R7 DEC R6 SJMP LOOP0;未完繼續END七、思考題1、如果外部擴展RAM(6264)的8000H-807FH中的內容傳送到內部RAM30H開始的空間

37、中去,程序如何修改?請編程操作運行。2、將上述程序用c51編程實現,請編程操作運行硬 件 實 驗實驗四 八段數碼管顯示實驗一、實驗目的:1、了解數碼管動態顯示的原理。2、了解74LS164擴展端口的方法。二、實驗要求:利用實驗儀提供的顯示電路,動態顯示一行數據。三、實驗線路:這里只是顯示草圖,詳細原理參見前面綜合實驗儀的1.1.6 “8155鍵顯模塊”。圖4四、實驗器材:1、超想-3000TC綜合實驗儀 1 臺 2、KEIL仿真器 1 臺 五、實驗說明:1、本實驗儀提供了8段碼數碼管LED顯示電路,學生只要按地址輸出相應數據,就可以實現對顯示器的控制。顯示共有6位,采用動態方式顯示。8段數碼管

38、是由8155的PB0、PB1經74LS164“串轉并”后輸出得到。6位位碼由8155的PA0口輸出,經uA2003反向驅動后,選擇相應顯示位。74LS164是串行輸入并行輸出轉換電路,串行輸入的數據位由8155的PB0控制,時鐘位由8155的PB1控制輸出。寫程序時,只要向數據位地址輸出數據,然后向時鐘位地址輸出一高一低兩個電平就可以將數據位移到74LS164中,向顯示位選通地址輸出高電平就可以點亮相應的顯示位。本實驗儀中數據位輸出地址為0e102H,時鐘位輸出地址為0e102H,位選通輸出地址為 0e101H。本實驗涉及到了8155 I0/RAM擴展芯片的工作原理以及74LS164器件的工作

39、原理。2、七段數碼管的字型代碼表如表1:表1共陰數碼管字型碼表顯示字形gfedcba段碼001111113fh a f b g e c d 。dp圖5數碼管外形圖1000011006h210110115bh310011114fh4110011066h511011016dh611111017dh7000011107h811111117fh911011116fhA111011177h B11111007chC011100139hD10111105ehE111100179hF111000171h六、程序框圖:是返回否開始初始化顯示參數關所有位顯示取顯示數據數據移位輸出到164輸出時鐘脈沖到164 8

40、段碼完成輸出位選通信號延時位選通信號移位指向下一個顯示數據6位完成否是圖6 顯示程序框圖 七、實驗步驟:1、將KEIL仿真器上40芯排線一端和實驗箱上51CPU板上的40芯排針連接起來,將仿真器連接的USB或串口線與PC機對應的USB或串口連接起來,打開實驗箱電源。2、測試USB線使用的串行口:右擊“我的電腦”,選擇“硬件”“設備管理器”“端口”,查看USB線使用的串行口號。3、進入KEIL軟件界面,點擊項目/打開項目,在C:KEILUV23000TC51配套實驗例程中選擇實驗一,內有ASM和C51兩種程序,進入ASM或C51文件夾打開LED項目文件。4、項目設置:單擊項目菜單,在出現的下拉菜

41、單中選擇為目標“目標1”設置選項,在彈出的菜單中選擇輸出選項卡,在產生HEX文件選項前打勾; 再選擇調試 選項卡,在新窗口中選擇使用右邊的硬件仿真器,并選擇使用Keil monitor-51 Driver。單擊右邊的“設置”按紐,在出現的窗口中設置串口號為上面第2步測試的串行口號,并設置波特率(注:波特率必須為38400)。5、文件編譯、連接、裝載:用鼠標點擊“下箭頭”快捷按紐,系統自動進行編譯,并出現信息窗口。若有語法錯誤,則需重新修正,重新修正后需再次執行重建所有目標文件,直到無語法錯誤。6、調式運行:點擊“調試/啟動/停止調試”,進入調試界面,點擊“調試/運行”可看到8段數碼管交替顯示0

42、F八、實驗參考程序: #include#define LEDLen 6#define mode 0x03;#define CAddr XBYTE0xe100/* 控制字地址 */#define OUTBIT XBYTE0xe101/* 位控制口 */#define CLK164 XBYTE0xe102/* 段控制口(接164時鐘位) */#define DAT164 XBYTE0xe102 /* 段控制口(接164數據位) */#define IN XBYTE0xe103 /* 鍵盤讀入口 */ unsigned char LEDBufLEDLen; /* 顯示緩沖 */code unsign

43、ed char LEDMAP = /* 八段管顯示碼 */ 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71;void Delay(unsigned char CNT) unsigned char i; while (CNT- !=0) for (i=100; i !=0; i-);void DisplayLED() unsigned char i, j; unsigned char Pos; unsigned char LED; Pos = 0x20;

44、/* 從左邊開始顯示 */ for (i = 0; i LEDLen; i+) OUTBIT = 0; /* 關所有八段管 */ LED = LEDBufi; for (j = 0; j 8; j+) /*送164*/ if (LED & 0x80) DAT164 = 1; else DAT164 = 0; CLK164 = CLK164|0x02; CLK164 = CLK164&0xfd; LED = 1; /* 顯示下一位 */ OUTBIT = 0; /* 關所有八段管 */void main() unsigned char i = 0; unsigned char j; CAddr = mode; while(1) LEDBuf0 = LEDMAP i & 0x0f; LEDBuf1 = LEDMAP(i+1) & 0x0f; LEDBuf2 = LEDMAP(i+2) & 0x0f; LEDBuf3 = LEDMAP(i+3) & 0x0f; LEDBuf4 = LEDMAP(i+4) & 0x0f; LEDBuf5 = LEDMAP(i+5) & 0x0f; i+; for(j=0; j30; j+) DisplayLED(); /* 延時 */ 九、思考題1、 修改程序,如何讓六個LED上恒定地形式1-6

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論