嵌入式技术及应用实训报告-基于开发板的完整人机接口设计

上传人:aa****6 文档编号:29221202 上传时间:2018-01-22 格式:DOCX 页数:18 大小:243.76KB
返回 下载 相关 举报
嵌入式技术及应用实训报告-基于开发板的完整人机接口设计_第1页
第1页 / 共18页
嵌入式技术及应用实训报告-基于开发板的完整人机接口设计_第2页
第2页 / 共18页
嵌入式技术及应用实训报告-基于开发板的完整人机接口设计_第3页
第3页 / 共18页
嵌入式技术及应用实训报告-基于开发板的完整人机接口设计_第4页
第4页 / 共18页
嵌入式技术及应用实训报告-基于开发板的完整人机接口设计_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《嵌入式技术及应用实训报告-基于开发板的完整人机接口设计》由会员分享,可在线阅读,更多相关《嵌入式技术及应用实训报告-基于开发板的完整人机接口设计(18页珍藏版)》请在金锄头文库上搜索。

1、嵌入式技术及应用实训报告项 目 名 称: 完整人机接口系统设计(44 键盘+4 位数码 LED)专 业: 计算机应用技术 班 级: 计应 1xx/1xx 校内指导老师:学 号: 姓 名: 地 点: 崇实楼 B 区 411 时 间: 201x.7.6201x.7.115成绩评定二一五年七月 xx 日附件 3-1:绵阳职业技术学院实验实训(设计)进度检查及成绩评定表日期 内容 执行情况 指导教师签名LPC2132 开发板流水灯设计完整人机接口系统设计(44 键盘+4 位数码LED)温度控制(基于 LPC2132+18B20 温度检测及控制)基于 ARM9 的 S3C2410 嵌入式实验平台的搭建L

2、inux 的基本命令使用嵌入式平台的 C 程序设计学生姓名 专业班级 学号评分项目 评分比例()分数 总分指导教师评分 40评阅教师评分 30成绩汇总答辩小组评分 30指导教师过程评语评分 签字: 年 月 日评阅教师报告评语评分 签字: 年 月 日答辩小组答辩评语评分 签字: 年 月 日附件 3-2:项目二:完整人机接口系统设计(44 键盘+4 位数码 LED)一、 项目描述键盘子系统(4x4 矩阵键盘)和显示子系统(多位 LED 数码管动态显示) ,硬件电路参考开发板电路。系统循环检测键盘动作,当某个键被按下,将该键对应的键值输出到最右边的 led 显示器上,原来显示的数据整体左移一位。二、

3、 硬件组成1. 四位共阳极数码管组成动态 LED 输出接口电路模块从图可知:LPC2132 的 P123:16控制数码管的字形段码(A、B、C、D、E、F、G、DP) ,且各位数码管笔画的同名端并联使用,段码的输出对各位数码管来说都是相同的;各位数码管的共阳极由 LPC2132 的 P021:18位控制 Q4Q1 来实现 4 位数码管的位输出控制。因此,同一时刻如果各位数码管的位选都处于选通状态的话,4 位数码管将显示相同的字符。如要各位数码管能够显示与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位(数码管)的位选处于导通状态,而其他各位的位选线处于关闭状态。同时,段线上输出

4、相应要显示字符的字形码。这样同一时刻,只有选通的哪一位显示出字符,而其他位则是熄灭的,如此循环下去,就可使各位数码管显示出将要显示的字符。 动态显示的特点: 用一个并行接口把所有数码管的笔画段同名端连在一起,而每一个数码管的公共端 COM 各自独立的受一条 I/O 线控制。但究竟哪个数码管亮则取决于 COM 端,COM 端与单片机的 I/O 口相连,由单片机输出位码到 LED 位码端,以控制何时点亮哪一位数码管。 动态扫描用分时轮流控制各数码管的 COM 端,使个数码管轮流点亮。在此过程中,每位数码管的点亮时间极为短暂。由于人的视觉暂留现象及发光二极管的余辉,给人的印象就是一组稳定的显示数据

