實驗一 學習PROTEUS的基本使用方法_第1頁
實驗一 學習PROTEUS的基本使用方法_第2頁
實驗一 學習PROTEUS的基本使用方法_第3頁
實驗一 學習PROTEUS的基本使用方法_第4頁
實驗一 學習PROTEUS的基本使用方法_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、實驗一 學習(xux)PROTEUS的基本使用方法共二十八頁2.源程序:; Test program for external memory.; Write data to memory, then read it back.; The program loops forever. org 0loop1: SETB P1.0 JNB P1.1 ,PP1 JMP LOOP1 PP1: CLR P1.0 jmp PP1org 0:程序開始Loop1:循環(huán)SETB P1.0:將位P1.0設置為1JNB P1.1 ,PP1:判斷P1.1是否為1,若等于1,則順序(shnx)執(zhí)行,否則轉移JMP LOO

2、P1:轉移指令,跳轉到LOOP1PP1: CLR P1.0:將位P1.0設置為0jmp PP1:轉移指令,跳轉到PP1END:結束運行共二十八頁七段數(shù)碼管的使用(shyng)若f=12MHZ,延遲時間為0.1s,求X=?解:一個(y )機器周期為1212us1us 2+X(2+2002+2)=0.110 X=(0.110-2)/(2+2002+2)=248D=F8H共二十八頁MOV A,#3FH:將數(shù)據(jù)3FH送到累加器A中CPL A:將A中的數(shù)據(jù)取反,即00111111取反為11000000,轉換十六進制為C0HMOV P1,A:將A中的數(shù)據(jù)送到P1口中,此時數(shù)碼管顯示(xinsh)的數(shù)字為0

3、ACALL DELAY:延時0.1s同理:MOV A,#06HCPL AMOV P1,A:此時數(shù)碼管顯示的數(shù)字為1ACALL DELAYMOV A,#66HCPL AMOV P1,A此時數(shù)碼管顯示的數(shù)字為2ACALL DELAYMOV A,#4FHCPL AMOV P1,A此時數(shù)碼管顯示的數(shù)字為3ACALL DELAYMOV A,#66HCPL AMOV P1,A此時數(shù)碼管顯示的數(shù)字為4ACALL DELAYDELAY: MOV R7,#1(X):下面指令執(zhí)行1次 DEL1:MOV R6,#200:執(zhí)行200次DEL2 DEL2:DJNZ R6,DEL2 若R6-1=0,則往下執(zhí)行,否則轉移

4、DJNZ R7,DEL1 若R7-1=0,則往下執(zhí)行,否則轉移 RETEND 結束運行共二十八頁 實驗三 中斷(zhngdun)功能的使用共二十八頁1、要求單片機接收(jishu)中斷信號后,在LED上輪流顯示不同的數(shù)據(jù)org 0 程序開始AJMP MAINorg 0003HAJMP WBIORG 0030HMAIN:MOV P1,#0FFH 設置初值CLR IT0 允許中斷SETB EX0 SETB EA HERE: AJMP HEREWBI:MOV A,#08H 08H00001000顯示8 mov R0,#20 循環(huán)20次KK: MOV P1,ARR ADJNZ R0,KKRETI 返回

5、主程序END2、要求單片機接收中斷信號后,輪流點亮發(fā)光管org 0AJMP MAINorg 0003HAJMP WBIORG 0030HMAIN:MOV P1,#0FFH 設置初值CLR IT0SETB EX0SETB EA 允許中斷HERE: AJMP HEREWBI:MOV A,#0FEH 0FEH為11111110最后一個燈被點亮mov R0,#20 循環(huán)20次KK: MOV P1,A 點亮發(fā)光(f un)二極管RR ADJNZ R0,KKRETI 返回主程序END共二十八頁實驗四 定時器實驗 1、單片機P1.0產生方波,高低電平時間(shjin)長度一致。 2、單片機P1.0產生占方波

