ARM嵌入式GPIO接口实验
更新时间:2023-03-09 20:42:01 阅读量: 综合文库 文档下载
《嵌入式系统原理与应用B》课程实验报告
ARMGPIO实验
要求完成的主要实验
GPIO实验(输入扫描按键、输出控制灯、定时器综合) 说明:标注完成的实验,未完成的给予说明
专业名称:通信工程 班级:1510班 学生姓名:石龙飞
学号(8位): 03151307 指导教师:刘钊远
一、 实验目的
1、熟悉了解单片机,以EasyARM2131为例,观察其板子的设计、模块、芯片、以及有哪些接口。
2、熟练掌握如何连接单片机和电脑,使其能够对单片机进行烧录程序。 3、熟练掌握Keil4的使用,学会用Keil4为单片机烧录程序。
4、掌握Keil4的编程方法、调试、以及各项参数的设置,如何选择与硬件相匹配的仿真环境。 5、用C语言编程,学习如何控制单片机的各个部件工作,比如控制蜂鸣器鸣叫,控制LED闪烁,控制定时器计数,控制按键的输入等等。
6、深刻理解中断以及定时器的工作方法和原理,以及如何在程序中他们进行编程设置。
二、 实验内容
1、编程实现对单片机上6个LED灯的控制,要求实现不同的花型变化,以及不同的变换间隔。
2、编程实现输入,通过对单片机上的按键进行扫描来获得输入,用这个输入来进行不同的操作。
3、通过定时器中断来进行计时,模拟操作系统的时钟周期,来以特定的时间间隔执行不同的任务。
三、 实验主要步骤
1、将单片机和下载器以及电脑连接好,安装好驱动程序。 2、使用keil4首先建立或者打开一个工程,设置好keil的各个参数使其编译环境与我们使用的单片机相匹配。
3、使用C语言设计、编写程序,并进行编译调试,找到代码中的语法以及一些逻辑错误。
4、将写好的、经过编译没有语法和逻辑错误的程序通过keil烧录到单片机中,再对单片机进行操作,验证结果。
四、 实验代码
#include \#include \ extern void IRQEnable(void); extern void IRQDisable(void); extern void FIQEnable(void); extern void FIQDisable(void); // 外设时钟频率 #define Fpclk 11059200 // P0.7控制BEEP,低电平蜂鸣 #define BEEP 1 << 7 // P1[25:18] 对应控制 LED8~LED1, 低电平---点亮 #define LEDS8 0xFF << 18 // KEY[6:1] connect to P0[21:16], 0---be pushed #define KEY1 1<<16 #define KEY2 1<<17 #define KEY3 1<<18 #define KEY4 1<<19 #define KEY5 1<<20 #define KEY6 1<<21 #define KEYS 0x3f<<16 uint8 CURRENT_KET_VALUE = 0; uint32 I_LED; const uint32 LED1[]={0x01<<18,0x01<<19,0x01<<20,0x01<<21,0x01<<22,0x01<<23,0x01<<24,0x01<<25, 0x01<<25,0x01<<24,0x01<<23,0x01<<22,0x01<<21,0x01<<20,0x01<<19,0x01<<18 }; const uint32 LED2[]={0x01<<18,0x03<<18,0x07<<20,0x01<<21,0x01<<22,0x01<<23,0x01<<24,0x01<<25}; const uint32 LED3[]={0x01<<18,0x01<<19,0x01<<20,0x01<<21,0x01<<22,0x01<<23,0x01<<24,0x01<<25, 0x01<<25,0x01<<24,0x01<<23,0x01<<22,0x01<<21,0x01<<20,0x01<<19,0x01<<18 }; //设置全局计数器 uint32 COUNTER = 0; void initTimer0(uint32 time); void initLED(void); uint8 getKeyValue(void); void oneWaterLight1(uint32 I_LED); void oneWaterLight2(uint32 I_LED); // 中断处理程序 void __irq IRQ_Timer0 (void) { // 经初始化后,每过10msCOUNTER加一,当COUNTER到100,也就是1s的时候,置COUNTER0 if(COUNTER == 100) COUNTER = 0; COUNTER++; // 清除 EINT0---中断标志 T0IR = 0x01; // 通知VIC中断处理结束 VICVectAddr = 0x00; } void oneWaterLight3(uint32 I_LED){ } // 一个流水灯单向跑 void oneWaterLight2(uint32 I_LED){ IO1SET = LEDS8; IO1CLR = LED2[I_LED%8]; } // 一个流水灯来回跑 void oneWaterLight1(uint32 I_LED){ IO1SET = LEDS8; IO1CLR = LED1[I_LED]; } // 扫描按键,获取键值,按下则返回按下的键,没有按下返回0 uint8 getKeyValue(void){ volatile uint32 Vkey=0; uint8 keyValue = 0; Vkey = (IO0PIN & KEYS); if((Vkey & KEY1) == 0) keyValue=1; else if ((Vkey & KEY2) == 0) keyValue=2; else if ((Vkey & KEY3) == 0) keyValue=3; else if ((Vkey & KEY4) == 0) keyValue=4; else if ((Vkey & KEY5) == 0) keyValue=5; else if ((Vkey & KEY6) == 0) keyValue=6; return keyValue; } void initLED(void){ PINSEL2 &= (~0x08); IO1DIR = LEDS8; IO1SET = LEDS8; } void initTimer0(uint32 time){ // IRQ中断使能 IRQEnable(); // 定时器0初始化 // 定时器0---使能、复位 T0TCR = 0x03; // 时钟不分频 T0PR = 0; // P1[25:16] used as GPIO // Config P[25:16] GPIO & Output // 设置T0MR0匹配后复位T0TC,并产生中断标志 T0MCR = 0x03; // 1/time秒钟定时 --- 匹配目标值 T0MR0 = (Fpclk)/time; // 启动定时器0 T0TCR = 0x01; // 设置定时器0中断IRQ // 所有中断通道设置为IRQ中断 VICIntSelect = 0x00; // 设置定时器0中断通道分配到 VIC_slot_0 VICVectCntl0 = 0x20 | 0x04; // 设置中断服务程序地址 VICVectAddr0 = (uint32)IRQ_Timer0; // 使能定时器0中断 VICIntEnable = 1 << 0x04; } void main (void)
正在阅读:
ARM嵌入式GPIO接口实验03-09
生化复习要点10-20
环境空气质量手工监测技术规范教程11-22
天热作文300字06-26
地质年代与地层系统07-23
非参第八次作业10-23
电大《秘书学》课程期末任务1-4试题03-01
铵盐硝酸导学案03-10
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 嵌入式
- 接口
- 实验
- GPIO
- ARM
- 古希腊罗马神话传说选修课论文题目
- 植物细胞组织培养的基本技术(总结版)
- 7B Unit7 Period3(Grammar)含答案
- 配套K12三年级语文下册《可贵的沉默》生字组词人教版
- 土地利用规划实习心得
- 全市酒业大会领导发言稿
- 2018年优秀大学生班干部竞选演讲稿-word范文(5页)
- 高中语文必修一(人教版)《烛之武退秦师》导学案
- 武汉二中2006语文
- 激发学生的热情
- 试验室质检员作业指导书
- 工业毛毡项目可行性研究报告
- 四年级语文第六单元导学案111 - 图文
- 浅谈培养中学生学习数学的兴趣
- 监理规划编制作业指导书+安全监理方案 - 图文
- 2014年9月重庆市市属事业单位公开招聘工作人员考试《综合基础知
- 2014年秋六年级上学期数学第三次月考复习试题
- 高考满分作文:变题写作与抄袭不是一回事
- 拱桥计算书
- 拌合站、水泥罐、搅拌站地基计算