久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
強悍版智能小車
[打印本頁]
作者:
51hei學習技術中
時間:
2016-10-16 17:44
標題:
強悍版智能小車
智能小車一直以來都是電子設計大賽題目的座上賓。尤其是難度高的那一類題目,讓不少單片機愛好者和參加大賽的學生頭疼。小車在各個模塊的協同作用下,可以上坡、測量和障礙物的距離,跨越障礙物如履平地。完美實
現小車的控制:左轉、右轉、前進、后退和停止等操作 。
優酷觀看視頻
http://player.youku.com/player.php/sid/XMzE0NTA5MzAw/v.swf
http://v.youku.com/v_show/id_XMzE0NTA5MzAw.html
0.png
(48.94 KB, 下載次數: 90)
下載附件
2016-10-16 17:41 上傳
所有資料打包下載:
智能小車原理圖和程序.zip
(620.87 KB, 下載次數: 13)
2016-10-16 17:43 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
/***********************************************************************************************************/
//DZR-01A V2.0 超聲波測距模塊 DEMO 程序
//晶振:11.0592MHz 單片機:STC12C5A60S2
//程序編寫:Roling
//本程序在DZR-01A開發板上測試有效
//接線:模塊TRIG接 P20 ECH0 接P21
/***********************************************************************************************************/
#include <STC.h>
#include <ConfigOfDZR01A.h>
#include <InitConfigOfDZR01A.c>
#include <intrins.h>
#define OFF 0 //關
#define ON 1 //開
#define ECHO P21
#define TRIG P20
unsigned char code TableData[12] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F/*0-9*/,0x00/*無*/,0x40/*-*/};//數碼管數字0-9
unsigned char code TableSeg [ 8] = {0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF,0x7F}; //數碼管位置0-7
unsigned char disbuff[8] = { 10,10,10,10,11,11,11,11}; //顯示數組
bit flag =0; //時間溢出標志位
bit begin; //啟動超聲波模塊標志
/***************************************************************************************
** 函數名稱: void Delay_ms(unsigned int ms)
** 功能描述: 延時函數
** 輸 入: unsigned int ms 延時時間
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
****************************************************************************************
void Delay_ms(unsigned int ms)
{
unsigned char i;
for(;ms>0;ms--)
for(i=127;i>0;i--)
;
}
********************************************************/
void Conut(void)
{
unsigned int time=0;
unsigned long S = 0;
time = TH0*256 + TL0;
TH0 = 0;
TL0 = 0;
S = (time * 1.8445)/100; //[1.85]算出來是CM,乘以1.085原因是采用11.0592M的晶振,12M晶振乘以1.0
if((S >= 700) || flag) //超出測量范圍顯示“-”
{
flag=0;
// disbuff[0]=11; //“-”
// disbuff[1]=11; //“-”
// disbuff[2]=11; //“-”
}
else
{
disbuff[0] = S%1000/100;
disbuff[1] = S%1000%100/10;
disbuff[2] = S%1000%10 %10;
}
}
/********************************************************/
void EnableUltrasonic() //啟動超聲波模塊
{
unsigned char i;
TR0 = 1;
TH0 = 0;
TL0 = 0;
while(!begin);
begin = 0;
TRIG = 1; //800MS 啟動一次模塊
for(i=12;i>0;i--)
{
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
_nop_(); _nop_(); _nop_(); _nop_(); _nop_();
}
TRIG = 0;
}
/*********************************************************/
void main( void )
{
InitConfigOfDZR01A();
TRIG = 0;
ECHO = 1;
TMOD = 0x11; //設T0為方式1,GATE=1;
ET1 = 1; //允許T0中斷
TR1 = 1;
EA = 1; //開啟總中斷
begin = 0;
while(1)
{
EnableUltrasonic();
while(1)
{
if(ECHO==1) {TH0 = 0;TL0 = 0;TR0 = 1; break;}
if(TH0&0x80){flag = 1; break;}
}
while(1)
{
if(ECHO==0) {TR0 = 0; break;}
if(TH0&0x80){flag = 1; break;}
}
Conut(); //計算
}
}
/***************************************************************************************
** 函數名稱: void T1int() interrupt 3
** 功能描述: 定時器1中斷
** 輸 入: 無
** 輸 出: 無
** 全局變量: 無
** 調用模塊: 無
****************************************************************************************/
void T1int() interrupt 3//定時器1中斷
{
static unsigned char count=0;
unsigned char num;
TH1 = 0xFA;
TL1 = 0x00;
num = count %8;
NUX_DATA = TableData[disbuff[num]];//讀取數組第0個數據,數據為數碼管字模0.
NUX_CS_DUAN = 1;//段數據送入573
NUX_CS_DUAN = 0;//把段數據鎖存到573
NUX_DATA = TableSeg [num];// 1111 1110
NUX_CS_WEI = 1;//位數據
NUX_CS_WEI = 0;//
count++;
if(count==255){begin = 1;}
}
復制代碼
/****************************************************************************************
**
** (c) Copyright 2008, DZR(電子人)
** All Rights Reserved
**
** -------------------------------------文件信息---------------------------------------
** 文 件 名: ConfigOfDZR01A.h
** 創 建 人: 劉家友
** 描 述: DZR(電子人) 開發板硬件配置
**
** ------------------------------------------------------------------------------------
**
***************************************************************************************/
#ifndef _DZR_01_CONFIG_H_
#define _DZR_01_CONFIG_H_
// DZR(電子人) 開發板硬件配置
// 8*LED燈
#define LED_CS P25 // LED燈片選,高電平有效
#define LED_DATA P0 // LED燈數據,1亮0滅。(共用數據引腳:LED,數碼管,液晶)
// 共陰數碼管
#define NUX_CS_DUAN P27 // 數碼管段片選,此引腳高電平有效,
#define NUX_CS_WEI P26 // 數碼管位片選,此引腳高電平有效,
#define NUX_DATA P0 // 數碼管數據腳,數碼管為共陰數碼管,段數據給高有效 ,位數據給低有效
// 獨立按鍵和中斷按鍵,中斷引腳為P33,采用外部中斷1
#define KEY1 P34 // 按鍵1,默認為高電平,鍵按下為低。此引腳和PS2鍵盤的PS2_DATA引腳共用,
// 在用PS2鼠標鍵盤的時候,此按鍵不能使用。
#define KEY2 P32 // 按鍵2,默認為高電平,鍵按下為低。此引腳為中斷0,和PS2鍵盤的PS2_CLK
// 引腳共用,在用PS2鼠標鍵盤的時候,此按鍵注意使用。
#define KEY3 P12 // 按鍵3,默認為高電平,鍵按下為低。此引腳和無線模塊的 NRF_CE 引腳共用
// ,在無線模塊使用的時候,此按鍵注意使用。
#define KEY4 P10 // 按鍵4,默認為高電平,鍵按下為低。此引腳具有第二功能:PWM,可以控制直
// 流電機的轉速,作為電機控制的時候內部IO設置為推挽狀態。
// AD按鍵
#define KEY_AD P11 // STC12C5A60S2單片機的P1口具有AD的第二功能,開發板8個AD按鍵在此引腳讀
// 取。本引腳為ADC的1通道。
#define KEY_AD_UP 0x00 // AD按鍵“上”鍵值
#define KEY_AD_DOWN 0x21 // AD按鍵“下”鍵值 20
#define KEY_AD_LEFT 0x0B // AD按鍵“左”鍵值 0C
#define KEY_AD_RIGHT 0x3A // AD按鍵“右”鍵值 3B
#define KEY_AD_A 0x6F // AD按鍵“A” 鍵值 6E
#define KEY_AD_B 0xA3 // AD按鍵“B” 鍵值 A4
#define KEY_AD_C 0xF4 // AD按鍵“C” 鍵值 F5
#define KEY_AD_D 0xD6 // AD按鍵“D” 鍵值 D7
// 鼠標鍵盤口
#define PS2_CLK P32 // PS2的時鐘線,接外部0號中斷INT0,和按鍵 KEY2共用。
#define PS2_DATA P34 // PS2的數據線,和按鍵KEY1共用。
// 紅外遙控器接收口
#define HS0038 P33 // 紅外中斷接收引腳,采用外部1號中斷INT1,和中斷按鍵共用中斷口。
// 8*8點陣:采用了兩塊74HC595芯片串聯,第一塊為控制點陣列(0有效),第二塊為控制點陣行(1有效),
// 由于和DS1302和TEA5767共用數據線。
#define LAT_SHCP P37 // 74HC595移位寄存器時鐘輸入
#define LAT_STCP P35 // 74HC595存儲寄存器時鐘輸入
#define LAT_SDI P36 // 74HC595串行數據輸入
// LCD1602字符液晶:兩行,一行16個字符,顯示ASCII碼字符和自定義字符,亮度調節按鈕往上。
#define LCD_1602_BUSY P07 // LCD1602檢測忙信號線
#define LCD_1602_RS P22 // LCD1602數據/命令(H/L)選擇端
#define LCD_1602_RW P24 // LCD1602讀/寫(H/L)選擇端
#define LCD_1602_EN P23 // LCD1602使能信號高有效
#define LCD_1602_DATA P0 // LCD1602并行數據線
// LCD12864液晶:128列,64行,開發板提供圖形液晶和帶字庫液晶接口。
#define LCD_12864_RS P22 // LCD12864數據/命令(H/L)選擇端
#define LCD_12864_RW P24 // LCD12864讀/寫(H/L)選擇端
#define LCD_12864_EN P23 // LCD12864使能信號高有效
#define LCD_12864_CSA P21 // LCD12864左半屏選擇端
#define LCD_12864_CSB P20 // LCD12864右半屏選擇端
#define LCD_12864_DATA P0 // LCD12864并行數據線
#define LCD_12864_BUSY P07 // LCD12864忙信號位
// TFT液晶128*160分辨率,65K色彩屏。
#define TFT_RD P24 // TFT液晶讀信號線
#define TFT_WR P23 // TFT液晶寫信號線
#define TFT_RS P22 // TFT液晶指令信號線
#define TFT_CS1 P21 // TFT液晶片選信號線
#define TFT_DATA P0 // TFT液晶并行數據線
// DS1302時鐘
#define DS1302_RES P13 // DS1302復位線,內部帶40K的下拉電阻。
#define DS1302_SCL P35 // DS1302時鐘線
#define DS1302_SDA P36 // DS1302數據線
// PCF8591:芯片內部帶4 AD和1 DA,光敏電阻采用AIN0,熱敏電阻采用AIN1,DA輸出接了LED燈,可控制其亮度。
// 本芯片采用IIC總線控制,由于和DS1302共用線,所以在一般使用的時候需把 DS1302_RES 引腳置
// 低電平。
#define PCF_SCL P35 // PCF8591的IIC時鐘線
#define PCF_SDA P36 // PCF8591的IIC數據線
// TEA5767收音機:采用IIC總線控制,由于和DS1302共用線,所以在一般使用的時候需把 DS1302_RES 引腳置
// 低電平。
#define TEA_SDA P36 // TEA5767的IIC時鐘線
#define TEA_SCL P35 // TEA5767的IIC數據線
// nRF24L01無線模塊:采用SPI協議,可以直接使用STC12C5A60S2內部SPI控制器控制,也可以用單片機模擬
// SPI總線原理。注意:NRF_CE和按鍵 KEY3 共用引腳,在使用無線模塊的時候,慎用KEY3。
#define NRF_CE P12 // RX 或TX 模式選擇
#define NRF_CSN P14 // SPI片選信號
#define NRF_SCK P17 // SPI時鐘信號
#define NRF_MOSI P15 // 從SPI數據輸入腳
#define NRF_MISO P16 // 從SPI數據輸出腳
// SD卡:采用SPI協議,能完成SD卡的數據存取。注意:本數據口和nRF24L01無線模塊共用引腳,注意使用。
#define SD_DO P16 // 從SPI數據輸出腳
#define SD_CK P17 // SPI時鐘信號
#define SD_DI P15 // 從SPI數據輸入腳
#define SD_CS P14 // SPI片選信號
//超聲波:由于超聲波模塊這兩根線是和LCD12864共用了線,所以在使用超聲波模塊時,P12短路冒要打到12864端
#define Ultrasonic_R P21 // 超聲波接收端
#define Ultrasonic_T P20 // 超聲波發送端
// DS18B20溫度傳感器:單總線方式,控制A和B。注意:一般的單片機沒有P44口,STC12C5A60S2本芯片可以
// 直接操作!
#define DQ P44 //DS18B20單總線
#define SETDS18B20() P4SW = 0x10 //設置STC單片機P44腳使能有效
//以下引腳和LED共用一個74HC573鎖存器,因此引腳共用
#define MOTO_CS P25 // motor片選,高電平有效
#define MOTO P0 // motor
#define RELAY P06 // 繼電器 1有效
#define SPEAK P05 // 蜂鳴器 1有效
#define MOTOA P04 // 步進電機A引腳 1有效
#define MOTOB P03 // 步進電機B引腳 1有效
#define MOTOC P02 // 步進電機C引腳 1有效
#define MOTOD P01 // 步進電機D引腳 1有效
#define DM P00 // 直流電機引腳,注意P10有PWM功能,但是接P10需把P10設置為推挽方式。
// DZR(電子人) 開發板硬件配置
#endif
復制代碼
作者:
npn
時間:
2016-10-16 19:21
本帖最后由 npn 于 2016-10-16 19:23 編輯
制作很簡單的吧,超聲波測距距離小于指定距離倒退到距離以外然后控制隨機轉向,否則繼續前行。
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
国产精品国产三级国产
|
av网站网址
|
久久久久久伊人
|
嫩草嫩草嫩草嫩草
|
精品久久免费视频
|
日韩一区二区中文字幕
|
亚洲黄色天堂
|
日韩成人精品一区二区
|
福利视频一区二区
|
日韩黄网
|
四虎影院在线播放
|
精品一区av
|
美女免费视频网站
|
成人午夜又粗又硬又大
|
精品视频一区二区三区
|
日本精品国产
|
成人少妇影院yyyy
|
国产不卡在线视频
|
另类在线视频
|
午夜av片
|
久久在线精品
|
日本三级在线视频
|
视频一区中文字幕
|
欧美在线播放视频
|
伊人干综合
|
久久香蕉精品
|
欧美色综合网
|
久久夜色精品
|
欧美大片18
|
欧美另类激情
|
www.一区二区
|
国产一级免费视频
|
日本黄色一级视频
|
久久久黄色片
|
成人在线免费av
|
欧美日韩精品一区二区
|
精品一区二区三区免费毛片
|
日韩精品不卡
|
欧美毛片基地
|
中文在线字幕观看
|
国产精品第一区
|