没有合适的资源?快使用搜索试试~ 我知道了~
嵌入式课程设计 - 电子词典硬件设计..pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
5星 · 超过95%的资源 1 下载量 60 浏览量
2023-09-13
12:59:23
上传
评论
收藏 451KB PDF 举报
温馨提示
试读
30页
嵌入式课程设计 - 电子词典硬件设计..pdf
资源推荐
资源详情
资源评论
1
上海电力学院
嵌入式系统
课程设计报告
题 目: 电子词典的设计
姓 名:
学 号:
院 系:
专业年级:
同组成员:
年 月 日
2
一、实验内容及要求
在 LCD 屏幕左侧绘制出单词输入框和释义显示框以及一个搜索键,右侧绘制 4*4 键盘
按钮,模拟出简易电子词典的功能,按钮操作用触摸屏或键盘实现均可。
实现功能:
(1)LCD 屏幕上显示 4*4 键盘,显示单词及其翻译、例句。
(2)一个键可完成 2 个英文字母的输入,如左上角第一个键可实现输入 a,b 两个字母,
第一次按下时为输入 a,如果需输入 b,只需连续快速按键两次即可。
(3)在输入完单词后,点击搜索键,即可在释义显示框中显示该单词的词性、中文解
释、示例词组和句子等。
(4)当发现输入的单词在库中不存在时,可实现将该单词添加入库的操作。
二、设计思路
(1)通过 LCD 显示模块画出电子词典操作界面。
(2)对应界面中各键的位置设置键盘对应键值。
(3)设定功能键,实现以下 3 个功能:①退格键:删除最后一位字母;②搜索∕保存
键:对输入框的单词进行判断,若单词存在于词库中,则显示单词词性、词义、例句;若单
词不存在则自动进行保存;③转换键:按下后,字母键输出对应的第二个字母。
(4)按键后赋值并显示。
三、软件构架
开始
LCD 模块
键盘模块
结束
3
四、模块分析
(1)键盘模块
流程图:
源 代 码 :
/******************************************************************************
***************
* File: keyboard.c
* Author: embest
* Desc: keyboard source code
* History:
*******************************************************************************
**************/
/*--- include files ---*/
开始
键盘初始化
键盘是否按下
Y
读取键值
是否是功能键
Y
N
执行功能
赋值
显示
结束
N
4
#ifndef KEY_INT
#define KEY_INT
#endif
#ifndef BUT_INT
#define BUT_INT
#endif
/*--- global variables ---*/
int input_char,n=0;
char word[20];
int wordIndex=0;
int x = 15;
int num=0;
int counter=0;
/* keyboard control address */
volatile UCHAR *keyboard_base = (UCHAR *)0x06000000;
/*--- function declare ---*/
void init_keyboard();
void close_keyboard(); void close_keyboard();
/*--- function code ---*/
/******************************************************************************
***************
* name: Test_Keyboard
* func: test keyboard
* para: none
* ret: none
* modify:
* comment:
*******************************************************************************
*************/
void Test_Keyboard()
5
{
// init keyboard
init_keyboard();
while(1);
// close keyboard
// close_keyboard();
}
/******************************************************************************
***************
* name: init_keyboard
* func: init keyboard interrupt
* para: none
* ret: none
* modify:
* comment:
*******************************************************************************
*************/
extern void isrEINT1(void);
extern void isrEint4567(void);
void init_keyboard()
{
/* enable interrupt */
rINTMOD = 0x0;
rINTCON = 0x1;
/* set EINT1 interrupt handler */
rINTMSK =~(BIT_GLOBAL|BIT_EINT1|BIT_EINT4567);
pISR_EINT1 = (int)isrEINT1;
pISR_EINT4567 = (int)isrEint4567;
/* PORT G */
rPCONG = 0xffff; // EINT7~0
rPUPG = 0x0; // pull up enable
rEXTINT = rEXTINT|0x20; // EINT1 falling edge mode
rI_ISPC = BIT_EINT1|BIT_EINT4567; // clear pending bit
rEXTINTPND = 0xf; // clear EXTINTPND reg
}
剩余29页未读,继续阅读
资源评论
- せい3642024-01-16果断支持这个资源,资源解决了当前遇到的问题,给了新的灵感,感谢分享~
hhappy0123456789
- 粉丝: 58
- 资源: 5万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功