單片機(jī)實(shí)驗(yàn)報(bào)告范文_第1頁
單片機(jī)實(shí)驗(yàn)報(bào)告范文_第2頁
單片機(jī)實(shí)驗(yàn)報(bào)告范文_第3頁
單片機(jī)實(shí)驗(yàn)報(bào)告范文_第4頁
單片機(jī)實(shí)驗(yàn)報(bào)告范文_第5頁
已閱讀5頁,還剩22頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、實(shí) 驗(yàn) 報(bào) 告 課程名稱 計(jì)算機(jī)測(cè)控技術(shù) 實(shí)驗(yàn)項(xiàng)目 單片機(jī) 實(shí)驗(yàn)儀器 keil4.0 系 別 儀器科學(xué)與光電工程 專 業(yè) 測(cè)控技術(shù)與儀器 班級(jí)/學(xué)號(hào) 學(xué)生姓名 實(shí)驗(yàn)日期 成 績(jī) 指導(dǎo)教師 實(shí)驗(yàn)一 單片機(jī)程序設(shè)計(jì)基礎(chǔ)一實(shí)驗(yàn)設(shè)備硬件使用的是單片機(jī)SS-8051高級(jí)單片機(jī)實(shí)驗(yàn)儀,軟件使用的是Keil uv2軟件開發(fā)環(huán)境。二 實(shí)驗(yàn)?zāi)康?熟悉單片機(jī)的調(diào)試環(huán)境與指令系統(tǒng)三實(shí)驗(yàn)內(nèi)容 自編一個(gè)匯編小程序,使用Keil uv2軟件開發(fā)環(huán)境,進(jìn)行編譯、調(diào)試、運(yùn)行程序。Keil uv2 操作流程的簡(jiǎn)單說明:1 NEW PROJECT ,建一個(gè)新的項(xiàng)目,取項(xiàng)目名并存于F:盤下(最好在F盤下建一個(gè)自己的文件夾)。在出現(xiàn)

2、的對(duì) 話框中選Atmel/AT89c51 芯片型號(hào);或者可以從File/ devices database 的對(duì)話框中選擇芯片型號(hào)。2 FILE/ NEW ,建立一個(gè)新文件,在打開的窗口下輸入程序,取文件名并存盤。3 選中Source Group1點(diǎn)擊鼠標(biāo)右鍵,在出現(xiàn)的菜單中選中 Add Files to Group Source Group1,將文件加入到項(xiàng)目中。4 選中Target1點(diǎn)擊鼠標(biāo)右鍵,在出現(xiàn)的菜單中選中Options for Target Target1:l 在出現(xiàn)的對(duì)話框中打開output項(xiàng)的對(duì)話框,選中Great HEX File,以保證編譯時(shí)能生成.HEX文件,為后續(xù)下載

3、程序做準(zhǔn)備。l 在出現(xiàn)的對(duì)話框中打開debug項(xiàng)的對(duì)話框,選中Use “keil monitor 51-driver”,并將其下的選項(xiàng)均選中系統(tǒng)處于在線下載調(diào)試狀態(tài)。5 Project/Build target或Rebuild all target files, 編譯所輸入的程序,檢查語法錯(cuò)誤,更改錯(cuò)誤直至無錯(cuò)為止。6 Debug/ Start/Stop Debug Session ,開始調(diào)試程序,單步或斷點(diǎn)運(yùn)行程序額,檢查邏輯錯(cuò)誤。4 實(shí)驗(yàn)程序#include <reg51.h>unsigned int code chOriginalSet10=30,30,550,30,8,30

