单片机第一次实验.docx
- 文档编号:2768618
- 上传时间:2022-11-14
- 格式:DOCX
- 页数:23
- 大小:2.43MB
单片机第一次实验.docx
《单片机第一次实验.docx》由会员分享,可在线阅读,更多相关《单片机第一次实验.docx(23页珍藏版)》请在冰豆网上搜索。
单片机第一次实验
Cortex-M4原理与实践实验报告
实验一GPIO接口实验
一.实验目的
1.掌握CodeComposerStudio6.0(以下简称CCS)的安装和配置步骤过程。
2.了解Cortex-M4开发系统和计算机与目标系统的连接方法。
3.了解CCS软件的操作环境和基本功能,了解TM4C1294软件开发过程。
1)学习创建工程和管理工程的方法;
2)了解基本的编译和调试功能;
3)学会设置断点,注入和提取数据文件;
4)学习使用观察窗口;
5)了解图形功能的使用方法。
二.实验程序流程图
本实验通过多种方法来控制GPIO端口的读写,通过GPIO端口的读写来控制主板上两个独立的LED灯,D1、D2的点亮和熄灭。
主板上D1、D2、D3对应的GPIO口分别为PF1、PF2、PF3。
三.实验代码、注释及现象
#include
#include
#include"inc/hw_memmap.h"
#include"inc/hw_types.h"
#include"driverlib/pin_map.h"
#include"driverlib/sysctl.h"
#include"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.代码
#include
#include
#include"inc/hw_memmap.h"
#include"inc/hw_types.h"
#include"driverlib/pin_map.h"
#include"driverlib/sysctl.h"
#include"driverlib/gpio.h"
intmain(void)
{
SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ|
SYSCTL_OSC_MAIN|
SYSCTL_USE_PLL|
SYSCTL_CFG_VCO_480),10000000);//设置系统时间为10MHZ
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOF);//使能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输出高,点亮LED0
SysCtlDelay(100*(10000000/3000));//延时n*1ms100ms
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_1,0);//PF1输出低,关闭LED0
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0xff);//PF2输出高,点亮LED2
SysCtlDelay(100*(10000000/3000));//延时n*1ms
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_2,0);//PF2输出低,点亮LED2
GPIOPinWrite(GPIO_PORTF_BASE,GPIO_PIN_3,0xff);//PF2输出高,点亮LED2
SysCtlDelay(100*(10000000/3000));//延时n*1ms
GPIOPinWrite(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;//PD1PD0issetted0
GPIO_PORTH_AHB_DATA_R=0x0c;//PH2PH3issetted1
GPIO_PORTM_DATA_R=0x08;//PM3issetted1
for(ui32Loop=0;ui32Loop<1000;ui32Loop++)//delay
{
;
}
if((GPIO_PORTP_DATA_R&0x04)==0x00)//&&(GPIO_PORTP_DATA_R==0x04)
{
delay();//eliminatebuffeting
if((GPIO_PORTP_DATA_R&0x04)==0x00)//PP2issetted0?
{
key=1;//0key
return0;
}
}
else
if((GPIO_PORTN_DATA_R&0x08)==0x00)//PN3issetted0?
{
delay();
if((GPIO_PORTN_DATA_R&0x08)==0x00)
{
key=5;//4key
return0;
}
}
else
if((GPIO_PORTN_DATA_R&0x04)==0x00)
{
delay();
if((GPIO_PORTN_DATA_R&0x04)==0x00)
{
key=9;//8key
return0;
}
}
else
if((GPIO_PORTD_AHB_DATA_R&0x01)==0x00)
{
delay();
if((GPIO_PORTD_AHB_DATA_R&0x01)==0x00)
{
key=13;//12key
return0;
}
}
//***********************arowissetted00001011(PD1PH3PH2PM3)
GPIO_PORTD_AHB_DATA_R=0x02;
GPIO_PORTH_AHB_DATA_R=0x04;
GPIO_PORTM_DATA_R=0x08;
for(ui32Loop=0;ui32Loop<1000;ui32Loop++)
{
;
}
if((GPIO_PORTP_DATA_R&0x04)==0x00)//&&(GPIO_PORTP_DATA_R==0x04)
{
delay();
if((GPIO_PORTP_DATA_R&0x04)==0x00)
{
key=2;//1key
return0;
}
}
else
if((GPIO_PORTN_DATA_R&0x08)==0x00)
{
delay();
if((GPIO_PORTN_DATA_R&0x08)==0x00)
{
key=6;//5key
return0;
}
}
else
if((GPIO_PORTN_DATA_R&0x04)==0x00)
{
delay();
if((GPIO_PORTN_DATA_R&0x04)==0x00)
{
key=10;//9key
return0;
}
}
else
if((GPIO_PORTD_AHB_DATA_R&0x01)==0x00)
{
delay();
if((GPIO_PORTD_AHB_DATA_R&0x01)==0x00)
{
key=14;//13key
return0;
}
}
//***********************arowissetted00001101(PD1PH3PH2PM3)
GPIO_PORTD_AHB_DATA_R=0x02;
GPIO_PORTH_AHB_DATA_R=0x08;
GPIO_PORTM_DATA_R=0x08;
for(ui32Loop=0;ui32Loop<1000;ui32Loop++)
{
;
}
if((GPIO_PORTP_DATA_R&0x04)==0x00)//&&(GPIO_PORTP_DATA_R==0x04)
{
delay();
if((GPIO_PORTP_DATA_R&0x04)==0x00)
{
key=3;//
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 第一次 实验