160 likes | 375 Views
I /O 接口实验 ( 1 ). 实 验 目 的 熟悉 ARM 芯片 I/O 口编程配置方法。 通过实验掌握 ARM 芯片的 I/O 口控制 LED 显示的方法。. I /O 接口实验 ( 2 ). 实 验 内 容 编程 使实验板上的发光二极管 LED1 和 LED2 轮流点亮和熄灭。 学习目标 熟悉 S3C44B0X 芯片的 I/O 口配置寄存器 熟悉 ARM 芯片 I/O 口的编程配置方法. I /O 接口实验 ( 3 ). 基 本 原 理 S3C44B0X 芯片上有 7 组 I/O 端口 ( A ~ G ), 71 个多功能的输入输出管脚。
E N D
I/O 接口实验(1) 实 验 目 的 • 熟悉ARM芯片I/O口编程配置方法。 • 通过实验掌握ARM芯片的I/O口控制LED显示的方法。
I/O 接口实验(2) 实 验 内 容 • 编程 使实验板上的发光二极管LED1和LED2轮流点亮和熄灭。 • 学习目标 • 熟悉S3C44B0X芯片的I/O口配置寄存器 • 熟悉ARM芯片I/O口的编程配置方法
I/O 接口实验(3) 基 本 原 理 S3C44B0X芯片上有7组I/O端口(A~G ),71个多功能的输入输出管脚。 可在这些管脚上连接不同的设备。 要使端口上所接的设备正常工作,则: • 前提:在运行程序之前,应先对每一个将要用到的管脚功能进行设置。否则,这些管脚将无法正常使用 • 方法:对相应的PCON寄存器来满足不同系统和设计的需要
I/O 接口实验(4) 实 验 电 路
I/O 接口实验(5) 实 验 分 析 先向PCONB中写入相应的值,使PB9、PB10为输出口,然后再向PDATB中写入相应的位写入0或1,从而使LED1和LED2点亮或熄灭。 亮灭规则:0(低电平)使LED亮;1(高电平)使LED灭。 Led_Display()函数的参数: LED2 LED1 LedStatus值 0x00 0x01 0x10 0x11
I/O 接口实验(6) 程 序 分 析 void Led_Display(int LedStatus) { led_state = LedStatus; if( (LedStatus&0x01)==0x01 ) rPDATB=rPDATB&0x5ff; else rPDATB=rPDATB|0x200; if( (LedStatus&0x02)==0x02 ) rPDATB=rPDATB&0x3ff; else rPDATB=rPDATB|0x400; } 程序基本思路: 对传来的参数“LedStatus”逐位进行判断,从而决定PB9、PB10应该是“0”还是“1”。
I/O 接口实验(7) 操 作 步 骤 • 通过Embest仿真器连接PC机与实验箱,用串口线连接实验箱上的UART0和PC机的串口。 • 运行PC机上超级终端串口通信程序(参数:波特率115200、1位停止位、无校验位、无硬件流控制)。 • 启动Embest IDE应用程序,打开实验例程目录LED_test子目录下工程LED_Test.ews • 编译链接通过后连接目标板,下载并运行它。
Embest 44B0X Evaluation Board(S3CEV40) LED Test Example I/O 接口实验(8) 操 作 步 骤 • 观察超级终端输出如下内容: • 实验系统LED1和LED2进行以下循环: LED1亮 → LED2亮 → LED1和LED2全亮 → LED2关闭 → LED1关闭 • 理解和掌握实验后,修改程序调整亮灭规则。 • 编写一个直接写端口使LED亮灭的程序。
中断实验(1) 实 验 目 的 • 通过实验了解ARM的中断方式和原理。 • 熟悉ARM中断的编程方法。
中断实验(2) 实 验 内 容 • 编写一个中断服务程序 • 按钮SB2触发EINT6,LED1亮,同时8段数码管由0到F显示1次,8段数码管显示完后,LED2熄灭。 • 按钮SB3触发EINT7,LED2亮,同时8段数码管由F到0显示1次,8段数码管显示完后,LED1熄灭。 • 学习目标 • 熟悉S3C44B0X芯片的I/O口配置寄存器 • 熟悉ARM芯片I/O口的编程配置方法
中断实验(3) 实 验 电 路
中断实验(4) • 实 验 分 析(1) • EINT6和EINT7共用一个向量,如何区分? • 答案:在中断服务程序里通过判断EXTINTPND • 外部中断 的初始化程序要做哪些操作? • 答案:开放中断屏蔽位(CPSR、INTCON、INTMSK) • 设置中断模式(INTMOD、 CPSR、INTCON ) • 设置外部中断触发模式(EXTINT ) • 设置PG口(PCONG、PUPG) • 设置中断服务程序入口地址(pISR_中断类型) • 清除对应的挂起位(INTPND、EXTINTPND)
中断实验(5) • 实 验 分 析(2) • 注意初始化程序中的一致性问题 • 答案:CPSR与INTCON • INTCON与INTMOD(V、I、F位的一致性) • 中断服务程序的内容要求? • 答案:完成中断请求的具体动作(核心部分!) • 返回被中断程序(一般不存在问题) • 清除再次请求的障碍(I_ISPC、EXTINTPND) • 与中断源有关的名字 • BIT_功能名
中断实验(6) • 实验操作步骤 • 将实验箱和PC机相连,打开电源; • 在PC机上运行超级终端串口通信程序; • 打开目录下的INT_Test.ews例程,编译链接通过后连接目标板,下载并运行它 • 观察超级终端上的提示信息 • 用户可以按下实验系统的SB2和SB3按钮,观察实验箱上LED1、LED2结果。
中断实验(7) • 总结与提高 • 设置断点后运行程序,观察寄存器的值; • 修改中断服务程序,改变LED1、LED2的显示规律; • 精简中断服务程序,使其只包含SB2和SB3的处理内容
中断实验(8) • 思 考 题 • 人机交互的实现方法? • EXINT6和EXINT7(SB2、SB3)的优先级是如何安排的? • 中断服务程序与被中断程序(主程序)间的信息事如何传递的? • 中断服务程序可以再调用函数吗?这些函数与中断服务程序、主程序的位置关系如何?