4、,550,30,8,1; /*閥序時(shí)間間隔設(shè)置*/unsigned char code chFarXu9=0x00,0x51,0x55,0x45,0x80,0x62,0x6a,0x4a,0x80; /*閥序*/void delay(unsigned int times);main() unsigned char i; while(1) for(i=1;i<9;i+) P1=chFarXui; delay(chOriginalSeti); void delay(unsigned int times) unsigned int i,j,t; t=10000; for(i=0;i<tim

5、es;i+) for(j=0;j<t;j+); /*10個(gè)機(jī)器周期 對(duì)于 12MHz,10us */ 實(shí)驗(yàn)二 51單片機(jī)的串行通信實(shí)驗(yàn)一 實(shí)驗(yàn)內(nèi)容連線并編制程序,完成單片機(jī)與PC機(jī)通信的功能。 二 實(shí)驗(yàn)?zāi)康?1. 了解單片機(jī)串口通信的基本功能;2. 了解單片機(jī)與PC機(jī)串口通信的硬件接口電路;3. 學(xué)會(huì)單片機(jī)和PC機(jī)串口程序的編制和調(diào)試。三 實(shí)驗(yàn)電路四連線方法 電路單元2單元7單元14單元連接一P30R1O連接二P31T1I連接三T1O接P2連接四R1I接P3連接五GNDP55 常用的各種波特率設(shè)置表波特率振蕩頻率SMODTIMERC/T模式自動(dòng)裝入480012M1020F3H240012

6、M0020F3H120012M1020F6H19200110592M1020FDH9600110592M0020FDH4800110592M0020FAH2400110592M0020F4H1200110592M0020E8H6 實(shí)驗(yàn)程序1、匯編程序ORG00HAJMPSTART;設(shè)置主程序地址ORG30HSTART:MOVSP,#60H;設(shè)置SP的值MOVTH1,#0FeH;設(shè)置波特率為9600MOVTL1,#0FeHMOVTMOD,#00100000B;選擇計(jì)時(shí)器1方式2產(chǎn)生波特率MOVIE,#00H;禁止所有的中斷,采用查詢方式MOVSCON,#01010000B;設(shè)置串口為方式1,接收

7、允許SETBTR1;啟動(dòng)定時(shí)器1AGAIN:ACALL IN;接收字符子程序ACALLOUT;回送字符子程序AJMPAGAIN;循環(huán)out:movsbuf,a;發(fā)送字符子程序wait:jbc ti,end1;發(fā)送完畢返回sjmpwait;否則等待TI=1end1:retin:jbcri,end2;接收到字符(RI=1)時(shí)啟動(dòng)接收sjmpin;否則查詢是否接收到字符end2:mova,sbuf;啟動(dòng)接收retEND ;程序結(jié)束 2、 C語言程序程序清單(C51):#include<reg51.h>#include <intrins.h>typedef unsigned c

8、har Byte;BytedataAA;voidOUT(void)SBUF=AA;/*發(fā)送字符子程序*/wait:if(TI=1)TI=0;goto end1;/*發(fā)送完畢返回*/gotowait;/*否則等待TI=1*/end1:_nop_();void IN(void)in1:if(RI=1)RI=0;goto end2;/*接收到字符(RI=1)時(shí)啟動(dòng)接收*/goto in1;/*否則查詢是否接收到字符*/end2:AA=SBUF;/*啟動(dòng)接收*/voidmain(void)TH1=0xF3;/*設(shè)置波特率為2400*/TL1=0xF3;/*設(shè)置波特率為2400*/TMOD=0x20;/

9、*選擇計(jì)時(shí)器1方式2產(chǎn)生波特率*/IE=0;/*禁止所有的中斷,采用查詢方式*/SCON=0x50;/*設(shè)置串口為方式1,接收允許*/TR1=1;/*啟動(dòng)定時(shí)器1*/AGAIN:IN();/*接收字符子程序*/OUT();/*回送字符子程序*/goto AGAIN;/*循環(huán)*/7 實(shí)驗(yàn)截圖實(shí)驗(yàn)三 V/F轉(zhuǎn)換電路實(shí)驗(yàn)1、 實(shí)驗(yàn)內(nèi)容V/F轉(zhuǎn)換電路的調(diào)試。 2、 實(shí)驗(yàn)要求1、 在了解LM331工作原理(轉(zhuǎn)換原理)的基礎(chǔ)上,考慮以下幾個(gè)問題:輸入電壓范圍;輸出頻率范圍;輸入和輸出間的對(duì)應(yīng)關(guān)系。 2、 調(diào)試電路,直至V/F轉(zhuǎn)換器可以正確輸出波形。如果V/F轉(zhuǎn)換器沒有輸出或輸出波形不理想,請(qǐng)分析查找原因,

