完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>
標簽 > LPC1114
LPC1114是NXP公司推出的一款A(yù)RM Cortex-M0 內(nèi)核的32位單片機。它的主頻最大可達50MHz,內(nèi)部集成時鐘產(chǎn)生單元,不用外部晶振也可以工作。
LPC1114是NXP公司推出的一款A(yù)RM Cortex-M0 內(nèi)核的32位單片機。它的主頻最大可達50MHz,內(nèi)部集成時鐘產(chǎn)生單元,不用外部晶振也可以工作。內(nèi)部集成32KB FALSH程序存儲器、8K SRAM數(shù)據(jù)存儲器、一個快速I2C接口、一個RS485/EIA485 UART、兩個帶SSP特征的SPI接口、4個通用定時器、1個系統(tǒng)定時器、1個帶窗口功能的看門狗定時器、功耗管理模塊、1個ADC模塊和42個GPIO。截至Ration寫稿時,一片LPC1114的零售價只需5.9元,批量價更便宜。如此強大的處理器,如此低廉的價格,可謂是性價比無敵,其低功耗、簡單易用、高能效和低成本相結(jié)合,必然會在市場中占有一席之地。
LPC1114是NXP公司推出的一款A(yù)RM Cortex-M0 內(nèi)核的32位單片機。它的主頻最大可達50MHz,內(nèi)部集成時鐘產(chǎn)生單元,不用外部晶振也可以工作。內(nèi)部集成32KB FALSH程序存儲器、8K SRAM數(shù)據(jù)存儲器、一個快速I2C接口、一個RS485/EIA485 UART、兩個帶SSP特征的SPI接口、4個通用定時器、1個系統(tǒng)定時器、1個帶窗口功能的看門狗定時器、功耗管理模塊、1個ADC模塊和42個GPIO。截至Ration寫稿時,一片LPC1114的零售價只需5.9元,批量價更便宜。如此強大的處理器,如此低廉的價格,可謂是性價比無敵,其低功耗、簡單易用、高能效和低成本相結(jié)合,必然會在市場中占有一席之地。
LPC1114是ARM入門級的單片機,使用起來非常簡單,只要會51單片機,就可以快速的使用LPC1114。幸運的是,即使你不會51單片機,Ration也可以帶領(lǐng)你徹底征服這個看似復(fù)雜實則簡單的單片機。
不管是什么單片機,本質(zhì)上都一樣,對外表現(xiàn)為N個引腳,用引腳的高低電平變化來完成各種控制通信工作。內(nèi)部由若干個功能模塊構(gòu)成,例如串口模塊、ADC模塊等,有些單片機集成的功能模塊相對較多,有些單片機集成的功能模塊相對較少。我們要學(xué)習(xí)的,即如何配置單片機內(nèi)部的各個模塊,來完成我們所需要的目的。
不管是學(xué)習(xí)單片機,還是學(xué)習(xí)其它與單片機配合的其它硬件,學(xué)習(xí)方法都一樣。從大局上看,它們都是由外部引腳和內(nèi)部功能模塊構(gòu)成的。內(nèi)部功能模塊會有一些寄存器,我們了解了它的每個寄存器的功能,就可以通過它的用戶手冊配置寄存器,達到所需的要求。
例如:給51單片機中的寄存器P1寫0x01,將會使得引腳P1.0電平為高,P1.1~P1.7引腳為低。給51單片機中的寄存器TMOD寫0x20,將會配置定時器0為16位模式,定時器1為8位自動重載模式。
從學(xué)習(xí)角度講,LPC1114與普通51單片機的主要區(qū)別:
1. LPC1114寄存器是32位的,普通51單片機寄存器是8位的
2. LPC1114內(nèi)部功能模塊比普通51單片機多
lpc1114的spi速率設(shè)置
spi速率計算公式為:PCLK / (CPSDVSR *[SCR+1])
公式出處:lpc1114用戶手冊SSP章節(jié)CR0寄存器的bit15:bit8定義的解釋里面
PCLK是當前SSP的時鐘,CPSDVSR是寄存器CPSR值,SCR是CR0寄存器bit15:bit8的值。
所以spi的速率受到了3個寄存器值的影響,這3個寄存器分別是:
1. LPC_SYSCON-》SSP1CLKDIV或者 LPC_SYSCON-》SSP0CLKDIV(這是SSP的分頻寄存器)
2. LPC_SSP1-》CR0(這是SSP控制寄存器0,其中bit15:bit8決定速率)
3. LPC_SSP1-》CPSR(這是SSP時鐘預(yù)分頻寄存器)
得到這3個寄存器的值,就可以計算出當前的spi速率值,例如下面的SPI1初始化函數(shù):
void SPI1_Init(void)
{
uint8_t i,Clear=Clear;//Clear=Clear:用這種語句形式解決編譯產(chǎn)生的Waring:never used!
LPC_SYSCON-》PRESETCTRL |= (0x1《《2); //禁止LPC_SSP1復(fù)位
LPC_SYSCON-》SYSAHBCLKCTRL |= (0x1《《18);//允許LPC_SSP1時鐘 bit18
LPC_SYSCON-》SSP1CLKDIV = 10; //10分頻:50/10=5Mhz
LPC_SYSCON-》SYSAHBCLKCTRL |= (1《《16); // 使能IOCON時鐘(bit16)
LPC_IOCON-》PIO2_1 &= ~0x07;
LPC_IOCON-》PIO2_1 |= 0x02; //把PIO2_1選擇為LPC_SSP CLK
LPC_IOCON-》PIO2_2 &= ~0x07;
LPC_IOCON-》PIO2_2 |= 0x02; //把PIO2_2選擇為LPC_SSP MISO
LPC_IOCON-》PIO2_3 &= ~0x07;
LPC_IOCON-》PIO2_3 |= 0x02; //把PIO2_3選擇為LPC_SSP MOSI
LPC_SYSCON-》SYSAHBCLKCTRL &= ~(1《《16); // 禁能IOCON時鐘(bit16)
// 8位數(shù)據(jù)傳輸,SPI模式, CPOL = 1, CPHA = 1,空閑時CLK為1,SCR = 4
LPC_SSP1-》CR0 = 0x04C7;
// 預(yù)分頻值(注意:這里必須為偶數(shù) 2~254)
LPC_SSP1-》CPSR = 10;
LPC_SSP1-》CR1 &= ~(1《《0);//LBM=0:正常模式
LPC_SSP1-》CR1 &= ~(1《《2);//MS=0:主機模式
LPC_SSP1-》CR1 |= (1《《1);//SSE=1:使能SPI1
//清空RxFIFO,LPC1114收發(fā)均有8幀F(xiàn)IFO,每幀可放置4~16位數(shù)據(jù)
for ( i = 0; i 《 8; i++ )
{
Clear = LPC_SSP1-》DR;//讀數(shù)據(jù)寄存器DR將清空RxFIFO
}
}
上面例子中,主頻50MHz, LPC_SYSCON-》SSP1CLKDIV值為10,即PCLK=5MHz; LPC_SSP1-》CR0=0x04c7,即bit15:bit8為4,即SCR=4;LPC_SSP1-》CPSR=10;帶入公式計算得出,現(xiàn)在的SPI速率應(yīng)該是100KHz.
上圖中,示波器,橫向每格表示5微秒,圖中一個周期就是10微秒,即100KHz,實測與理論完全一致。
基于LPC1114單片機與ATT7053芯片的智能電表設(shè)計
ATT7053AU是一顆帶 SPI 的單相多功能計量芯片(EMU) 。 芯片的工作范圍是 3.0 ~ 3.6V。使用晶振為 5.5296MHz。
基于LPC1114的學(xué)習(xí)型紅外遙控器程序設(shè)計
本設(shè)計就是采用LPC1114+OLED+紅外接收頭構(gòu)成一個學(xué)習(xí)型紅外遙控器,
編輯推薦廠商產(chǎn)品技術(shù)軟件/工具OS/語言教程專題
電機控制 | DSP | 氮化鎵 | 功率放大器 | ChatGPT | 自動駕駛 | TI | 瑞薩電子 |
BLDC | PLC | 碳化硅 | 二極管 | OpenAI | 元宇宙 | 安森美 | ADI |
無刷電機 | FOC | IGBT | 逆變器 | 文心一言 | 5G | 英飛凌 | 羅姆 |
直流電機 | PID | MOSFET | 傳感器 | 人工智能 | 物聯(lián)網(wǎng) | NXP | 賽靈思 |
步進電機 | SPWM | 充電樁 | IPM | 機器視覺 | 無人機 | 三菱電機 | ST |
伺服電機 | SVPWM | 光伏發(fā)電 | UPS | AR | 智能電網(wǎng) | 國民技術(shù) | Microchip |
Arduino | BeagleBone | 樹莓派 | STM32 | MSP430 | EFM32 | ARM mbed | EDA |
示波器 | LPC | imx8 | PSoC | Altium Designer | Allegro | Mentor | Pads |
OrCAD | Cadence | AutoCAD | 華秋DFM | Keil | MATLAB | MPLAB | Quartus |
C++ | Java | Python | JavaScript | node.js | RISC-V | verilog | Tensorflow |
Android | iOS | linux | RTOS | FreeRTOS | LiteOS | RT-THread | uCOS |
DuerOS | Brillo | Windows11 | HarmonyOS |