對于機(jī)器人這個(gè)名詞,大家應(yīng)該都有所了解,我在這里就不講太多。我主要來說說機(jī)器人是怎樣工作的,單片機(jī)又是什么,有什么作用,如何來學(xué)習(xí)單片機(jī)。
單片機(jī)是可以用來編程的芯片,它對于機(jī)器人來說就相當(dāng)于人的大腦。一個(gè)機(jī)器人,它除了有單片機(jī),還應(yīng)有傳感器用來接收外界的圖像、聲音、溫度等等信息,然后單片機(jī)去讀取傳感器接收的信息,就相當(dāng)于人的感官。機(jī)器人可以采集外界信息,也可以對外界做出動作,例如控制電機(jī)等執(zhí)行元件,通過機(jī)械結(jié)構(gòu)做出行走或行駛動作,就相當(dāng)于肌肉帶動骨骼動作;又例如機(jī)器人也可以通過蜂鳴器或者喇叭發(fā)出聲音、音樂,像人一樣說話,也可以通過液晶屏顯示文字或者圖像信息。機(jī)器人與機(jī)器人或者電腦之間還可以進(jìn)行通信來傳遞信息。以上所有功能都是要依靠機(jī)器人的大腦——單片機(jī)來實(shí)現(xiàn)。
單片機(jī)的編程,我個(gè)人認(rèn)為可以分為兩部分,第一部分是對寄存器的操作,第二部分就是對寄存器的操作之外的所有運(yùn)算、邏輯、算法的編程。
寄存器是什么東西?打個(gè)比方,我們常用的手機(jī),我們都設(shè)置過它的,比如調(diào)節(jié)亮度、音量、打開關(guān)閉WiFi和移動數(shù)據(jù)。單片機(jī)的寄存器就是這個(gè)功能,我們對單片機(jī)寄存器進(jìn)行操作,就是設(shè)置單片機(jī)各種各樣的功能和工作模式。寄存器實(shí)質(zhì)上是單片機(jī)flash中的地址,flash存儲中最小的單位是位(bit),這個(gè)位只有兩種狀態(tài),1或者0,就像WiFi功能打開和關(guān)閉這兩個(gè)狀態(tài)。寄存器有8位的、16位的、32位的。
我們常用的寄存器有三類,數(shù)據(jù)寄存器、控制寄存器、狀態(tài)寄存器。數(shù)據(jù)寄存器是用來存儲數(shù)據(jù)的,通常可以進(jìn)行寫入和讀取操作;控制寄存器是用來設(shè)置單片機(jī)的工作模式的,通常只能進(jìn)行寫入操作;狀態(tài)寄存器是用來存儲單片機(jī)狀態(tài)信息的,通常只能進(jìn)行讀取操作。
關(guān)于單片機(jī),還有一個(gè)電平的概念要和大家介紹一下。電平有兩種,高電平和低電平。簡單地說(這樣說不準(zhǔn)確,但是為了方便初學(xué)者容易理解),理想狀態(tài)下,5V供電的單片機(jī),高電平就是5V,低電平就是0V,單片機(jī)芯片引腳可以向外輸出高低電平,也可以從外界采集高低電平。
下面我來介紹STM8單片機(jī),這款單片機(jī)是意法半導(dǎo)體公司推出的8位單片機(jī),和該公司的STM32單片機(jī)不同,后者是32位ARM內(nèi)核的單片機(jī),前者是自家設(shè)計(jì)的內(nèi)核。STM8單片機(jī)和16位、32位單片機(jī)相比,功能和性能相差很大,但在8位單片機(jī)中,性價(jià)比、功能、性能還是非常優(yōu)秀的。STM8單片機(jī)的命名規(guī)則在這個(gè)網(wǎng)站上可以了解。
STM8S系列單片機(jī)支持3.3V和5V兩種工作電壓。
我們用STM8S105K4這款芯片來做教學(xué)。它有32個(gè)引腳,其中25個(gè)是IO引腳。STM8S105K4有7路10位模擬輸入通道、8路16位PWM(脈沖)輸出通道、4個(gè)定時(shí)器、1個(gè)UART串口、1個(gè)SPI、1個(gè)I2C,主頻最高16MHz。STM8單片機(jī)A、B、C、D、E端口每個(gè)引腳都可以使用外部中斷功能,D7有TLI功能(不可屏蔽的最高優(yōu)先級的硬件中斷)。它有16KB的FLASH用于存儲程序和數(shù)據(jù),2KB的RAM,1KB的EEPROM。
STM8S105K4芯片引腳圖。
STM8S105K4核心板V1,板上有芯片、晶振電路、復(fù)位電路、下載接口。
STM8S105K4核心板V2。
STM8S105K4單片機(jī)學(xué)習(xí)套件,由STM8S105K4核心板(最小系統(tǒng)板)、開發(fā)板、ST-LINK V2下載器和Nokia5110液晶屏組成。
以后我們還有機(jī)會用到STM8S207MB芯片。
DAHUME MAX控制器