10、并將波形調(diào)至等占空比。 3、 用示波器、頻率計(jì)等工具觀察V/F轉(zhuǎn)換器的輸出波形,觀察定標(biāo)調(diào)整環(huán)節(jié)W1,W2和W3對(duì)波形的影響。 4、 通過實(shí)測(cè)數(shù)據(jù)分析V/F轉(zhuǎn)換器的線性,畫出實(shí)際的V、F對(duì)應(yīng)關(guān)系。3、 實(shí)驗(yàn)電路圖 四、實(shí)驗(yàn)數(shù)據(jù)處理V(V)4.9734.0293.5003.0052.4991.9991.5041.0010.502F(Hz)6.645.384.634.003.322.662.001.320.67實(shí)驗(yàn)四 V/F轉(zhuǎn)換的數(shù)據(jù)采集 一 實(shí)驗(yàn)內(nèi)容連線并編制程序:使用定時(shí)器和計(jì)數(shù)器完成 LM331脈沖輸出信號(hào)的采集功能, 對(duì)采集的數(shù)據(jù)進(jìn)行處理,最終得到頻率值。二 實(shí)驗(yàn)?zāi)康? 定時(shí)器中斷的使用;

11、2 學(xué)習(xí)定時(shí)器中斷間隔時(shí)間的計(jì)算;3 掌握計(jì)數(shù)器的使用方法;4 學(xué)習(xí)中斷處理程序的編程方法。三 原理簡(jiǎn)述1定時(shí)器/計(jì)數(shù)器的輸入脈沖周期與機(jī)器周期一樣,為振蕩器頻率的1/12。本實(shí)驗(yàn)中時(shí)鐘頻率為12M,現(xiàn)要采用中斷方法來實(shí)現(xiàn)1秒延時(shí),要在定時(shí)器1中設(shè)置一個(gè)時(shí)間常數(shù),使其每隔0.05秒產(chǎn)生一次中斷,CPU響應(yīng)中斷后R0中計(jì)數(shù)值減一,令(R0)=14H,即可實(shí)現(xiàn)1秒的延時(shí),時(shí)間常數(shù)可按下法確定:機(jī)器周期=12/晶振頻率=12/12=1uS定時(shí)器需設(shè)初值為X,則(216X)*1=50000uS求出X=15536化為十六進(jìn)制:X=3CB0H,故初始值為:TH1=3CH,TL1=B0H。2. 初始化程序包

12、括定時(shí)器初始化和中斷系統(tǒng)初始化,主要對(duì)IP,IE,TCON,TMOD的相應(yīng)位進(jìn)行正確的設(shè)置,并將時(shí)間常數(shù)送入定時(shí)器中。由于只有定時(shí)器中斷,IP不必設(shè)置。注意一點(diǎn):定時(shí)器1初始化時(shí)建議用如下的指令:ANLTMOD,#0FHORLTMOD,#10H3. 設(shè)計(jì)中斷服務(wù)程序和主程序中斷服務(wù)程序除了要完成計(jì)數(shù)減1工作外,還要將時(shí)間常數(shù)重新送入定時(shí)器中,為下一次中斷做準(zhǔn)備。主程序則對(duì)計(jì)數(shù)器的數(shù)值進(jìn)行處理,轉(zhuǎn)換成頻率值。 實(shí)驗(yàn)五 7279鍵盤顯示控制實(shí)驗(yàn)一 實(shí)驗(yàn)題目連線并編制程序,將HD7279A的全部編碼送HD7279A顯示,以一秒鐘為間隔顯示下一位,以前的顯示內(nèi)容左移。二 實(shí)驗(yàn)?zāi)康? 了解HD7279A

