单片机第一次实验.docx

上传人:b****5 文档编号:2768618 上传时间:2022-11-14 格式:DOCX 页数:23 大小:2.43MB
下载 相关 举报
单片机第一次实验.docx_第1页
第1页 / 共23页
单片机第一次实验.docx_第2页
第2页 / 共23页
单片机第一次实验.docx_第3页
第3页 / 共23页
单片机第一次实验.docx_第4页
第4页 / 共23页
单片机第一次实验.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

单片机第一次实验.docx

《单片机第一次实验.docx》由会员分享,可在线阅读,更多相关《单片机第一次实验.docx(23页珍藏版)》请在冰豆网上搜索。

单片机第一次实验.docx

单片机第一次实验

 

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;//

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 计算机软件及应用

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1