C51單片機(jī)應(yīng)用與C語言程序設(shè)計(jì)第二章課件_第1頁
C51單片機(jī)應(yīng)用與C語言程序設(shè)計(jì)第二章課件_第2頁
C51單片機(jī)應(yīng)用與C語言程序設(shè)計(jì)第二章課件_第3頁
C51單片機(jī)應(yīng)用與C語言程序設(shè)計(jì)第二章課件_第4頁
C51單片機(jī)應(yīng)用與C語言程序設(shè)計(jì)第二章課件_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第二章單片機(jī)輸出接口與伺服電機(jī)控制深圳市鷗鵬科技有限公司黃曦2009.3.21第二章單片機(jī)輸出接口與伺服電機(jī)控制深圳市鷗鵬科技有限公司摘要C51單片機(jī)的輸入/輸出接口任務(wù)一單燈閃爍控制while語句任務(wù)二機(jī)器人伺服電機(jī)控制信號任務(wù)三計(jì)數(shù)并控制循環(huán)次數(shù)for語句任務(wù)四用你的計(jì)算機(jī)來控制機(jī)器人的運(yùn)動(dòng)scanf函數(shù)工程素質(zhì)和技能歸納科學(xué)精神的培養(yǎng)?2008Open-Tech.Allrightsreserved.8/7/2023摘要C51單片機(jī)的輸入/輸出接口?2008Open-Te2C51單片機(jī)的輸入/輸出接口控制機(jī)器人伺服電機(jī)以不同速度運(yùn)動(dòng)是通過讓單片機(jī)的輸入/輸出(I/O)口輸出不同的脈沖序列來實(shí)現(xiàn)的。51系列單片機(jī)有4個(gè)8位的并行I/O口:P0、P1、P2和P3。這4個(gè)接口,既可以作為輸入,也可以作為輸出;可按8位處理,也可按位方式(1位)使用。右圖是單片機(jī)STC89C52RC的引腳定義圖,這是一個(gè)標(biāo)準(zhǔn)的40引腳雙列直插式集成電路芯片。?2008Open-Tech.Allrightsreserved.8/7/2023C51單片機(jī)的輸入/輸出接口?2008Open-Tech3任務(wù)一單燈閃爍控制在本任務(wù)中,使用P1端口的第一腳(記為P1_0)來控制發(fā)光二極管以1HZ的頻率不斷閃爍。該任務(wù)的目的是檢測IO口的輸出電平是否是自己在程序中所要求的高低電平。要準(zhǔn)備的元器件:紅色LED2個(gè)470歐電阻2個(gè)?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)一單燈閃爍控制在本任務(wù)中,使用P1端口的第一腳(記為4任務(wù)一單燈閃爍控制源程序:參照教材P21頁的HighLowLed.c接通面包板上的電源。輸入、保存、編譯并下載程序HighLowLed.c觀察與P1_0連接的LED是否每隔一秒發(fā)光、關(guān)閉一次。HighLowLed.c是如何工作的?Boebot.hvoiddelay_nms(unsignedinti)voiddelay_nus(unsignedinti)uart.huart_Init()printfwhile(1)?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)一單燈閃爍控制源程序:參照教材P21頁的HighLo5任務(wù)一單燈閃爍控制while語句的一般形式如下:while(表達(dá)式)循環(huán)體語句當(dāng)表達(dá)式為非0值時(shí),執(zhí)行while語句中的內(nèi)嵌語句,其特點(diǎn)是先判斷表達(dá)式,后執(zhí)行語句。例程中直接用1代替了表達(dá)式,因此總是非0值,所以循環(huán)永不結(jié)束,也就可以一直讓LED燈閃爍。?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)一單燈閃爍控制while語句的一般形式如下:?206任務(wù)一單燈閃爍控制單片機(jī)P1.0口的輸出信號時(shí)序圖嘗試一下!如何使連接到另外一個(gè)接口——P1_1口上的LED燈也閃爍?如何使兩個(gè)LED交替閃爍??2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)一單燈閃爍控制單片機(jī)P1.0口的輸出信號時(shí)序圖?27任務(wù)二機(jī)器人伺服電機(jī)控制信號控制伺服電機(jī)轉(zhuǎn)速為零的時(shí)序控制伺服電機(jī)順時(shí)針全速旋轉(zhuǎn)的時(shí)序控制伺服電機(jī)逆時(shí)針全速旋轉(zhuǎn)的時(shí)序?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)二機(jī)器人伺服電機(jī)控制信號?2008Open-T8任務(wù)二機(jī)器人伺服電機(jī)控制信號關(guān)于驅(qū)動(dòng)電機(jī)的IO口P1_0專門控制右輪伺服電機(jī)P1_1專門控制左輪伺服電機(jī)伺服電機(jī)與教學(xué)底板的連線原理圖(左)和實(shí)際接線示意圖(右)?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)二機(jī)器人伺服電機(jī)控制信號關(guān)于驅(qū)動(dòng)電機(jī)的IO口伺服電9任務(wù)二機(jī)器人伺服電機(jī)控制信號將以下程序復(fù)制到HighLowLed.c文件中,替換相應(yīng)的程序段。觀察連接到P1_0的伺服電機(jī)是不是分別為停止,全速順時(shí)針旋轉(zhuǎn)和逆時(shí)針旋轉(zhuǎn)。while(1){P1_0=1;//P1_0輸出高電平delay_nus(1300);//延時(shí)1.3msP1_0=0;//P1_0輸出低電平delay_nus(20000);//延時(shí)20ms}while(1){P1_0=1;//P1_0輸出高電平delay_nus(1500);//延時(shí)1.5msP1_0=0;//P1_0輸出低電平delay_nus(20000);//延時(shí)20ms}while(1){P1_0=1;//P1_0輸出高電平delay_nus(1500);//延時(shí)1.7msP1_0=0;//P1_0輸出低電平delay_nus(20000);//延時(shí)20ms}?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)二機(jī)器人伺服電機(jī)控制信號將以下程序復(fù)制到HighL10任務(wù)二機(jī)器人伺服電機(jī)控制信號該你了,讓機(jī)器人的兩個(gè)輪子全速旋轉(zhuǎn)。#include<BoeBot.h>#include<uart.h>intmain(void){ uart_Init();//初始化串口 printf("TheLEDsconnectedtoP1_0andP1_1areblinking!\n"); while(1) { P1_0=1;//P1_0輸出高電平 P1_1=1; //P1_1輸出高電平 delay_nus(1300); //延時(shí)500ms P1_0=0; //P1_0輸出低電平 P1_1=0; //P1_1輸出低電平 delay_nms(20); //延時(shí)20ms }}?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)二機(jī)器人伺服電機(jī)控制信號該你了,讓機(jī)器人的兩個(gè)輪子11任務(wù)三計(jì)數(shù)并控制循環(huán)次數(shù)for語句for語句的執(zhí)行過程for語句的形式:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增/減值)語句自增和自減for循環(huán)控制電機(jī)的運(yùn)行時(shí)間例程:控制伺服運(yùn)行時(shí)間。源程序參照教材第30頁ControlServoRunTimes.c例程:一個(gè)電機(jī)正向旋轉(zhuǎn)3秒,另一個(gè)電機(jī)同時(shí)的反向旋轉(zhuǎn)3秒。源程序參照教材第31頁BothServosThreeSeconds.c?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)三計(jì)數(shù)并控制循環(huán)次數(shù)for語句?2008Ope12任務(wù)四用你的計(jì)算機(jī)來控制機(jī)器人的運(yùn)動(dòng)在本任務(wù)中,使用串口調(diào)試工具發(fā)送以下兩個(gè)信息,以控制機(jī)器人的運(yùn)動(dòng)。由單片機(jī)發(fā)給伺服電機(jī)的脈沖個(gè)數(shù);脈沖寬度(以μs為單位)程序參照教材第33頁ControlServoWithComputer.c。?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)四用你的計(jì)算機(jī)來控制機(jī)器人的運(yùn)動(dòng)在本任務(wù)中,使用串口13任務(wù)四用你的計(jì)算機(jī)來控制機(jī)器人的運(yùn)動(dòng)ControlServoWithComputer.c是如何工作的?scanf函數(shù)scanf(“格式控制字符串”,地址列表);程序運(yùn)行過程:首先輸出“ProgramRunning!”和“Pleaseinputpulsenumber:”;程序處于等待狀態(tài),等待輸入數(shù)據(jù);輸入數(shù)據(jù)給變量PulseNumber;輸出“Pleaseinputpulseduration:”;處于等待狀態(tài);輸入數(shù)據(jù)給變量PulseDuration;電機(jī)運(yùn)轉(zhuǎn)。?2008Open-Tech.Allrightsreserved.8/7/2023任務(wù)四用你的計(jì)算機(jī)來控制機(jī)器人的運(yùn)動(dòng)ControlSer14工程素質(zhì)和技能歸納C51 系列單片機(jī)的引腳定義和分布用C51單片機(jī)的P1端口的位輸出控制單燈或雙燈閃爍,時(shí)序圖的概念,while循環(huán)的引入和延時(shí)函數(shù)的引用。機(jī)器人伺服電機(jī)的控制脈沖序列,通過給C51編程讓其輸出這些控制脈沖序列。自增運(yùn)算符的使用for循環(huán)的使用以控制機(jī)器人的運(yùn)動(dòng)如何通過串口輸入數(shù)據(jù)控制機(jī)器人的運(yùn)動(dòng)。?2008Open-Tech.Allrigh

溫馨提示

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

評論

0/150

提交評論