13、鍵盤顯示芯片的基本應(yīng)用;2 掌握HD7279A鍵盤顯示芯片的接口電路及編程方法。三 原理簡(jiǎn)述HD7279A是一片具有串行接口的,可同時(shí)驅(qū)動(dòng)8位共陰式數(shù)碼管(或64只獨(dú)立LED)的智能顯示驅(qū)動(dòng)芯片,該芯片同時(shí)還可連接多達(dá)64鍵的鍵盤矩陣,單片即可完成LED顯示、鍵盤接口的全部功能。HD7279A內(nèi)部含有譯碼器,可直接接受BCD碼或16進(jìn)制碼,并同時(shí)具有2種譯碼方式,此外還有多種控制命令,如消隱、閃爍、左移、右移、段尋址等。命令的具體形式可查閱HD7279A相關(guān)的技術(shù)資料。四 實(shí)驗(yàn)電路五 連線方法電路單元2單元6單元8單元9單元連接一P1.2-P1.5DATA,/KEY,/CS,/CLK(JP38

14、.2-JP38.5)連接二左邊的DG0-DG56G-1G連接三SA-DPB7-B0連接四右邊的DG0-DG3C0-C3連接五SA-SCC4-C6連接六JP16跳線接GND另外,在實(shí)驗(yàn)之前,應(yīng)將8單元的U7(7406)和U6(74LS245)芯片取下,因7279已經(jīng)有直接驅(qū)動(dòng)數(shù)碼管的能力,如果另外放置驅(qū)動(dòng)芯片,反而會(huì)影響數(shù)碼管的顯示效果。六 實(shí)驗(yàn)程序程序清單(C51):#include<reg51.h>/*C51內(nèi)部資源定義*/#include <intrins.h>typedef unsigned char Byte;/*下面的程序中用Byte代替unsigned ch

15、ar*/bdata Byte BIT_COUNT,TIMER,TIMER1,TEN,DATA_IN,DATA_OUT,AA,BB;sbit data_in0=DATA_IN0;sbit data_out7=DATA_OUT7;sbit DAT=P12;/*HD7279A的DATA連接于P1.2*/sbit KEY=P13;/*HD7279A的KEY(鍵盤中斷信號(hào))連接于P1.3*/sbit CS=P14;/*HD7279A的CS(片選信號(hào))連接于P1.4*/sbit CLK=P15;/*HD7279A的CLK連接于P1.5*/void SEND(void);/*發(fā)送*/void LONG_DE

16、LAY(void);/*長(zhǎng)延時(shí)*/void SHORT_DELAY(void);/*短延時(shí)*/void RECEIVE(void);/*接收*/void main(void)/*主程序*/START:_nop_();/*啟動(dòng),短延時(shí)幾微秒*/P1=0xDB; /*給P1賦值0xDB*/TIMER=50;/*定時(shí)50秒*/START_DELAY:TIMER1=255;/*定時(shí)255秒*/START_DELAY1:TIMER1-;/*/if(TIMER1>0)goto START_DELAY1;/*如果TIMER1大于0跳轉(zhuǎn)到START_DELAY1*/TIMER-;/*/if(TIMER&

17、gt;0)goto START_DELAY;/*如果TIMER大于0跳轉(zhuǎn)到START_DELAY*/DATA_OUT=0xA4; /*給DATA_OUT賦值0xA4*/SEND(); /*發(fā)送數(shù)據(jù)*/CS=1; /*片選置1*/MAIN1:if(KEY=1)goto MAIN1; /*如果鍵盤中斷信號(hào)為1,跳轉(zhuǎn)到MAIN1*/DATA_OUT=0x15; /*DATA_OUT賦值0x15*/SEND(); /*發(fā)送*/RECEIVE(); /*接收*/CS=1; /*片選為1*/AA=DATA_IN; /*給AA賦值DATA_IN*/if(AA=6)BB=1;/*如果AA為6,BB為1*/if

