基于MSP430单片机的简单门禁系统
一、课设选题
基于MSP430单片机的门禁
二、选题介绍
门禁系统通过6位密码的键入,然后与设定密码比较,若相同,门开启(电动机转动),同时人数计数器加一。若不同,按AC键清零,重新键入密码。
三、课设设备
MSP430F6638实验箱 1台
电脑 1台
四、前期准备
4.1、硬件设备
DY-FFTB6638 V3.0硬件实验系统
本次实验主要用到的硬件模块有:
a、KeyBoard模块和
b、LED Segment模块
c、TM1638驱动芯片
d、DC motor模块和DRV8833驱动芯片
4.1.1、Keyboard模块
简单介绍:矩阵键盘(key board)的读取
矩阵按键的识别利用行列扫描交叉点,如果按下,该交叉点的值由0变1。
键盘扫描程序一般应包括以下内容:
(1)判别有无键按下。
(2)键盘扫描取得闭合键的行、列值。
(3)用查表法得到键值。
(4)判断闭合键是否释放,如没释放则继续等待。
(5)将闭合键键号保存,同时转去执行该闭合键的功能。
4.1.2、LED Segment模块
4.1.3、TM1638驱动芯片
简单介绍:TM1638是带键盘扫描接口的LED(发光二极管显示器)驱动控制专用电路,内部集成有MCU数字接口、数据锁存器、LED高压驱动、键盘扫描等电路。
TM1638管脚功能说明:
符号 |
管脚名称 |
说明 |
DIO |
数据输入/输出 |
在时钟上升沿输入/输出串行数据,从低位开始; |
STB |
片选 |
在上升沿或者下降沿初始化串行接口,随后等待接受指令,STB为低后的第一个字节作为指令,当处理指令时,当前其他处理被终止。当STB为高时,CLK被忽略; |
CLK |
时钟输入 |
上升沿输入/输出串行数据; |
K1~K3 |
键盘数据输入 |
输入该教的数据在显示周期结束后被锁存; |
SEG1~SEG8 |
输出(段) |
段输出(也用按键扫描),P管开通漏输出; |
SEG9~SEG10 |
输出(段) |
段输出,P管开通漏输出; |
GRID1~GRID8 |
输出(位) |
位输出,N管开漏输出; |
VDD |
逻辑电源 |
5V+10%; |
GND |
逻辑地 |
接系统地; |
4.1.4、DC motor模块和DRV8833驱动芯片
电机驱动芯片DRV8833简单介绍
A、双通道H桥电流控制电机驱动器,能够驱动两个直流(DC)电机或一个双极性步进电机、低MOSFET导通电阻、HS+L360mΩ
B、PWM绕组电流调节/限制
C、电源电压范围 2.7V~10.8V
4.2、软件设备
4.2.1、MSP430的两种主要集成开发环境 (IDEs):
Code Composer Studio version 5 (CCSv5)
IAR Embedded Workbench (EWB) IDE
其中,CCSv5是TI官方提供的IDE,IAR是第三方软件。这两种软件均支持用汇编语言和C语言开发。并且本次软件也配置CSSv5。
4.2.2、CCSv5 安装
1、CCS的安装过程主要包括接受协议和选择安装目录、安装模式、安装组件、处理器等。
2、安装完成后,第一次打开CCSv5需要设置工作目录
4.3CCSv5工程开发
4.3.1、工作区(workspace)目录
建立一个工作区:目录包含所有元素(工程,工程的链接,可行性源代码) 用于开发:
默认: C:\Users\<user>, C:\Documents and Settings\<user>
为你所有的工程使用单一目录:检查 使用该目录为默认。
可维持多个workspace(工作区),每个工作区又可以维持多个工程,但是只能有一个工程活跃
4.3.2、新建工程
首先打开CCS并确定工作区间,然后选择Project ->New CCS Project创建工程,注意选择工程名、输出类型、工程位置、芯片型号等。
a、输出类型:
可执行( Executable): 构建一个完整的可执行程序;
静态库(Static Library):其他工程所使用的功能集合;
b、选择芯片类型:
选择家族: MSP430;
选择系列:MSP430x6xx Family;
选择型号: MSP430F6638;
c、Project Templates and examples:
可选工程模板,包括标准C和汇编的工程或空工程等;
4.3.3、新建.h或.c文件
a、导入现有的.h或.c文件
将现有的源文件添加到工程,选择Project --> Add Files....
Copy(副本)或Link(创建一个快捷方式)文件;
b、导入现有文件夹
将现有的源文件添加到工程,选择Import…-> General ->File System
建议:文件导入最好采用copy的方式,文件夹导入采用link的方式
4.3.4、导入已有工程:
首先打开CCS并确定工作区,选择Project ->Import Existing CCS/CCE Eclipse Project弹出导入工程对话框。
4.3.5、激活工程:
工程浏览视图中显示了所有打开的工程,但是一个工作区不能被多个运行的CCS实例共享,即在同一时刻,只能有一个CCS实例是处于active状态的。
4.3.6、启动调试器
创建一个工程之后的下一步就是是运行程序的调试器,下面有三种调试工具:
TI官方MSP430专业仿真器:FET430UIF;
Launchpad板载仿真器外接(推荐);
自制板载仿真器;
Build(编译)基本调试
Debug(调试) 程序复位到main
全速运行 芯片复位
设置断点 退出运行
4.3.7、通过USB连接目标板至PC
五、遇到的问题以及解决方法
问题1、设置密码时,无法得到预期的效果
原因:设置六位密码是,由于数字过大,发生整数转换,造成截断。
尝试解决办法:换成了四位密码,避免了上述警告,但是也无法得到期望的结果。
最终解决方法:设置两个数组。其中一个为passwd_set数组,设定密码,另外一个保存键入的密码,然后通过for循环,比较是否两个数组完全相等,相等则电机转。
问题2、最初只能键入一次且只能键入六位密码。
原因:在循环中运用break语句错误,没有正确的跳出它所在的loop。
解决方法:将AC按钮作为清零键,且同时产生一个标签,该标签作为break语句执行的条件语句。
问题3、电机无法自主停止
原因:若电机执行,它并不会转动一段时间而停止
尝试解决办法:调用延时函数,可是只是暂时的解决了这个问题,一定时间后,电机还是会启动。
最终解决方法:电机启动过后,调用一定的延时,然后执行电机不使能语句。
问题4、键入密码错误,之前密码痕迹并没有抹除
尝试解决办法:将数码管自动写入0值,但是也无法解决这个问题。
最终解决办法:将数码管设置0值(不是写入值),然后清楚所有显示。
问题5、输入密码正确时,按AC电机会继续开启,人数计数器加一
原因:比较之后,寄存器没有清零
最终解决办法:将每个数码管自动写入0,表示清零。
六、程序
见附录
1、直流电机(DC motor)的头文件及源程序
2、电机驱动DRV8833头文件及源程序
3、TM1638驱动芯片、KeyBoard和LED Segment的头文件及源程序
4、主程序
基于MSP430单片机的简单门禁系统相关推荐
- 基于STM32单片机的RFID门禁显示系统
基于STM32单片机的RFID门禁显示系统 本设计由STM32F103C8T6单片机最小系统+RFID-RC522模块+继电器模块+蜂鸣器电路+LCD1602液晶显示电路+按键电路+电源电路组成 1. ...
- 一种基于嵌入式的多重识别门禁系统设计方案
一种基于嵌入式的多重识别门禁系统设计方案 1. 前言 门禁系统已广泛的应用在各行各业,随着社会经济的发展,人们对门禁系统的要求越来越高,设计更加安全.更加方便的门禁系统势在必行.由于不同企业对于门禁系 ...
- 基于STM32的多功能门禁系统(AS608指纹识别、密码解锁、刷卡解锁)
目录 一.项目功能 二.视频 三.原理图 4.材料选择 5.部分程序 资料下载地址:基于STM32的多功能门禁系统 一.项目功能 1.AS608指纹解锁:可以录入.删除.验证指纹: 2.密码解锁:可以 ...
- 基于ARM的指纹识别门禁系统设计方案
现代社会高速发展,很多场合需要身份确认,传统的身份识别技术已经不能满足社会要求.人的身体特征具有不可复制性,因此人们开始研究生物识别技术,而指纹具有唯一性.终生不变性.难于伪造等特点,安全性高,因而得 ...
- 基于android的门禁系统代码,基于ESP8266 base on esp8266门禁系统 安卓源码
基于ESP8266门禁系统安卓源码 视频中的小伙伴是我的搭档,负责硬件电路搭建,为了搭电路没少熬夜,挺感谢他的. 这是本人的毕业设计(专科)历时一个月完成.在做毕业设计之前一直在准备转本考试,考完试, ...
- 人脸识别门禁系统:基于Android的人脸识别门禁系统 毕业设计完整代码详细教程
完整代码:https://download.csdn.net/download/qq_38735017/87382371 一.研究目的 传统的门禁系统以钥匙作为验证手段,便捷程度低,丢失钥匙之后会导致 ...
- 基于OpenCV的人脸识别门禁系统
======================================================================== 注:以下只是个玩具.比较成熟的2D人脸识别可以参考 & ...
- 基于STM32F103单片机智能安全门禁人体感应报警方案设计
硬件电路的设计 系统总体结构 本系统具体框图如下图所示: STM32单片机核心电路设计 STM32系列处理器是意法半导体ST公司生产的一种基于ARM 7架构的32位.支持实时仿真和跟踪的微控制器.选择 ...
- 51单片机的RFID门禁系统
一.硬件方案 本RFID系统设计可分为硬件部分和软件部分.硬件部分以MFRC522射频识别模块为核心,结合主控模块STC89C52设计系统的外围硬件电路,实现对射频卡的控制与MCU之间的互通.软件部分 ...
最新文章
- 田志刚:智慧的员工,个人知识管理
- 【Excel】VBA批量修改文件名
- 《Learning.Python》pdf
- PHP中用于精确计算的bcmath扩展
- c语言标准图形库,C语言图形库函数.docx
- 如何使用SAT trace一个正在运行的程序
- 前端学习(2312):react之路由基础
- 想知道你未来宝宝长什么样吗?
- 两个网段怎么设置网关
- 10个前端经常遇到的问题解决方案
- 树莓派输出PWM波驱动舵机
- c语言如何检测磁盘坏扇区,解决方案:如何检测和修复机械硬盘驱动器上的坏扇区?阅读本文后,您将知道...
- 像电影里的黑客高手一样敲代码攻击入侵网站!装逼神器 !
- 程序员学习时间的由来
- 记录--Spyder打开时出现“An error occurred while starting the kernel“
- 高考2021北京录取成绩查询,2021北京地区高考成绩排名查询,北京高考各高中成绩喜报榜单...
- 编写代码的软件用什么编写的_编写出色的代码
- 字符串切片反转字符串_如何反转字符串
- 小程序之统计网页访问人数
- 拆车、炸机、毁魔方,这个疯狂的算法竞赛少年目的是这样的…
热门文章
- C/C++递归算法,计算二叉树中叶子结点的数目
- No core dump will be written. Minidumps are not enabled by default on client versions of Windows错误
- 18个顶级的腾讯qq技巧
- 5.8日, 服务器青龙面板拉ksjsb脚本教程~
- Android SpringAnimation 弹簧动画
- Elasticsearch 分布式架构原理
- 统计素数并求和,C语言
- 将多个txt文本文件合并成一个txt文件
- 电力行业服务器加固系统,系统加固
- Microsoft Visual Studio 2010