- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ARM嵌入式接口技術应用第六章人机交互—输入接口
第六章 人机交互 — 输入接口;概述;一、串口输入/输出应用;
芯片内主要由3个基本电路模块组成:
1、驱动器:
它将 TTL/CMOS逻辑电平转换为与输入逻辑电平相反的EIA/TIA-232电平;
2、接收器:
接收器把EIA/TIA-232电平转换成TTL或CMOS逻辑输出电平;
3、电荷泵:
电荷泵仍然需要4个外接电容,运用一种4相电压转换技术,保持输出对称的5.5V电源。;1.2 实验目的与内容 ;1.3 与中断相关的寄存器描述;1.UART0 FIFO控制寄存器(U0FCR)
U0FCR控制UART0 Rx(接收)和Tx(发送) FIFO的操作 ;2. UART0中断使能寄存器(U0IER)
U0IER用于使能中断源 ;3.UART0中断标识寄存器(U0IIR)
U0IIR提供状态代码用于指示一个挂起中断的中断源和优先级。;优先级高的中断事件屏蔽优先级低的中断事件。
① UART0 RLS中断是最高优先级的中断。
② UART0 RDA中断是第二优先级。
③ UART0 THRE中断是第三优先??中断。;1.4 电路原理图;1.5 主程序 ; 程序中读取宿主机发来的数据,然后把接收的数据处理后,发送给全局变量KeyCode作为按键值,最后退出中断。
程序清单 UART0中断服务程序;/**************************************************************************
* 名称:UART0_Init(uint32 UART_BPS)
* 功能:初始化串口0,设置波特率,数据位长度8,停止位长度1,无奇偶校验
UART0中断使能,设置中断服务程序地址
**************************************************************************/
void UART0_Init(uint32 UART_BPS)
{ uint16 Fdiv;
PINSEL0 = 0 // 设置I/O连接到UART0
U0LCR = 0x83; // DLAB = 1,可设置波特率
Fdiv = (Fpclk / 16) / UART_BPS; // 计算分频值
U0DLM = Fdiv / 256;
U0DLL = Fdiv % 256;
U0LCR = 0x03; //8位字符长度、1个停止位、禁止奇偶效验
U0IER = 0x01; //使能RDA中断
//----------设置外部中断----------
VICIntSelect = 0 //设置所有的通道为IRQ中断
VICVectCntl6 = 0x26; //UART0分配到IRQ6
VICVectAddr6 = (uint32)UART0_IRQ; //设置UART0中断服务程序的地址
VICIntEnable = VICIntEnable | (16); //使能UART0中断
}
;1.6 实验结果
单击全速运行按钮(快捷键F5),程序会运行并停留在main()主函数处;继续全速运行,在PC机上的“串口调试助手”的发送对话框输入数字,如下图所示,实验板上的LED亮灭状态随着输入数字的不同发生相应的变化。;二、键盘应用;1.1 非编码键盘的电路组成结构
;① 查询方式
在查询方式下不管有没有键按下,CPU需要不断地进行查询操作,以判断是否有键按下。 ;矩阵式键盘由于采用矩阵式结构,需要通过连接到键上的两根I/O口线的状态共同来确定键的状态。通过确定按键的行数,由行数和列数就可以唯一确定按键位置。; 矩阵式键盘状态的两种监测方法:查询方式和中断方式。
;1.2 按键位置判别的软件方法; 2.行列反转法
行列反转法也是判别按键位置的常用方法,行列反转法只需要扫描两次就可以判定按键位置。在程序设计时,将各个键对应的代码放在一个表中,程序通过查表来确定具体按下的是哪一个键。 ;1.3 从电路或软件的角度应解决的问题;2.采取串键保护措施 串键是指同时有一个以上的键按下。采取的策略:单键按下有效,多键同时按下无效。;1.4 实验目的与内容;1.5 电路原理图;1.6 按键扫描算法 ;按键识别中断服务程序;按键扫描子程序; //-------------- 扫描第2列 --------------
文档评论(0)