6、,高低電平時間相差一倍。共二十八頁ORG 00H 程序開始JMP MAINORG 001BHJMP II1MAIN:MOV TMOD, #10H T1為方式(fngsh)1,產生周期是500s的脈沖方波 MOV TH1, #0FFH MOV TL1,#83H 定時250s產生一次變換 SETB EA 允許中斷 SETB ET1 SETB TR1 啟動定時 PP: SJMP PP 等待中斷II1:MOV TH1,#0FFH 重新設置初值MOV TL1,#83H CPL P1.0 輸出取反 RETI2、單片機P1.0產生占方波,高低電平時間相差一倍。MAIN: MOV TMOD, #10H ; T

7、1為方式(fngsh)1,PP3: MOV TH1, #0FFH MOV TL1, #38H ; 設置高低電平的時間值 SETB TR1 ; 啟動定時 JMP PP PP: JBC TF1,PP2 SJMP PP PP2: CPL P1.0 JMP PP5 SJMP PP4PP4: MOV TL1,#9CH MOV TH1,#0FFH ; 設置高低電平的時間值 SJMP PPPP5: JNB P1.0,PP3 JB P1.0,PP4共二十八頁單片機實驗五 定時器實驗(C語言方法)主要是學會定時器實驗程序的編寫(binxi),示波器的正確使用。學會用中斷方式編寫(binxi)并運行。學會用查詢方

8、式編寫(binxi)并運行。共二十八頁查詢方式 #include sbit P1_0=P10; 取p1口第零位(ln wi) void main(void) TMOD=0 x01; 指的是采用T0方式,將M1置0,M0置1,是方式一的定時器 TR0=1; 啟動定時器0for(;) 無終止地執(zhí)行循環(huán)體 TH0=-(1000/256); 定1000us,把高8位送TH0 TL0=-(1000%256); 低8位送TL0 dowhile( !TF0); 無限循環(huán)直到while中的條件為假 P1_0=!P1_0; P1_0這個變量按位取反再賦給自己 TF0=0; TF0等于0候循環(huán)進行TF0等于0的時

9、候結束 中斷方式 #include sbit P1_0=P10; 取p1口第零位 void timer0(void) interrupt 1 using 1 指的是采用T0方式,將M1置0,M0置1,是方式一的定時器 P1_0=!P1_0; P1_0這個變量按位取反再賦給自己 TH0=-(1000/256); 定1000us,把高8位送TH0 TL0=-(1000%256); 低8位送TL0void main(void) TMOD=0 x01; 指的是采用T0方式,將M1置0,M0置1,是方式一的定時器 P1_0=0; P1_0為0 TH0=-(1000/256); 把高8位送TH0 TL0=

10、-(1000%256); 低8位送TL0 EA=1; 允許中斷 ET0=1; TR0=1; 啟動定時dowhile(1); 無限循環(huán)直到(zhdo)while中的條件為假 共二十八頁單片機實驗(shyn)六 串口通迅實驗(shyn)串口通迅實驗程序的編寫、七段LED使用共二十八頁1.MOV TMOD,#20HMOV TH1,#0F3HMOV TL1,#0F3HSETB TR1MOV PCON,#80HMOV SCON,#50H以上為初始化過程以及(yj)工作方式為方式1TX: MOV A,P1SWAP A將寄存器A中數(shù)據(jù)的高四位和低四位的值交換MOV SBUF,A把累加器A中的數(shù)放到SBUF中

11、WAIR1: JBC TI, PP檢測T1,T1=1,清0后,進行PP,否則循環(huán)SJMP WAIR1PP: NOPEND2.MOV TMOD,#20HMOV TH1,#0F3HMOV TL1,#0F3HSETB TR1MOV PCON,#80HMOV SCON,#50H以上為初始化過程(guchng)以及工作方式為方式1RX:JBC RI,NEXT檢測R1,R1=1,清0后,進行NEXT,否則循環(huán)SJMP RXNEXT:MOV A,SBUF把SBUF中的數(shù)放到累加器A中MOV P1,A把累加器A中的數(shù)放到P1中NOPSJMP RX END共二十八頁單片機實驗七 D/A實驗 學習(xux)實現(xiàn)D