5、动态显示的特点: 优点:当显示位数较多时,采用动态显示方式比较节省 I/O 口,硬件电路也较静态显示简单。 缺点:其稳定度不如静态显示方式。而且数据位数较多时,CPU 要轮流扫描,占用 CPU 比较多的时间。2. 4x4 键盘电路模块矩阵键盘又称行列式键盘,它是用 4 条 I/O 口线作为行线,4 条 I/O 口线作为列线组成的键盘。行线和列线的每个交叉点上设置一个按键。这样的键盘中的按键个数是 4 4,这种行列式键盘结构能够有效的提高单片机系统中 I/O 口的利用率。三、 软件系统任务概要(方案 1)1. 定义显示缓冲区、段码表和位码表。其中常量表格 ledsegcode数组保存对应的 09

6、 十个数字所对应的显示段码。常量表格 kscancode数组保存 4 条行线输出所对应的键盘扫描码。定义键盘代码数组 keytal44,保存 16 个键对应的键码。2. 定义延时函数 delay()函数、显示函数 Display() 、按键检测函数 Getkey() 。3. 定义变量。4. 主程序流程。 系统初始化(GPIO 功能、方向设置 IOxDIR 及各变量初始换) 。 根据计数变量 j 的值,决定是否调用 getkey()函数获取键值。 若有键输入,则置于显示缓冲区最低位(缓冲区数组整体左移一位) ,否则 do nothing。 调用 display()函数,动态显示缓冲区数据,持续

7、250us 转,循环。四、 关键函数设计1. 显示子程序设计void display(void) uint32 i;ledptr=0;while(ledptr0; dly-)for (i=0; i0; dly-)for (i=0; i1)for(n=6553;n1;n-);i-;/-uint8 GetKey(void) uint8 row,col,keyval;for (col=0;col0.19 RW-0.6 EN-0.4/DATA P1.1623,PINSEL0/P0.4 is GPIO PINSEL09:8=00PINSEL0/P0.6 is GPIO PINSEL013:12=00PI

8、NSEL1/P0.19 is GPIO PINSEL07:6=00IO0DIR|=(10.19 RW-0.6 EN-0.4/DATA 1.1623,/#define lcd_rs_1() lcd_rs_set = 1#define lcd_rs_1() IO0SET|=(10;i-);void set_port_dat(uint8 dat)IO1CLR|=(0xff16);IO1SET|=(dat16);delay1(30);/*-*/uint8 lcd_busy(void)uint8 i;set_port_dat(0xff);lcd_rs_0();lcd_rw_1();lcd_en_1();

9、delay1(10);BUSY(i); /for simulatorlcd_en_0();return i; /*-*/void lcd_wdat(uint8 dat)/while(lcd_busy(); /Proteus simulatuor delect this linelcd_rs_1();lcd_rw_0();lcd_en_0();delay1(10);set_port_dat(dat);delay1(10);lcd_en_1();delay1(10);lcd_en_0();/*-*/void lcd_wcmd(uint8 dat)while(lcd_busy();lcd_rs_0(

10、);lcd_en_0();lcd_rw_0();delay1(10);set_port_dat(dat);delay1(10);lcd_en_1();delay1(10);lcd_en_0();/*-*/void lcd_pos(uint8 x,uint8 y)y x if(y)x |= 0x40;lcd_wcmd(0x80|x); /*-*/void init_lcd(void)uint8 i;for(i=0;i3;i+)lcd_wcmd(0x38); /连写 5 次,保存正确初始化delay1(100);lcd_wcmd(0x0c); /清屏delay1(100);lcd_wcmd(0x0

11、6); /打开显示delay1(100);lcd_wcmd(0x01); /光标移动delay1(100);/*-*/void lcd_clr() lcd_wcmd(0x01); /清除 LCD 的显示内容 delay1(5); /*-*/void display(uint8 dat)/lcd_pos(0x10); /x16,y2;lcd_wdat(dat);/* 函数:DisplayText()* function: 显示字符串文本*/void DisplayText(uint8 addr,unsigned char *p)lcd_wcmd(addr); while(*p!=0) lcd_wdat(*(p+);void init_Key4x4(void)PINSEL0 /p0.8p0.15 工作于 GPIO 方式IO0DIR=IO0DIR /p0.8p0.11 输入 p0.12p0.15 输出将程序下载到开发板,看看运行结果。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号