




免费预览已结束,剩余2页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
实验二 ARM 汇编控制 LED 实验【实验目的】1、理解掌握通过 ARM 汇编控制硬件操作;2、熟练使用 ARM 调试软件 RVDS 进行硬件调试。【实验内容】1、掌握 ARM 处理器 GPIO 相关寄存器的使用;2、用 ARM 汇编实现控制开发 LED 按照一定方式点亮。【预备知识】1、ARM 汇编基础2、ARM 处理器通用 IO 口的操作【实验设备和工具】软件:Windows 操作系统,RVDS 软件硬件:ARM 嵌入式开发板,PC 机 Pentium100 以上,并口线,JTAG 板,JTAG 连接线【实验原理】1、 S3C2440 处理器相关寄存器介绍nPORT G 控制寄存器( GPGCON )nPORT G 数据寄存器(GPGDAT)nPORT G 禁止上拉寄存器(GPGUP)注:以上寄存器详细描述见实验指导书或者 S3C2440 芯片手册。2、开发板 LED 部分原理图说明nGPG5 接 LED4,串联上拉电阻nGPG6 接 LED5,串联上拉电阻nGPG7 接 LED6,串联上拉电阻nGPG8 接 LED7,串联上拉电阻所以,当 IO 口输出低电平时,相应的 LED 才能点亮。【实验步骤】(一)LED 汇编实验1、通过查看 S3C2440 处理器 G 口控制寄存器,在ledtest.s 文件中添加汇编代码,设置GPG5GPG8 为 output。2、在 ledtest.s 文件中添加汇编代码,禁止 GPG5GPG8 端口的上拉电阻。3、在 ledtest.s 文件中添加汇编代码,点亮 LED6,熄灭 LED5,LED7,LED8,并调用延时。4、 在 ledtest.s 文件中添加汇编代码,点亮 LED7,熄灭 LED5,LED6,LED8,并调用延时。5、在 ledtest.s 文件中添加汇编代码,点亮 LED8,熄灭 LED5,LED6,LED7,并调用延时。6、在 ledtest.s 文件中添加汇编代码,实现 LED5-LED8 依次点亮。7连接好 JTAG 仿真板,一口与 PC 的并口相连,另一口与开发板的 JTAG 口相连,打开开 发板电源。打开 H-jtag 程序,检测 CPU,点击 RVDS 中的“Debug”,打开 RVD 进行硬件调 试(二)LED C 语言实验(选做)【实验结果和程序】(一)LED 汇编实验;GPIO 寄存器宏定义GPGCON EQU 0x56000060GPGDAT EQU 0x56000064GPGUP EQU 0x56000068EXPORT LEDTESTAREA LEDTESTASM,CODE,READONLY ; 该 伪 指 令 定 义 了 一 个 代 码 段 , 段 名 为LEDTESTASM,属性只读ENTRY LEDTEST;设置 GPG5GPG8(即 LED4-LED7)为 outputldr r0,=GPGCONldr r1,r0mov r1,#0x00015400 str r1,r0;禁止 GPG5GPG8(即 LED4-LED7)端口的上拉电阻ldr r0,=GPGUPldr r1,r0mov r1,#0x01e0 str r1,r0looptest;将数据端口 G 的数据寄存器的地址附给寄存器 r2 ldr r2,=GPGDAT; 点亮 LED5,熄灭 LED6-LED8,并调用延时ldr r3,r2orr r3,r3,#0x01e0 bic r3,r3,#0x0020str r3,r2 ;GPG5(即 LED5) output 0ldr r0,=0xffffff ;初始计数值bl delay ;调用延迟子程序;-点亮 LED6,熄灭 LED5,LED7,LED8,并调用延时- ldr r3,r2orr r3,r3,#0x01e0 bic r3,r3,#0x0040str r3,r2 ;GPG6(即 LED6) output 0ldr r0,=0xffffff ;初始计数值bl delay;-点亮 LED7,熄灭 LED5,LED6,LED8,并调用延时- ldr r3,r2orr r3,r3,#0x01e0 bic r3,r3,#0x0080str r3,r2 ;GPG7(即 LED7) output 0ldr r0,=0xffffff ;初始计数值bl delay;-点亮 LED8,熄灭 LED5,LED6,LED7,并调用延时- ldr r3,r2orr r3,r3,#0x01e0 bic r3,r3,#0x0100str r3,r2 ;GPG8(即 LED8) output 0ldr r0,=0xffffff ;初始计数值bl delay;-实现 LED5-LED8 依次点亮-b looptestdelaysub r0,r0,#1 ;r0=r0-1cmp r0,#0x0 ;将 r0 的值与 0 相比较bne delay ;比较的结果不为 0(r0 不为 0),继续调用 delay,否则执行下一条语句mov pc,lr ;返回END ;程序结束符(二)LED C 语言实验(选做)arm 汇编部分:AREA |DATA|,CODE,READONLY ENTRY;ldr r13,=0x1000IMPORT main b mainENDC 语言部分:/-Serial Experiment-/-This is coded by UESTCHQ 20101018-/*串口通信 C 程序,按e退出通信*/#define ULCON0 (*(volatile unsigned *)0x50000000) /UART 线控制寄存器#define UCON0(*(volatile unsigned *)0x50000004) /UART 控制寄存器#define UFCON0 (*(volatile unsigned *)0x50000008) /FIFO 控制寄存器#define UMCON0 (*(volatile unsigned *)0x5000000C) /AFC disable#define UTRSTAT0 (*(volatile unsigned*)0x50000010) /UART 状态寄存器#define UBRDIV0 (*(volatile unsigned *)0x50000028) /波特率#define UTXH0(*(volatile unsigned *)0x50000020)#define URXH0(*(volatile unsigned *)0x50000024)#define CAMDIV0(*(volatile unsigned *)0x4C000018)#define GPHCON(*(volatile unsigned *)0x56000070)#define GPHDAT(*(volatile unsigned *)0x56000074)#define GPHUP(*(volatile unsigned *)0x56000078)#define MPLLCON(*(volatile unsigned *)0x4C000004)#define UPLLCON(*(volatile unsigned *)0x4C000008)#define CLKDIVN(*(volatile unsigned *)0x4C000014)#define WTCON(*(volatile unsigned *)0x53000000)void initpll()MPLLCON=0x76022;/Fin=16.9344MHz,Fout=266.72MHzCLKDIVN=0x07;/0000 0111void inituart()ULCON0=0x03;/1 位起始位,8 位数据位 UCON0=0x0805;/串口时钟 PCLK,查询方式 UFCON0 =0x0;UMCON0 =0x0;UBRDIV0 =0x17;/ 波 特 率 115200UBRDIV0 =44450000/(115200*16)-1=24-1=23void initgpio()GPHCON |=0xa0;/ set to rxd and txdGPHUP |=0x0f;/ pull upWTCON &=0xdb;void uart_send(char * c)for (; *c != 0; c+)URXH0 = *c ;unsigned char uart_get()int main()UTXH0=URXH0;return UTXH0;char key = ;initpll();/初始化锁相环 PLLinitgpio();/初始化 IO 口inituart();/初始化串口uart_send(If you want to quit ,please press ern);while(1)key = uart_get();if (key = e)elseuart_send (rnyou pressed e and youll quit!rn);break;uart_send(&key);uart_send(the program exited by user!rn);return 0;【思考题】1 、如何实现 LED0-LED7 的循环点亮。答:将 GPGCON 端口的值改为 0x0001555,GPGUP 的值改为 0x01ff。再仿照 le
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 企业员工健康体检制度与记录模板
- 小学数学小数概念教学实施方案
- 无粘结预应力施工方案
- 六一儿童节活动策划方案
- 五年级体育课户外活动设计方案
- 建设单位工程项目质量检查报告模板
- 大型活动现场安全保卫工作方案
- 酒店住宿服务标准操作流程
- 现代物业管理制度建设方案
- SMC模压工艺质量控制技术手册
- DBJT15-147-2018 建筑智能工程施工、检测与验收规范
- 华为鸿蒙课件
- 全站仪使用课件
- 中国心房颤动管理指南(2025)解读
- 2025年成人高考专升本民法真题及答案
- 2024年云南省公务员考试行测真题参考答案详解
- 初中普法主题教育
- 多发骨折病人疑难病例讨论
- 草果种植技术课件大全
- 2025年水利A证考试题及答案
- 新疆就业政策课件
评论
0/150
提交评论