资源描述:
《实验——ARM通用IO接口及中断编程实验.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验——ARM通用IO接口及中断编程实验————————————————————————————————作者:————————————————————————————————日期:课程名称:嵌入式软件技术 开课机房:11号机房2012年3月27日星期二8:10~11:35专业班级通信09(2)班学号 Xb07680215姓名 夏陆豪实验项目名称实验2——ARM通用I/O接口及中断编程实验指导教师陈玮 一、实验任务与实验目的实验目的掌握群星单片机驱动库关于GPIO编程的API函数使用及中断程序设计实验任务任务一:走马灯根
2、据上图所示的电路,设计走马灯程序。功能要求如下:(1)闪灭时间1s;(2)起始状态LED3、LED4、LED5、LED6全灭;(3)走马灯流程:状态a.LED3亮->LED4亮->LED5亮->LED6亮,此时,四灯全亮状态b.四灯由亮到灭,由灭到亮闪烁4次,并恢复到四灯全亮的状态状态c.LED3灭->LED4灭->LED5灭->LED6灭,此时,四灯全灭状态d.继续流程b状态e.回到状态a任务二:按键中断编写按键中断程序,使用EASYARM8962开发板上的按键KEY1-KEY4分别控制LED3—LED6,即KEY1控制LED3,KEY2控制LED4,以此类推,
3、要求使用按键中断服务函数完成。 二、报告内容任务一电路原理图程序#include"systemInit.h"//定义LED#defineLED_PERIPHSYSCTL_PERIPH_GPIOA#defineLED_PORTGPIO_PORTA_BASE#defineLED_PINGPIO_PIN_2
4、GPIO_PIN_3
5、GPIO_PIN_4
6、GPIO_PIN_5//主函数(程序入口)intmain(void){unsignedlongulVal=0xFF;unsignedlongOnCode[4]={0xFB,0xF3,0xE3,0xC3};unsignedl
7、ongOffCode[4]={0xE3,0xF3,0xFB,0xFF};inti=0;jtagWait();//防止JTAG失效,重要!clockInit();//时钟初始化:晶振,6MHzSysCtlPeripheralEnable(LED_PERIPH);//使能LED所在的GPIO端口GPIOPinTypeGPIOOutput(LED_PORT,LED_PIN);//设置LED所在管脚为输出while(1){//state1for(i=0;i<=3;i++){GPIOPinWrite(LED_PORT,LED_PIN,OnCode[i]);//点亮LEDSy
8、sCtlDelay(1500*(TheSysClock/3000));}//state2for(i=0;i<=7;i++){ulVal=GPIOPinRead(LED_PORT,LED_PIN);GPIOPinWrite(LED_PORT,LED_PIN,~ulVal);//点亮LEDSysCtlDelay(1500*(TheSysClock/3000));}//state3for(i=0;i<=3;i++){GPIOPinWrite(LED_PORT,LED_PIN,OffCode[i]);//点亮LEDSysCtlDelay(1500*(TheSysClock
9、/3000));}//state4for(i=0;i<=7;i++){ulVal=GPIOPinRead(LED_PORT,LED_PIN);GPIOPinWrite(LED_PORT,LED_PIN,~ulVal);//点亮LEDSysCtlDelay(1500*(TheSysClock/3000));}}}仿真结果任务二电路原理图程序#include"systemInit.h"//定义LED#defineLED_PERIPHSYSCTL_PERIPH_GPIOA#defineLED_PORTGPIO_PORTA_BASE#defineLED_PINGPIO_P
10、IN_2
11、GPIO_PIN_3
12、GPIO_PIN_4
13、GPIO_PIN_5//定义KEY#defineKEY_PERIPHSYSCTL_PERIPH_GPIOB#defineKEY_PORTGPIO_PORTB_BASE#defineKEY_PINGPIO_PIN_2
14、GPIO_PIN_3
15、GPIO_PIN_4
16、GPIO_PIN_5//GPIOA的中断服务函数voidGPIO_Port_B_ISR(void){unsignedlongulStatus;ulStatus=GPIOPinIntStatus(KEY_PORT,true);//读取中断状态GPIOPinI
17、ntCle