1 引言 輪式移動(dòng)機(jī)器人是機(jī)器人研究領(lǐng)域的一項(xiàng)重要內(nèi)容.它集機(jī)械、電子、檢測(cè)技術(shù)與智能控制于一體。在各種移動(dòng)機(jī)構(gòu)中,輪式移動(dòng)機(jī)構(gòu)最為常見(jiàn)。輪式移動(dòng)機(jī)構(gòu)之所以得到廣泛的應(yīng)用。主要是因?yàn)槿菀卓刂破湟苿?dòng)速度
仿真電路圖:仿真程序:#include#include#define uchar unsigned char#define uint unsigned intsbit SCL=P1^0;sbit SDA=P1^1;void delay(void){_nop_();_nop_();_nop_();_nop_();}void InitI2C(void){ SDA = 1; SCL
整篇文章的結(jié)構(gòu)如下:一、直接把時(shí)鐘管理用到的寄存器羅列出來(lái)進(jìn)行分析。二、對(duì)其中的一些原理性的東西做介紹。三、對(duì)于在后面編寫串口時(shí)會(huì)出現(xiàn)的問(wèn)題注意點(diǎn)提出說(shuō)明。四、LED 代碼一、在時(shí)鐘管理中會(huì)用
用單片機(jī)驅(qū)動(dòng)LED數(shù)碼管有很多方法,按顯示方式分,有靜態(tài)顯示和動(dòng)態(tài)(掃描)顯示,按譯碼方式可分硬件譯碼和軟件譯碼之分。 靜態(tài)顯示就是顯示驅(qū)動(dòng)電路具有輸出鎖存功能,單片機(jī)將所要顯示的數(shù)據(jù)送出
很多朋友說(shuō)C不能精確控制延時(shí)時(shí)間,不能像匯編那樣直觀。其實(shí)不然,對(duì)延時(shí)函數(shù)深入了解一下就能設(shè)計(jì)出一個(gè)理想的筐架出來(lái)。一般我們都用for(VX=100;--X){;}此句等同于X=100;while(--X){;};或V
//驅(qū)動(dòng)代碼如下.主設(shè)備號(hào)設(shè)為232 ,適用GEC2410 十六鍵矩陣鍵盤#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ
//**************************************************//實(shí)驗(yàn)?zāi)康模?/熟悉使用單片機(jī)驅(qū)動(dòng)蜂鳴器產(chǎn)生警報(bào)聲//**************************************************//**********************************************
我們使用Keil C調(diào)試某系統(tǒng)時(shí)積累的一些經(jīng)驗(yàn)1、在Windows2000下面,我們可以把字體設(shè)置為Courier,這樣就可以顯示正常。2、當(dāng)使用有片外內(nèi)存的MCU(如W77E58,它有1K片外內(nèi)存)的時(shí)候,肯定要設(shè)置標(biāo)志位,并且編譯方式
下面我們以LED流水燈為例演示定時(shí)功能,流水的時(shí)間間隔由定時(shí)器精確控制。(看了上面的這句話就繞道的童鞋,請(qǐng)不要急著走,接下來(lái)講的不是怎么實(shí)現(xiàn)流水燈,而是怎么樣定時(shí)。)下面我們以16位定時(shí)器0來(lái)演示。新建一個(gè)
表2-28 UART MODEM控制寄存器(UMCON0)寄存器名地址是否讀寫描述復(fù)位默認(rèn)值UMCON00x5000000CR/W串口0MODEM控制寄存器0x00UMCON0位描述初始值保留[7:5]必須全部置0000AFC自動(dòng)流控[4]0 =不開(kāi)啟流控1 =開(kāi)啟流控0保留[3
如圖:為原子的串口下載電路在CH340的數(shù)據(jù)手冊(cè)上有引腳的介紹以及作用:這兩個(gè)引腳:DTR#和RTS#都是 輸出類型,MCUISP(一鍵下載工具),會(huì)控制CH340這兩個(gè)引腳的高低電平狀態(tài),通過(guò)控制DTR#和RST#這兩個(gè)引腳的高低電平
CAN協(xié)議具有良好的可靠性,在工業(yè)中應(yīng)用廣泛。這次就先熟悉CAN的基本功能。開(kāi)發(fā)板有兩個(gè)CAN,每個(gè)CAN有8個(gè)信箱。這次內(nèi)容是從CAN0的信箱0發(fā)送數(shù)據(jù)到CAN1的信箱0。除本次使用的功能外,CAN還有遠(yuǎn)程幀、強(qiáng)大的錯(cuò)誤處理
方法:static const uint8_t s_acBmpLogo030[len] __attribute__((at(0X800F000)))={0x80,0xC0,0xC0,0xC0,0xC0,0x80,xxxxxxx} 編譯之后可在.map文件看到其分配到的地址0x0800f000 0x0000005c Data RO 4013 .A
我使用的是STM32的固件庫(kù)。硬件模塊使用之前必須配置其參數(shù),I2C的配置如下:void IIC_Config(void){ GPIO_InitTypeDef GPIO_InitStructure; I2C_InitTypeDef I2C_InitStructure; RCC_ClocksTypeDef rcc_clocks;
#include #include struct _pid { int pv; /*integer that contains the process value*/ int sp; /*integer that contains the set point*/ float integral; float pgain; float ig