已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
东南大学自动化学院MCU技术及课程设计课程设计报告姓 名: 学 号: 专 业: 自动化 实 验 室: 金智楼 组 别: 同组人员: 设计时间:2017年 08月28日 2017年09月06日评定成绩: 审阅教师: 目 录一. 课程设计的目的与要 3二. 原理设计3三. 方案论证 8四方案实现与测试 8五分析与总结9一课程设计的目的与要求本次设计使用MSP430F6638实现一基于单片机的电子密码锁的设计,其主要具有如下功能:1.密码通过键盘输入,若密码正确,则绿灯亮,表示密码锁打开,若密码错误,红灯亮,表示密码锁关闭。2.按AC键可以清除已输入的密码,重新输入。 二. 原理设计1.数码管显示(1) TM1638 控制芯片TM1638 是带键盘扫描接口的 LED驱动控制专用电路,内部集成有 MCU 数字接口、数据锁存器、 LED 高压驱动、键盘扫描等电路。主要应用于冰箱、空调 、家庭影院等产品的高段位显示屏驱动。TM1638 原理图如5-1所示,其中 SEG_DIO, SEG_CLK, SEG_STB 与 MSP430芯片中 P3.5, P3.4, P3.2 三个 IO 口相连,仅占用 3 个端口即可完成数据的输入输出,大大节约单片机的 IO 口和开发板的空间,降低了布线的难度。TM1638 与 MSP 430 实验箱连接示意图如图 4-1 所示,实验开发板 LED 数码管对应关系见图 5-2。 (2) TM1638 接收数据 串行数据传输格式:读取和接收 1 个 BIT 都在时钟的上升沿操作。 数据接收(写数据)时序如图 5-4 所示。 以下写数据代码仅作为参考。(更多关于 TM1638 的程序请参考给出的TM1638.h 和 TM1638.c 两个文件以及芯片说明书) void TM1638_Write(unsigned char DATA) /写数据函数 unsigned char i; DIO_OUT; /将 DIO 配置为输出状态 for(i=0;i8;i+) CLK_low; if(DATA 0x01) DIO_high; else DIO_low; CLK_high; DATA=1; /数据左移一位 (3) LED 数码管显示 图 5-5 共阴极数码管连接图 图 5-5 给出一个共阴数码管的连接示意图,如果让该数码管显示“0”,那你需要在 GRID1 为低电平的时候让 SEG1, SEG2, SEG3, SEG4, SEG5, SEG6 为高电平, SEG7 为低电平,即在 00H 地址单元里面写数据 3FH 就可以让数码管显示“0”。 共阴极 LED 数码管编码如表 5-1 所示。 (4) 开发板上 LED 地址 开发板共有 8 个 LED 数码管, 从左至右其地址分别为:08h, 0ah,0ch,0eh,00h,02h,04h,06h。 2.键盘读取 (1) 矩阵键盘的读取如图 5-6 所示,该键盘为 8*3bit。一旦有按键按下,TM1638 中相关的寄存器的值就会改变(按键按下时相应字节由 0 变 1),具体对应关系如图 5-7 所示。(键盘不全,没有加、减、等于、AC 等几个键) 注意: 1) 键盘用坐标形式表示,空白位表示本开发板暂未用到; 2) TM1638 最多可以读 4 个字节,不允许多读。读数据字节只能按顺序从BYTE1-BYTE4 读取,不可跨字节读。例如:硬件上的 K2 与 KS8 对应按键按下时,此时想要读到此按键数据,必须需要读到第 4 个字节的第 5BIT 位,才可读出数据; 3) 当 K1 与 KS8,K2 与 KS8,K3 与 KS8 三个按键同时按下时,此时 BYTE4所读数据的 B4,B5,B6 位均为 1; 4) 组合键只能是同一个 KS,不同的 K 引脚才能做组合键;同一个 K 与不同的 KS 引脚不可以做成组合键使用; 5) 例如:如果 Keyboard 的按键1按下,根据图 5-8,我们可以从BYTE1,B2读取按键值,程序实现参考:(注意本例对键值的定义只是一个示例,按键1 的键值保存为 BIT1,按键 2 的键值保存为 BIT2,按键 3 的键值保存为 BIT3,以此类推。当然也可以保存为任意自己定义的值,比如说 1 保存为 0x01,2保存为 0x02,按键 3 键值保存为 0x03,等等。对于加、减、乘、除和 AC等几个特殊的键,可以单独定义不重复的键值) unsigned char c4; /对应BYTE1-BYTE4 unsigned int key_value=0x00; /暂存TM1638读取的按键值 unsigned int i; STB_high; STB_low; TM1638_Write(0x42); /写地址 _delay_us(1); for(i=0;i4;i+) ci=TM1638_Read(); /读取按键值 STB_high; if(c0BIT2) /根据图5-8判断读取的按键 key_value |= BIT1; /如果是BYTE1,B2,则判断为按键1按下 下面给出 TM1638.c 中 read_key 主体函数,编写自己的 main 函数调用read_key 来实现所需功能。实际应用中可能需要根据要求将对键盘的处理程序 read_key 进行自定义修改,比如本次实验中可以直接根据键值进行显示。 unsigned char Read_key(void) unsigned char c4; unsigned int key_value=0x00; unsigned int i; STB_high; STB_low; TM1638_Write(0x42); _delay_us(1); for(i=0;i4;i+) ci=TM1638_Read(); STB_high; if(c0BIT2) key_value |= BIT1; else if(c0BIT6) key_value |= BIT4; else if /此处编写对应按键关系判断,key_value可任意定义的! for(i=0;i16;i+) if(0x01i)=key_value) break; return i; /注意返回值,是数字1-15,分别对应1-F按键。返回值小于16有意义, 大于等于16则无意义。如果需要定义其它按键(如+、-、*、/、AC等),则需要修改返回 值定义。当然,更简单的可直接返回key_value,比返回i更好! 三.方案论证方案:1.输入密码用矩形键盘,包括数字键和功能键。2.LED数码管显示输入密码。3.用发光二极管代替开锁的电路,绿灯表示开锁,红灯表示关锁。4.按AC键清空数码管显示,并清除输入记录。5.设置初始密码为“76543210”。四. 方案实现与测试1.将PC与开发板相连;2.建立CCS工程;3.选择 对该工程进行编译链接,生成.out 文件。然后选择 ,将程序下载到实验板中。程序下载完毕之后,可以选择 全速运行程序,也可以选择 单步调试程序,选择 F3 查看具体函数。也可以程序下载之后,按下 ,软件界面恢复到原编辑程序的画面。再按下实验板的复位键,运行程序。测试:输入正确密码:输入错误密码:五分析与总结在本次实验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广东博罗县流动人口服务管理中心招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 儿童保险的合同范本
- 山东潍坊农业局审计局2025年下半年事业单位招考易考易错模拟试题(共500题)试卷后附参考答案
- 山东事业单位菏泽市安全生产考试中心招考工作人员易考易错模拟试题(共500题)试卷后附参考答案
- 出租鱼塘场地协议书
- 太原重型机械集团限公司招聘易考易错模拟试题(共500题)试卷后附参考答案
- 代理价格协议书范本
- 框架性协议审核合同
- 公司网络托管协议书
- 档案续签托管协议书
- 走近湖湘红色人物智慧树知到答案2024年湖南工商大学
- 人教版八年级上册数学竞赛试题含答案
- GGD交流低压配电柜运行、维护说明书、安装、操作手册
- 社区卫生传染病风险评估记录表
- 2024年湖北水利发展集团有限公司招聘笔试冲刺题(带答案解析)
- 人教部编版六年级上册语文第五单元测试卷(含答案解析)
- 亚马逊逆向工作法
- 天津子牙循环经济产业区规划
- 受人威胁写遗书范本
- 人力资源解决方案-
- 300MW机组七漏治理方案及消漏方案
评论
0/150
提交评论