18、(AA=5)BB=2;/*如果AA為5,BB為2*/if(AA=4)BB=3;/*如果AA為4,BB為3*/if(AA=14)BB=4;/*如果AA為14,BB為4*/if(AA=13)BB=5;/*如果AA為13,BB為5*/if(AA=12)BB=6;/*如果AA為12,BB為6*/if(AA=22)BB=7;/*如果AA為22,BB為7*/if(AA=21)BB=8;/*如果AA為21,BB為8*/if(AA=20)BB=9;/*如果AA為20,BB為9*/if(AA=30)BB=11;/*如果AA為30,BB為11*/if(AA=29)BB=0;/*如果AA為29,BB為0*/if(A

19、A=28)BB=12;/*如果AA為28,BB為12*/TEN=0;/*MOVTEN,A*/DATA_OUT=0xA1;/*MOVDATA_OUT,#10100001B*/SEND();/*CALLSEND*/DATA_OUT=0xA1;/*MOVDATA_OUT,#10100001B*/SEND();/*CALLSEND*/DATA_OUT=0x81;/*MOVDATA_OUT,#10000001B*/SEND();/*CALLSEND*/DATA_OUT=TEN;/*MOVDATA_OUT,TEN*/SEND();/*CALLSEND*/DATA_OUT=0x80;/*MOVDATA_OU

20、T,#10000000B*/SEND();/*CALLSEND*/DATA_OUT=BB;/*MOVDATA_OUT,B*/SEND();/*CALLSEND*/CS=1; /*片選信號(hào)置1*/WAIT:if(KEY=0)goto WAIT;goto MAIN1; /*如果KEY為0,跳轉(zhuǎn)到WAIT,否則跳轉(zhuǎn)到MAIN1*/void SEND(void) /*發(fā)送子程序*/BIT_COUNT=8; /*統(tǒng)計(jì)為8*/CS=0; /*片選置0*/LONG_DELAY(); /*長(zhǎng)延時(shí)*/SEND_LOOP:CY=data_out7; /*發(fā)送循環(huán)*/DAT=CY; /*引腳的狀態(tài)*/CLK=1;

21、/*時(shí)鐘信號(hào)為1*/AA=DATA_OUT; /*給AA賦值DATA_OUT*/AA=_crol_(AA,1);/*_crol_函數(shù)在這里是把左邊的一個(gè)零移到右邊*/DATA_OUT=AA;/*給DATA_OUT賦值A(chǔ)A*/SHORT_DELAY(); /*短延時(shí)*/CLK=0;/*時(shí)鐘信號(hào)為0*/SHORT_DELAY;/*短延時(shí)*/BIT_COUNT-;if(BIT_COUNT>0)goto SEND_LOOP;/*DJNZBIT_COUNT,SEND_LOOP; DAT=0;/*將DAT清0*/ void LONG_DELAY(void)/*長(zhǎng)延時(shí)子程序*/TIMER=25; /*

22、定時(shí)25秒*/DELAY_LOOP:TIMER-;/*延時(shí)循環(huán)*/if(TIMER>0)goto DELAY_LOOP;/*如果TIMER大于0,跳轉(zhuǎn)到DELAY_LOOP*/*RET*/void SHORT_DELAY(void)/*短延時(shí)子程序*/TIMER=4;/*MOVTIMER,#4; /*/DELAY_LOOP1:TIMER-;/*延時(shí)循環(huán)*/if(TIMER>0)goto DELAY_LOOP1;/*如果TIMER大于0,跳轉(zhuǎn)到DELAY_LOOP1*/void RECEIVE(void)/*接收子程序*/BIT_COUNT=8;/*MOVBIT_COUNT,#8*/

23、DAT=1;/*SETBDAT*/LONG_DELAY();/*CALLLONG_DELAY*/RECEIVE_LOOP:CLK=1;/*SETBCLK*/SHORT_DELAY();/*CALLSHORT_DELAY*/AA=DATA_IN;/*MOVA,DATA_IN*/AA=_crol_(AA,1);/*RLAA*/DATA_IN=AA;/*MOVDATA_IN,A*/CY=DAT;/*MOVC,DAT*/data_in0=CY;/*MOVDATA_IN.0,C*/CLK=0;/*CLRCLK*/SHORT_DELAY();/*CALLSHORT_DELAY*/BIT_COUNT-;/*

24、/if(BIT_COUNT>0)goto RECEIVE_LOOP;/*如果BIT_COUNT大于0,跳轉(zhuǎn)到DELAY_LOOP*/DAT=0;/*CLR DAT*/七 實(shí)驗(yàn)截圖實(shí)驗(yàn)六 電機(jī)調(diào)速控制實(shí)驗(yàn)一 實(shí)驗(yàn)內(nèi)容 連線并編制程序,產(chǎn)生脈沖信號(hào),控制直流電動(dòng)機(jī)的運(yùn)行。 二. 實(shí)驗(yàn)?zāi)康?1 掌握采用單片機(jī)控制直流電動(dòng)機(jī)的硬件接口技術(shù)。2 掌握直流電動(dòng)機(jī)驅(qū)動(dòng)程序的設(shè)計(jì)與調(diào)試方法。3 熟悉直流電動(dòng)機(jī)的工作特性。 三. 實(shí)驗(yàn)電路4 連線方法 電路單元2單元電機(jī)單元電機(jī)單元連接一P10-P13AD4-AD7連接二GNDCS1連接三GNDGND(有跳線)連接四VCCVCC(有跳線)5 實(shí)驗(yàn)程序#in

