認(rèn)識(shí)ARM7-- LPC2124—Philips
當(dāng)作8位51模式用:熟悉、理解保留字、數(shù)據(jù)模式、硬件接口與擴(kuò)展à內(nèi)置
1)
1)
2)
3)
4)
5)
6)
1)
了解ARM
A)
打開(kāi)-Proteus,
選取ARM芯片LPC2124、R電阻、LED燈、電源(設(shè)置正電位)與接地
連線(xiàn)完成(可以將二極管的極性調(diào)換,使用高電位或低電位)
保存文件
B)
打開(kāi)- Keil,
建立新的工程、設(shè)置或選擇ARM芯片LPC2124、
建立新文件、編寫(xiě)控制代碼、保存文件為*.C、添加到工作區(qū)
設(shè)置時(shí)鐘頻率、設(shè)置輸出的編譯文件*.HEX
鏈接編譯、編譯修改
保存文件
C)
***************單位輸出—一個(gè)LED燈顯示*************
#include
//軟件延時(shí)函數(shù): delay()—用戶(hù)自定義函數(shù)
void delay (void)
{
}
int main(void)
{
PINSEL0 = 0;//設(shè)置引腳為GPIO-輸出口PINSEL0、PINSEL1設(shè)置各引腳的功能。
IO0DIR = 0x000001;//將P0.0設(shè)置為輸出 ,P0~7口用0x0000ff
IO0SET = 0x000001;//將P0.0置1,也就是讓led滅(因:外接高電平); P0~7口用0x0000ff
{
IO0CLR = 0x000001;// 使led亮
程序說(shuō)明:
GPIO
做輸入輸出。以P0口為例,寄存器有IO0PIN、IO0SET、IO0DIR、IO0CLR。
D)
打開(kāi)-Proteus的仿真文件,雙擊芯片LPC2124,選擇需要仿真的文件路徑,選取*.HEX文件,OK;
點(diǎn)擊仿真按鈕,觀(guān)察結(jié)果,修改軟硬件,調(diào)整仿真時(shí)鐘頻率;
2)
A)
同前
B)
同前
C)
///////////////////////////////
void delay (void) //軟件延時(shí)函數(shù)
}
int main(void)
}
////////////////////////////////
程序說(shuō)明:
該程序表明了
可以注意數(shù)值的發(fā)送格式0x000080;這里總計(jì)8位,每位代表4個(gè)二進(jìn)制數(shù),總共32位?0x00000000==二進(jìn)制0000 0000 0000 0000 0000 0000 0000 0000
0x0000FFFF==二進(jìn)制0000 0000 1111 1111 1111 1111 1111 1111
注意對(duì)比8位的51系列數(shù)值的發(fā)送格式0x00與0x0FF
程序可讀性差,使用數(shù)組比較恰當(dāng)
專(zhuān)用的數(shù)據(jù)格式的變化,可以用于數(shù)碼管的顯示驅(qū)動(dòng)
D)
打開(kāi)-Proteus的仿真文件,雙擊芯片LPC2124,選擇需要仿真的文件路徑,選取*.HEX文件,OK;
點(diǎn)擊仿真按鈕,觀(guān)察結(jié)果,修改軟硬件,調(diào)整仿真時(shí)鐘頻率;
3)
A)
同前
B)
同前
C)
//流水燈
#include
void delay (void)//
}
int main(void)
}
程序說(shuō)明:
程序書(shū)寫(xiě)的繁瑣可以看到數(shù)組的好處。程序編寫(xiě)用循環(huán)結(jié)構(gòu)的好處
D)
4)
A)
同前
B)
同前
C)
//流水燈--數(shù)組
#include
typedef unsigned int uint;
0x000200,0x000400,0x000800,0x001000,0x002000,0x004000,0x008000,0x010000,0x020000,0x040000,0x080000};
void delay (void)//
}
int main(void)
}
程序說(shuō)明:
程序書(shū)寫(xiě)簡(jiǎn)潔,可讀性好;可以看到數(shù)組的好處。程序編寫(xiě)用循環(huán)結(jié)構(gòu)的好處
---------數(shù)組也顯得不方便—移位功能好使--------------
//流水燈—38LED—數(shù)組
#include
typedef unsigned int uint;
uint const SaoMiao_TAB1[]={0x010000,0x020000,0x040000,0x080000,0x100000,0x200000,0x400000,0x800000,0x01000000,0x02000000,0x04000000,0x08000000,0x010000000,0x020000000,0x040000000,0x080000000};
void delay (void)// 軟件延時(shí)函數(shù)delay()
}
int main(void)
}
程序說(shuō)明:
通過(guò)使用32+16位LED顯示流水燈,可以理解LPC2124的各個(gè)管腳、端口的功能。
---------------數(shù)組也顯得不方便—移位功能好使-----------------