嵌入式ARM键盘控制LED灯实验报告_单片机led灯实验报告
嵌入式ARM键盘控制LED灯实验报告由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“单片机led灯实验报告”。
实验六 键盘控制LED灯实验实验目的(1)通过实验掌握中断式键盘控制与设计方法;(2)熟练编写S3C2410中断服务程序。实验设备
(1)S3C2410嵌入式开发板,JTAG仿真器。
(2)软件:PC机操作系统Windows XP,ADS1.2集成开发环境,仿真器驱动程序,超级终端通讯程序。实验内容
编写中断处理程序,处理一个键盘中断,并在串口打印中断及按键显示信息。实验步骤
(1)参照模板工程,新建一个工程keypad,添加相应的文件,并修改keypad的工程设置;
(2)创建keypad.c并加入到工程keypad中;(3)编写键盘中断程序; 参考代码如下: ①串口初始化程序
void uart_init()/* UART串口初始化 */ {
} GPHCON |= 0xa0;GPHUP = 0x0;ULCON0
//GPH2,GPH3 used as TXD0,RXD0
//GPH2,GPH3内部上拉
//8N1
= 0x03;UCON0 = 0x05;UFCON0 = 0x00;
//查询方式为轮询或中断;时钟选择为PCLK
//不使用FIFO //不使用流控 UMCON0 = 0x00;UBRDIV0 = 26;
//波特率为57600,PCLK=12Mhz ②发送数据
while(!(UTRSTAT0 & TXD0READY));UTXH0 = c;③接收数据
while(!(UTRSTAT0 & RXD0READY));return URXH0;④打印数据
int i = 0;
while(str[i]){ } return i;putc((unsigned char)str[i++]);⑤按键初始化
int key_init()/* 按键初始化 */ {
} ⑥中断初始化
void irq_init()/* 中断初始化 */ {
}(5)编译keypad;
(6)运行超级终端,选择正确的串口号,并将串口设置位:波特率(115200)、奇偶校验(None)、数据位数(8)和停止位数(1),无流控,打开串口; INTMSK &= ~(3
printk(“按键初始化OKrn”);return 0;(7)运行程序,在超级终端中输入的数据将回显到超级终端上,结果如图5.4所示:
图6.1 初始化运行结果
图6.2 main运行结果 实验总结
通过这次实验我巩固了上次实验的串口的使用方法,串口初始化、发送数据和接收数据,同时也熟悉了中断的处理过程,即保护现场、中断处理、恢复现场并返回。
在实验时花费了很多的时间都没有按照老师的要求将代码修改好,主要是因为对代码的不熟悉和不能很好的灵活运用,最后对老师修改的代码仔细的看了,其实很简单。