单片机第一次实验Word格式文档下载.docx
《单片机第一次实验Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《单片机第一次实验Word格式文档下载.docx(25页珍藏版)》请在冰豆网上搜索。
三.实验代码、注释及现象
#include<
stdint.h>
#include<
stdbool.h>
#include"
inc/hw_memmap.h"
inc/hw_types.h"
#include"
driverlib/pin_map.h"
driverlib/sysctl.h"
driverlib/gpio.h"
intmain(void)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);
//使能GPIOF 口GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_DIR_MODE_OUT);
//设置为输出模式GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_1,GPIO_STRENGTH_8MA_SC,GPIO_PIN_TYPE_STD);
//进一步设置为8mA、带转换速率控制的推挽输出GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0xff);
//PF1 输出高电平while
(1)
{};
//LED_D1on简单LE
}
现象:
LED1被点亮
四.思考题
1.代码
SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ|
SYSCTL_OSC_MAIN|SYSCTL_USE_PLL|
SYSCTL_CFG_VCO_480),10000000);
// 设置系统时间为10MHZ
//使能GPIOF 口
GPIODirModeSet(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,GPIO_DIR_MODE_OUT);
//设置为
输出模式
GPIOPadConfigSet(GPIO_PORTF_BASE,GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3,GPIO_STRENGTH_8MA_SC,GPIO
_PIN_TYPE_STD);
//进一步设置为8mA、带转换速率控制的推挽输出
while
(1)
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0xff);
//PF1输出高,点亮LED0SysCtlDelay(100*(10000000/3000));
//延时n*1ms 100msGPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0);
//PF1输出低,关闭LED0
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0xff);
//PF2输出高,点亮LED2SysCtlDelay(100*(10000000/3000));
//延时n*1msGPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0);
//PF2输出低,点亮LED2
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0xff);
//PF2输出高,点亮LED2SysCtlDelay(100*(10000000/3000));
//延时n*1msGPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0);
//PF2输出低,点亮LED2
};
2.实验现象:
主板上LED0,LED1,LED2按照间隔时间顺序依次点亮
实验原理解读:
主要利用延迟函数,按顺序点亮和关断LED1,LED2,LED3。
五.实验中遇到的问题及其解决方法
首先是没有按默认路径安装,然后配置一直不对,缺少文件,后来把软件卸载之后再重新安装在默认路径,问题就解决了。
实验二 矩阵按键操作实验
一、实验目的
1.熟悉和掌握矩阵式键盘的工作原理、电路设计和软件编程方法。
2.熟悉和掌握矩阵式键盘的行列扫描法。
3.掌握键盘延时消抖的软件方法。
二、实验过程(包括流程图)
图2-1实验程序流程图
三、实验代码、注释(最好每条注释)及现象
volatileuint32_tui32Loop;
//定义变量volatileuint32_tkey;
//定义变量voiddelay()
intui32Loop0;
for(ui32Loop0=0;
ui32Loop0<
1000;
ui32Loop0++) //delay
{;
} //通过循环跑空函数延迟
intidentify_key()
key=0;
//***********************arowissetted00000111(PD1PH3PH2PM3)GPIO_PORTD_AHB_DATA_R=0x00;
//PD1PD0issetted0GPIO_PORTH_AHB_DATA_R=0x0c;
//PH2PH3issetted1GPIO_PORTM_DATA_R=0x08;
// PM3issetted1for(ui32Loop=0;
ui32Loop<
ui32Loop++) //delay
;
}if((GPIO_PORTP_DATA_R&
0x04)==0x00)//&
&
(GPIO_PORTP_DATA_R==0x04)
delay();
//eliminatebuffetingif((GPIO_PORTP_DATA_R&
0x04)==0x00)//PP2issetted0?
key=1;
//0key
return0;
else
if((GPIO_PORTN_DATA_R&
0x08)==0x00)//PN3issetted0?
if((GPIO_PORTN_DATA_R&
0x08)==0x00)
key=5;
//4keyreturn0;
0x04)==0x00)
key=9;
//8keyreturn0;
if((GPIO_PORTD_AHB_DATA_R&
0x01)==0x00)
if((GPIO_PORTD_AHB_DATA_R&
key=13;
//12keyreturn0;
//***********************arowissetted00001011(PD1PH3PH2PM3)GPIO_PORTD_AHB_DATA_R=0x02;
GPIO_PORTH_AHB_DATA_R=0x04;
GPIO_PORTM_DATA_R=0x08;
for(ui32Loop=0;
ui32Loop++)
if((GPIO_PORTP_DATA_R&
key=2;
//1keyreturn0;
key=6;
//5keyreturn0;
key=10;
//9keyreturn0;
key=14;
//13keyreturn0;
//***********************arowissetted00001101(PD1PH3PH2PM3)GPIO_PORTD_AHB_DATA_R=0x02;
GPIO_PORTH_AHB_DATA_R=0x08;
GPIO_PORTM_DATA_R=0x08;
key=3;
//2keyreturn0;
if((GPIO_PORTN