25、clude<reg51.h>typedef unsigned char Byte;sbit PAA=P10;sbit PBB=P12;sbit PCC=P11;sbit PDD=P13;/設(shè)置引腳void DelayXms()/延時(shí)程序int i,j;for(i=0;i<count;i+)for(j=0;j<100;j+)/更改此處可以改變電動(dòng)機(jī)轉(zhuǎn)速void main(void)/主程序,循環(huán),使電動(dòng)機(jī)轉(zhuǎn)P1=0x0;while(1)PAA=0;DelayXms(10);PDD=1;DelayXms(10);PBB=0;DelayXms(10);PAA=1;DelayX

26、ms(10);PCC=0;DelayXms(10);PBB=1;DelayXms(10);PDD=0;DelayXms(10);PCC=1;DelayXms(10);6 實(shí)驗(yàn)截圖 實(shí)驗(yàn)七 模/數(shù)轉(zhuǎn)換實(shí)驗(yàn)一實(shí)驗(yàn)內(nèi)容:利用實(shí)驗(yàn)臺(tái)上的ADC0809做A/D轉(zhuǎn)換器,實(shí)驗(yàn)臺(tái)上的電源和地提供模擬量輸入,編制程序,將模擬量轉(zhuǎn)換成數(shù)字量,用發(fā)光二極管顯示。二實(shí)驗(yàn)?zāi)康模?.掌握A/D轉(zhuǎn)換與單片機(jī)的接口方法。2.了解A/D芯片ADC0809轉(zhuǎn)換性能及編程方法。3.通過實(shí)驗(yàn)了解單片機(jī)如何進(jìn)行數(shù)據(jù)采集。三實(shí)驗(yàn)原理簡(jiǎn)述:A/D轉(zhuǎn)換器大致有三類:一是雙積分A/D轉(zhuǎn)換器,優(yōu)點(diǎn)是精度高,抗干擾性好,價(jià)格便宜,但速度慢;二是逐

27、次逼近A/D轉(zhuǎn)換器,精度、速度、價(jià)格適中;三是并行A/D轉(zhuǎn)換器,速度快,價(jià)格也昂貴。實(shí)驗(yàn)用的ADC0809屬于第二類,是八位A/D轉(zhuǎn)換器。每采集一次需100uS。ADC0809START端為A/D轉(zhuǎn)換啟動(dòng)信號(hào),ALE端為通道選擇地址的鎖存信號(hào)。實(shí)驗(yàn)電路中將其相連,以便同時(shí)鎖存通道地址并開始A/D采樣轉(zhuǎn)換。故啟動(dòng)A/D轉(zhuǎn)換只需如下兩條指令:MOVDPTR,#00HMOVXDPTR,AA中為何內(nèi)容是不重要的,這是一次虛擬寫。中斷方式下,A/D轉(zhuǎn)換結(jié)束后會(huì)自動(dòng)產(chǎn)生EOC信號(hào),將其與8031INTO相接。中斷處理程序中,使用如下指令即可讀取A/D轉(zhuǎn)換結(jié)果:MOVDPTR,#00HMOVXA,DPTR四

