ARM程序.docx
- 文档编号:2907663
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:28
- 大小:19.29KB
ARM程序.docx
《ARM程序.docx》由会员分享,可在线阅读,更多相关《ARM程序.docx(28页珍藏版)》请在冰豆网上搜索。
ARM程序
实验一:
#include"config.h"
//定义LED控制口(输出高电平时点亮LED)
#defineLED1_CON(1<<11)/*GPE11口*/
#defineLED2_CON(1<<12)/*GPE12口*/
#defineLED3_CON(1<<4)/*GPH4口*/
#defineLED4_CON(1<<6)/*GPH6口*/
//定义蜂鸣器控制口
#defineBEEP(1<<10)/*GPH10口*/
#defineBEEP_MASK(~BEEP)
/*********************************************************************************************************
**Functionname:
DelayNS
**Descriptions:
长软件延时。
**延时时间与系统时钟有关。
**Input:
dly延时参数,值越大,延时越久
**Output:
无
**
********************************************************************************************************/
voidDelayNS(uint32dly)
{
uint32i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}
/*********************************************************************************************************
**Functionname:
RunBeep
**Descriptions:
控制蜂鸣器Be一声音。
**Input:
无
**Output:
无
*
********************************************************************************************************/
voidRunBeep(void)
{
rGPHDAT=rGPHDAT&BEEP_MASK;//BEEP=0
DelayNS(5);
rGPHDAT=rGPHDAT|BEEP;//BEEP=1
DelayNS(5);
}
/*********************************************************************************************************
**Functionname:
LED_DispAllOn
**Descriptions:
控制LED1~LED4全部点亮。
**Input:
无
**Output:
无
**Createdby:
黄绍斌
********************************************************************************************************/
voidLED_DispAllOn(void)
{
rGPEDAT=rGPEDAT|(0x03<<11);
rGPHDAT=rGPHDAT|(0x05<<4);
}
/*********************************************************************************************************
**Functionname:
LED_DispAllOff
**Descriptions:
控制LED1~LED4全部熄灭。
**Input:
无
**Output:
无
********************************************************************************************************/
voidLED_DispAllOff(void)
{
rGPEDAT=rGPEDAT&(~(0x03<<11));
rGPHDAT=rGPHDAT&(~(0x05<<4));
}
/*********************************************************************************************************
**Functionname:
LED_DispNum
**Descriptions:
控制LED1~LED4显示指定16进制数值。
LED4为最高位,LED1为最低为,点亮表示该位为1。
**Input:
dat显示数值(低4位有效)
**Output:
无
**Createdby:
黄绍斌
********************************************************************************************************/
voidLED_DispNum(uint32dat)
{
dat=dat&0x0000000F;//参数过滤
//控制LED4、LED3显示(d3、d2位)
if(dat&0x08)rGPHDAT=rGPHDAT|(0x01<<6);
elserGPHDAT=rGPHDAT&(~(0x01<<6));
if(dat&0x04)rGPHDAT=rGPHDAT|(0x01<<4);
elserGPHDAT=rGPHDAT&(~(0x01<<4));
//控制LED2、LED1显示(d1、d0位)
rGPEDAT=(rGPEDAT&(~(0x03<<11)))|((dat&0x03)<<11);
}
/*********************************************************************************************************
**Functionname:
main
**Descriptions:
初始化I/O,然后控制LED显示。
**Input:
无
**Output:
系统返回值0
********************************************************************************************************/
intmain(void)
{
inti;
//初始化I/O
rGPECON=(rGPECON&(~(0x0F<<22)))|(0x05<<22);//rGPECON[25:
22]=0101b,设置GPE11、GPE12为GPIO输出模式
rGPHCON=(rGPHCON&(~(0x33<<8)))|(0x11<<8);//rGPHCON[13:
8]=01xx01b,设置GPH4、GPH6为GPIO输出模式
rGPHCON=(rGPHCON&(~(0x03<<20)))|(0x01<<20);//rGPHCON[21:
20]=01b,设置GPH10为GPIO输出模式
//LED显示控制(编写程序)
for(i=0;i<4;i++)
{
LED_DispAllOff();
DelayNS(5);
LED_DispAllOn();
DelayNS(5);
}
LED_DispNum
(1);
DelayNS(5);
LED_DispNum
(2);
DelayNS(5);
LED_DispNum(4);
DelayNS(5);
LED_DispNum(8);
DelayNS(5);
for(i=0;i<4;i++)
{
LED_DispAllOff();
DelayNS(5);
LED_DispAllOn();
DelayNS(5);
}
}
/*********************************************************************************************************
**EndOfFile
********************************************************************************************************/
实验二
#include"config.h"
//定义独立按键KEY1的输入口
#defineKEY_CON(1<<4)/*GPF4口*/
//定义蜂鸣器控制口
#defineBEEP(1<<10)/*GPH10口*/
#defineBEEP_MASK(~BEEP)
/*********************************************************************************************************
**Functionname:
DelayNS
**Descriptions:
长软件延时。
**延时时间与系统时钟有关。
**Input:
dly延时参数,值越大,延时越久
**Output:
无
********************************************************************************************************/
voidDelayNS(uint32dly)
{
uint32i;
for(;dly>0;dly--)
for(i=0;i<50000;i++);
}
/*********************************************************************************************************
**Functionname:
main
**Descriptions:
不断地读取GPF4口的值,并输出控制蜂鸣器B1。
**Input:
无
**Output:
系统返回值0
********************************************************************************************************/
intmain(void)
{
//初始化I/O
rGPFCON=(rGPFCON&(~(0x03<<8)));//rGPFCON[9:
8]=00b,设置GPF
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 程序