12、/A轉換的方法共二十八頁共二十八頁ORG 0START:MOV DPTR,#7FFFH 選中0832STEP1: MOV A,#00H D/A數(shù)據(jù)初值STEP2:MOVX DPTR,A 轉換(zhunhun) INC A 累加器自動加1 CJNE A,#0FFH,STEP2 判斷累加器是否加滿,執(zhí)行step2,否則順序執(zhí)行STEP3:DEC A 累加器自動減1 MOVX DPTR,A 轉換 CJNE A,#01H,STEP3 判斷累加器是否為1,如果不是繼續(xù)執(zhí)行step3,否則順序執(zhí)行 AJMP STEP1 跳轉step1 RET END共二十八頁單片機實驗八 A/D轉換設計(shj)簡單的數(shù)

13、據(jù)采集系統(tǒng)共二十八頁ORG 0000HAJMP MAIN 跳轉到主程序ORG 0013HAJMP PP1 跳轉到PP1MAIN: MOV DPTR,#7FFFH 選中0832 SETB IT1 下降沿觸發(fā) SETB EX1 允許外部中斷 SETB EA 總開關打開 MOV P1,#00H 設置(shzh)P1的初值READ:MOVX DPTR,A 啟動A/DHERE:SJMP HERE 死循環(huán),直至A/D轉換完進行下面的程序PP1: MOVX A,DPTR 將DPTR 中的數(shù)據(jù)傳遞到A中 MOV P1,A 將A中的數(shù)據(jù)傳遞到P1中 MOVX DPTR,A 重新啟動A/DRETI 中斷返回指令E

14、ND 結束共二十八頁IO口擴展實驗(shyn) 利用273,244進行IO口擴展:共二十八頁org 0CLR P2.5MOV DPTR, #0DFFH 設置成可以讀數(shù)據(jù)的狀態(tài)MOVX A,DPTR 8031讀入數(shù)據(jù)(shj)MOV DPTR, #7FFFH MOVX DPTR,A 寫入控制字END共二十八頁單片機實驗(shyn)十 8255IO口擴展實驗共二十八頁ORG 0MOV DPTR,#7F03HMOV A,#90H 設置工作方式(fngsh)PP:MOVX DPTR,AMOV DPTR,#7F00H MOVX A,DPTR 讀入數(shù)據(jù)MOV DPTR,#7F01H MOVX DPTR,A

15、 讀出數(shù)據(jù)JMP PPEND共二十八頁實驗十一 D/A轉換 1、利用DAC0832 進行D/A轉換,產生三角波, 并用示波器觀察波形。 2、實驗報告中應包括(boku):原理圖、 源程序以及實驗分析 利用DAC0832 的雙緩沖模式進行D/A轉換,產生兩組同步 三角波,用視波器觀察波形。共二十八頁共二十八頁實驗(shyn)源程序:(C語言)#include#include#define DAC1 XBYTE0 xfeff#define DAC2 XBYTE0 xfDff#define DAOUT XBYTE0 xEfffvoid main(void) unsigned char data1=0X00,data2=0Xff;while(1) DAC1= data1;DAC2=data2;DAOUT= data2;共二十八頁IO口擴展實驗實驗程序的C語言編寫。利用(lyng)74LS244,74LS273進行IO口擴展,讀入按鍵信息,在LED上顯示出來。共二十八頁#includeunsigned char xdata * port; /定義訪問的外部端口變量(binling)void main()unsigned char tmp;port=0 xfeff; /定義外部端口地址* port=0 xff;while(1)tmp=* port; /從74LS244讀取數(shù)據(jù)if(tm

溫馨提示

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

評論

0/150

提交評論