28、實(shí)驗(yàn)原理圖:l Enable: 輸出允許信號(hào)位五連線方法:電路單元2單元4單元7單元11單元13單元連接1P00 -P07DB0-DB7MSB20-MSB27(轉(zhuǎn)換后得8位數(shù)字量)連接2P22-P20(0809地址控制位)C-A(138的輸入)連接3Y0CS2連接4ALEALECLK連接5P32/I0EOC(轉(zhuǎn)換結(jié)束標(biāo)志位)連接6P1.0-P1.7L1-L8(8位數(shù)字量顯示燈)連接7A2-A0ADDC-ADDA(0809地址位)連接8P36/WR,P37/RDWR2,/RD(聯(lián)合控制0809啟動(dòng)位Start;控制地址鎖存有效位ALE)見上原理圖連接9E1,E2接地連接10O0連接IN0(輸入的

29、電壓值)連接11CEBVCC,E3六程序框圖:這里給出軟件延時(shí)方法的程序框圖和程序:初始化啟動(dòng)AD轉(zhuǎn)換軟件延時(shí)PPPPPPP3P3.5CHANSHENG 讀取轉(zhuǎn)換結(jié)果送P1口顯示結(jié)果七實(shí)驗(yàn)程序#include<reg51.h>#include<intrins.h>int f,f0;void main() TMOD=0X51; TH0=0X9E; TL0=0X58; TH1=0X00; TL1=0X00; ET0=1; EA=1; TR0=1; TR1=1; while(1);void time1() interrupt 1 using 2 EA=0; TR0=0; TR

30、1=0; f=TL1+TH1*256; f0=f*2; 八 實(shí)驗(yàn)截圖實(shí)驗(yàn)八 微型打印機(jī)接口控制實(shí)驗(yàn)一 實(shí)驗(yàn)內(nèi)容:將實(shí)驗(yàn)儀接上微型打印機(jī),控制打印機(jī)打印出各種效果的漢字和字符。二 實(shí)驗(yàn)?zāi)康模? 了解微型打印機(jī)接口及其打印字符的方法;2 了解微型打印機(jī)打印漢字的方法;3 了解單片機(jī)與微型打印機(jī)的連線方法。三 有關(guān)說明: l 并行接口連接接口與引腳定義:本系列打印機(jī)并口與CENTRONICS 兼容,支持BUSY/ACK 握手協(xié)議,接口插座如下圖:并行接口各引腳信號(hào)的定義如下圖表所示:注: 1.“入”表示輸入到打印機(jī)。 2.“出”表示從打印機(jī)輸出。 3.信號(hào)的邏輯電平為TTL 電平。l 并行接口引腳信

31、號(hào)時(shí)序并口時(shí)序如下圖所示:四 實(shí)驗(yàn)電路: 五 連線方法: 電路單元第2單元打印機(jī)連接1P0.0-P0.7Data1-Data8(3,5,7,9,11,13,15,17)連接2P3.7 /STB(1)連接3P3.2(INT0)BUSY(21)連接4Gnd18六 實(shí)驗(yàn)程序l 單片機(jī)控制打印機(jī)時(shí)匯編例程BUSY EQU P3.2 ; 定義BUSY 信號(hào)引腳nSTB EQU P3.7 ; 定義nSTB 信號(hào)引腳JB BUSY, $ ; 等待打印機(jī)到空閑MOV P1 , A ; 送數(shù)據(jù)到數(shù)據(jù)口CLR nSTB ; 置nSTB 為低電平NOP ; 延長(zhǎng)nSTB 信號(hào)脈沖寬度以滿足時(shí)序要求nopnopSET

32、B nSTB ; 置nSTB 為高電平(此時(shí)數(shù)據(jù)將被讀入打印機(jī))RETprint_content:DB '北京煒煌'DB 0dhENDl 單片機(jī)C51 例程/ 北京煒煌科技打印機(jī)示例程序/ Nocky Tian/ 2007-07-17#include <reg52.h>/ Hardware configuration#define PRINTER_DATA P1 / 定義打印機(jī)數(shù)據(jù)線端口sbit BUSY = P32; / 定義打印機(jī)忙信號(hào)引腳sbit nSTB = P37; / 定義打印機(jī)nSTB 信號(hào)引腳sbit PE = P33; / 定義打印機(jī)紙狀態(tài)檢測(cè)信號(hào)引腳sbit nACK = P32; / 定義打印機(jī)應(yīng)答信號(hào)引腳sbit nERR = P31; / 定義打印機(jī)錯(cuò)誤檢測(cè)信號(hào)引腳sbit nSEL = P30; / 定義打印機(jī)在線檢測(cè)信號(hào)引腳#define CR 0x0d#defi

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論