




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PIC单片机课设报告PAGE.专业.整理.目录一、目的…………2二、描述和要求……………………2三、硬件选择………2四、硬件电路图……………………5五、程序设计………5六、总结…………7七、参考书目………8附录:程序代码……………………9PIC单片机课设报告全文共15页,当前为第1页。PIC单片机课设报告全文共15页,当前为第1页。一、目的随着社会物质财富的日益增长和人们生活水平的提高,安全成为现代居民最关心的问题之一。而创自古以来就是把守门户的铁将军,人们对它要求甚高。即要安全可靠地防盗,又要使用方便,这也是制锁者长期以来研制的主题。传统的门既要备有大量的钥匙。又要担心钥匙丢失后的麻烦。另外,如:宾馆、办公大楼、仓库、保险柜等由于人员的变动,开锁的钥匙也不再是只有一人拥有。购得新居的家庭。由于装修施工等人住时也要把原有的锁胆更换,况且钥匙随身携带也诸多不便。随着单片机的问世,出现了带微处理器的电子密码锁,它的出现解决了传统锁的许多缺点,使密码锁具有很高的安全性、可靠性。目前已经大量地应用于日常生活之中。希望通过本课设完成具有一定实用性的电子密码锁,从而培养对单片机学习的兴趣,巩固PIC单片机的知识容,提高实践动手能力。二、描述和要求1、密码正确则电机转动。2、密码错误则需重新输入,若连续三次输入错误则报警声响起,键盘被锁。3、按错键时可按“删除”键删除输入键值。4、按下一个键时响一声,说明按键按下。三、硬件选择1、单片机PIC16F887本系统设计的核心控制芯片为PIC16F887。它是一款采用纳瓦技术的40引脚8位CMOS增强型闪存单片机。PIC16F887具有8K字程序存储器,368字节用户可用数据存储器和256字节EEPROM。具有36个I/0口,14个A/D通道,1个CCP,1个增强型CCP,1个增强型通用同步/异步收发器,1个主控同步串行端口,2个比较器,2个8位计数器/定时器,1个16位计数器/定时器。PIC单片机课设报告全文共15页,当前为第2页。PIC16F887引脚图如下:PIC单片机课设报告全文共15页,当前为第2页。本系统用到的引脚主要有:引脚1:RE3/MCLR/Vpp,系统复位端。接操作按键K1。引脚11、32:Vdd,系统电源端。引脚12、31:Vss,系统接地端。引脚13、14:RA7/OSC1/CLKIN、RA6/OSC2/CLKOUT,接4MHz的晶振,为系统的时钟源。引脚33:RB0/AN12/INT,为外部中断输入端。接操作按键K2。引脚34:RB1/AN10/C12IN3,设为输入口,接操作按键K3。引脚35:RB2/AN8,设为输入口,接操作按键K4。引脚19~23:RD0~RD3,设为输出口,接LCD1602的数据输入端高四位。引脚27:RD4,设为输出口,接LCD1602的RS数据/命令选择端。引脚28:RD5/P1B,设为输出口,接LCD1602的RW读写选择端。引脚29:RD6/P1C,设为输出口,接LCD1602的E使能端。引脚16:RC1/T1OSI/CCP2,设为输出口,接微型直流电机。引脚17:RC2/P1A/CCP1,设为输出口,接蜂鸣器。PIC单片机课设报告全文共15页,当前为第3页。点阵型LCDYB1602APIC单片机课设报告全文共15页,当前为第3页。采用4位数据线接线方式,是为节省单片机的I/O口用到的引脚有:引脚1:GND,接地引脚2;VCCB,电源正极引脚3:VO,液晶显示偏压信号口引脚4:RS,命令/数据选择,接单片机RD4口引脚5:R/W,读/写选择,接单片机RD5口引脚6:E,数据使能,接单片机RD6口引脚11~14:DB4~DB7,数据输入口,接单片机RD0~RD3口3、4x4按键PIC单片机课设报告全文共15页,当前为第4页。 4行(RB0~RB3)作为输入状态,低4位有弱上拉使能并允许电平变化中断PIC单片机课设报告全文共15页,当前为第4页。 4列(RB4~RB7)作为输入状态,输出低电平4、微型直流电机(5V供电)5、蜂鸣器四、硬件电路图五、程序设计1.模块介绍该电子密码锁系统的软件设计分为以下几个模块:(1)主程序模块主程序主要完成初始化、设置中断向量、检查有无按键按下、以及调用显示等等。主程序的流程图如下所示。(2)键盘扫描及识别子程序键盘采用查询的方式,放在主程序中,当没有按键按下的时候,单片机循环主程序,一旦有按键按下,便转向相应的子程序处理,处理结束再返回。(3)显示子程序由于是分屏显示数据,所以就要用到4个显示子程序,分别是:LCD初始化设定voidlcdcsh(void);PIC单片机课设报告全文共15页,当前为第5页。写入指令数据到LCDvoidxie_ml(unsignedcharml);PIC单片机课设报告全文共15页,当前为第5页。写入字符显示数据到LCDvoidxie_sj(unsignedcharsj);写入字符串到LCDvoidxie_zfc(unsignedchar*pp,unsignedintn);LCD字符清除子程序voidqingchu(void)/;(4)密码比较子程序输入密码与正确密码的比较intbijiao(void);(5)声响子程序通过改变蜂鸣器接口电平高低发声,包括2个声响子程序警报声voidjingbao(void);按键声voidanjiansheng(void);(6)延时子程序通过软件程序进行延时voiddelay(unsignedint);2、程序流程图:PIC单片机课设报告全文共15页,当前为第6页。开始PIC单片机课设报告全文共15页,当前为第6页。开始初始化按键扫描有键按下?防抖动延时识别按键按下“E”键则确认电机转动按下“C”键则清除比较密码再次提示输入密码警报响起键盘锁定3次输入错误密码错误正确YN3、程序代码:详见附录六、总结1、LCDYB1602A的编程,主要要点为:(1)数据使能端E的控制,高电平变为低电平时写入;(2)4位数据线的写入方式,要分别将高4位和低4位写入;(3)体现删除效果时,可在原数据位写入“空格”。2、键盘扫描及识别子程序的编程,主要要点为:(1)将RB低4位设置为输入状态,注意弱上拉和电平变化中断设置。(2)将RB高4位设置为输出状态,通过判断按下键时的PORTB值判断键值(3)要有防抖动措施,防止按键错误。3、其他程序要点:(1)注意switch语句的运用,包括break别漏。(2)标志位的设置有助于程序的判断。(3)字符串的运用中用for语句进行各位的比较和写入。(4)延时子程序的多处运用,如防抖、显示等。经过将近三周的PIC单片机课程设计,终于完成了我的电子密码锁的设计,虽然功能不算强大,譬如说无法从硬件上修改密码,电路的密码不能遗忘,一旦遗忘,就很难打开,这可以通过增加电路解决,但过于复杂,本次设计未其中;虽然如此但从心底里说,还是高兴的,毕竟这次设计把实物都做了出来。通过这三周的学习,我感觉有很大的收获:首先,通过学习使自己对课本上的知识可以应用于实际,使的理论与实际相结合,加深自己对课本知识的更好理解,同时实习也段练了我个人的动手能力:能够充分利用网络去查阅资料,增加了许多课本以外的知识。能对proteus、和mplab-ide等软件操作,能达到学以致用。对我们学生来说,理论与实际同样重要,这是我们以后在工作中说明自己能力的一个重要标准。在课设实践过程中,我感受到了老师对学生的负责态度,无论是在课堂还是在网咯上老师都来给我们指导,使我们少走弯路,顺利完成课设任务,感谢你们,老师!PIC单片机课设报告全文共15页,当前为第7页。PIC单片机课设报告全文共15页,当前为第7页。七、参考书目[1]荣正、启中、学军,PIC单片机原理及应用,北京航空航天大学,2006年10月[2]江和、鲍光海,PIC单片机课程设计指导书,2010年6月[3谭浩强.C程序设计(第二版),清华大学,1999[4]MicrochipTechnologyInc.PIC16F87XADataSheet.DS39582B,2003[5]太阳人电子.LCD1602使用说明书PIC单片机课设报告全文共15页,当前为第8页。附录:程序代码PIC单片机课设报告全文共15页,当前为第8页。#include<pic.h>__CONFIG(0x20f1);#defineRSRD4#defineRWRD5#defineERD6#defineLCDPORTDvoidlcdcsh(void);voidxie_sj(unsignedcharsj);voidxie_ml(unsignedcharml);voidxie_zfc(unsignedchar*pp,unsignedintn);voiddelay(unsignedint);voidanjian(void);voidqingchu(void);voidjingbao(void);voidanjiansheng(void);intbijiao(void);unsignedchark,j=0,errorflag=0;unsignedcharstr1[]="password:",str2[]="lock",password[]="123456",pw[6];voidmain(void){ TRISB=0x0F;//B口高4位设置为输出,低4位设置为输入TRISC=0x00;//C口设置为输出TRISD=0X00;//C口设置为输出PORTB=0X0F;//B口高4位设置为低电平,低4位设置为高电平PORTC=0x00;//C口设置为低电平WPUB=0x0F;//B口低4位设置为使能弱上拉IOCB=0x0F;//B口低4位设置为允许电平变化中断ANSEL=0X00;//数字I/O设置ANSELH=0X00;OPTION=0X00;//选项寄存器设置xie_zfc(str1,9);//LCD写入"password:"while(1){while(PORTB==0x0f)//等待键按下 { while(RBIF==0); delay(2); RBIF=0;//RB中断标志位清零PIC单片机课设报告全文共15页,当前为第9页。 delay(2);PIC单片机课设报告全文共15页,当前为第9页。 } anjiansheng();//按下一个键响一声anjian();//判断哪个键按下switch(k){ case'C':{qingchu();j--;}break;//清除LCD前一个字符 case'E': {if(bijiao()==0)//如果密码比较错误 {errorflag++;//密码错误标志位加1 if(errorflag==3)//当密码输入错误三次 { xie_zfc(str2,4);//LCE写入“lock” jingbao();//警报声响起 TRISB=0X00;//B口设置为输出,键盘被锁 } else//当密码输入错误不足三次,允许再次输入 { xie_zfc(str1,9);//LCD写入"password:" j=0; } } else//如果密码比较正确 {PORTC=0x02;//RC2口输出高电平,电机转动 errorflag=0;//密码错误标志位清0 } };break; default: { pw[j]=k;//按键值依次输入字符串PW中 j++; xie_sj('*');//每按一个键,LCE写入一个“*” }}}}voidxie_ml(unsignedcharml)//写入指令数据到LCD{ RW=0;//选择写入E=1;//数据使能:下降沿送入有效RS=0;//选择命令delay(1);PIC单片机课设报告全文共15页,当前为第10页。LCD=ml;//命令送入D口PIC单片机课设报告全文共15页,当前为第10页。delay(1);E=0;//数据使能:写入命令}voidqingchu(void)//清除命令{xie_ml(0x00);//写入命令:完成一个字符码传送后,光标左移,AC自动减1xie_ml(0x04);delay(2);xie_sj('');//在光标目前所在的位置写入空格delay(2);xie_sj('');//在需删除的字符位写入空格xie_ml(0x01);//写入命令:没有读写显示数据的情况下光标右移,AC自动加1xie_ml(0x04);xie_ml(0x00);//写入命令:完成一个字符码传送后,光标左右移,AC自动加1xie_ml(0x06);}voidxie_sj(unsignedcharsj)//写入字符显示数据到LCD{ charsj_h,sj_l;sj_h=(sj&0xf0)>>4;//获得数据高4位写入sj_h低4位sj_l=sj&0x0f;//获得数据低4位写入sj_l低4位E=1;NOP();//数据使能:下降沿送入有效RW=0;NOP();//选择写入RS=1;NOP();//选择数据delay(1);LCD&=0xf0;//B口低4位清0,高4位保留LCD|=sj_h;//B口低4位为sj_h低4位值,高4位值不变E=0;//数据使能:写入命令delay(1);E=1;//数据使能:下降沿送入有效LCD&=0xf0;//B口低4位清0,高4位保留LCD|=sj_l;//B口低4位为sj_l低4位值,高4位值不变delay(1);E=0;//数据使能:写入命令}voidlcdcsh(void)//LCD初始化设定{ PIC单片机课设报告全文共15页,当前为第11页。chari;PIC单片机课设报告全文共15页,当前为第11页。 delay(50); for(i=0;i<3;i++)//写控制命令“0b0011”3次 { xie_ml(0x03); delay(10); } xie_ml(0x02);//写数据格式命令“0b0010” delay(5); xie_ml(0x02);//写功能设置命令“0b00101000”,4位数据格式,2行,5*7点阵 xie_ml(0x08); xie_ml(0x00);//写显示控制命令“0b00001111”,打开显示,光标闪烁 xie_ml(0x0f); xie_ml(0x00);//写清除命令“0b00000001” xie_ml(0x01); delay(10); xie_ml(0x00);//写模式命令“0b00000110”,每显示一个字符后地址自动加1 xie_ml(0x06);}voidxie_zfc(unsignedchar*pp,unsignedintn) //写入字符串{inti;lcdcsh();//LCD初始化xie_ml(0x08);//光标移至LCD第一行第一位xie_ml(0x00);for(i=0;i<n;i++)//逐个写入字符串 xie_sj(pp[i]);xie_ml(0x0C);//光标移至LCD第二行第一位xie_ml(0x00);}voidanjian(void)//判断按键值{unsignedinty;y=PORTB;switch(y) {case(0x0e):{//如果B口值为0x0e,即RB0==0第一行按下PIC单片机课设报告全文共15页,当前为第12页。 TRISB=0xF0;//B口高4位设置为输入,低4位设置为输出PIC单片机课设报告全文共15页,当前为第12页。 PORTB=0XF0;//B口高4位设置为高电平,低4位设置为低电平 WPUB=0xF0;//B口高4位设置为使能弱上拉 IOCB=0xF0;//B口高4位设置为允许电平变化中断 if(RB4==0)k='0';//如果RB4口为低电平,则‘0’键按下 if(RB5==0)k='1'; if(RB6==0)k='2'; if(RB7==0)k='3'; } break; case(0x0d): { TRISB=0xF0; PORTB=0XF0; WPUB=0xF0; IOCB=0xF0; if(RB4==0)k='4'; if(RB5==0)k='5'; if(RB6==0)k='6'; if(RB7==0)k='7'; } break; case(0x0b): { TRISB=0xF0; PORTB=0XF0; WPUB=0xF0; IOCB=0xF0; if(RB4==0)k='8'; if(RB5==0)k='9'; if(RB6==0)k='A'; if(RB7==0)k='B'; } break; case(0x07):{ TR
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年电子合同法律适用与实践探讨
- 2025桥梁建设施工合同
- 2025建筑施工机械租赁合同模板
- 2025写字间租赁合同样本
- 2025个体健身房器材特许经营合同
- 2025商业大厦与装修公司合作的合同
- 2025临时建筑买卖合同模板
- 《2025机械设备租赁合同》
- 实习劳动合同方协议
- 风险代理合同范本
- 幼儿园环境卫生检查通报制度
- 普惠托育服务体系建设方案
- 2025年新高考历史预测模拟试卷浙江卷(含答案解析)
- 【初中地理】七年级地理下册全册期末总复习(课件)-2024-2025学年七年级地理课件(人教版2024年)
- 1.第3届中国播音主持“金声奖”优广播电视播音员主持人推表
- 2025年管道工(高级)职业技能鉴定参考试题(附答案)
- 成品油柴油汽油运输合同5篇
- 2025年无锡南洋职业技术学院单招职业技能测试题库含答案
- 2025年东北三省三校高三一模高考英语试卷试题(含答案详解)
- T-HHES 010-2024 生产建设项目水土流失危害评估编制导则
- 《DVT深静脉血栓》
评论
0/150
提交评论