版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用课程设计单片机课程设计设计课题: 动态密码的实时发送 专业班级: 电子信息工程12级 小组组号: 第六组 小组成员: 指导老师: 刘恩博老师 设计时间: 2015年6月29日 信息科学与技术学院3目 录一、单片机课程设计任务书 11、课程设计题目:动态密码的实时发送12、总体要求:13、课程设计具体要求:1二、单片机课程设计报告21、设计项目简介22、电路原理图23、系统功能描述24、程序流程图35、心得体会46、参考文献4附件一:仿真调试4附件二:程序6甲机程序:6乙机程序:11一、单片机课程设计任务书1、课程设计题目:动态密码的实时发送2、总体要求:1、实现双机(单片机)的
2、通信,甲机每隔60S发送一组随机密码,用随机函数实现,每组密码有6位数字组成;2、乙机接收到密码后,在LCD液晶屏上实时显示接收到的密码3、在乙机的LCD液晶屏上第1行显示接收的密码第二行显示倒计时标志(60S)3、课程设计具体要求:选定好设计项目后,课程设计应达到以下要求编写项目功能说明书,确定应用系统的功能和具体参数设计电路原理图制作硬件设计和调试程序课程设计报告二、单片机课程设计报告1、设计项目简介随着现代生活的推进,动态密码在人们的生活中已经普及,此动态密码的实时发送是一款基于单片机AT98C51(2)的计时工具,它的工作原理是利用程序使甲机每60ms发送一组随机密码,用随机函数实现,
3、每组密码有6位数字组成;乙机接收到密码后,在LCD液晶屏上实时显示接收到的密码,在LCD液晶屏上设置接收密码的倒计时(60S)标志2、电路原理图 图一:电路原理图3、系统功能描述按下开始键以后,甲机发送开始信号B给乙机,乙机接受到信号并开始显示60S倒计时,倒计时结束后乙机发送倒计时结束信号C给甲机,甲机开始产生密码并发送密码给乙机,乙机等待接受密码并在1602上显示。4、程序流程图甲机:初始化初始化 读串口读键盘乙机开始键?N接收到BN发送B-乙Y倒计时60S读串口N接收到C发送信号CY接受密码产生随机密码显示密码发送密码5、心得体会单片机是我所学专业的主要课程之一,因此我认为单片机课程设计
4、是十分必要而且十分重要的。尽管刚刚拿到课程设计题目时有点迷惘,不知道如何着手,但通过上网和图书馆查阅相关资料,自己认真钻研以及虚心询问同学,终于解决了一个又一个的困难和障碍,成功完成了任务。通过本次的单片机课程设计,不仅大大地丰富了我的理论知识,而且在实践过程中更令我学会了坚持、耐心和努力。此次单片机课程设计需要运用到许多之前所学过的知识,令我认识到自己以前学习的一些不足之处,例如对以前所学知识的理解不够深刻,掌握得不够牢固,运用不够灵活。这让我懂得了认真学习的重要性,以及要孜孜不倦地钻研所学过的知识,做得融会贯通,不能一览而过,不求甚解。在边学习边动手的过程中,我对电子时钟的构造以及原理有了
5、进一步的了解,同时也加深和巩固了我对单片机汇编语言的认识。除此之外,由于是第一次做单片机,因此在此次课程设计的过程中,无论是电路绘制还是汇编语言编写都难免遇到了不少困难和障碍,例如汇编语言编写出错、电路元件无从入手等。在面对困难和障碍时,我庆幸自己没有退缩和逃避,而是通过各种方法,迎难而上,以坚持、耐心和努力勇敢无畏地面对困难,克服困难,解决困难。让我发现问题、分析问题、解决问题以及动手实践的能力都有了很大的提高,并了解到理论知识与实践相结合的重要意义。从这次的课程设计中,我们真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经
6、常的练习的过程中才能提高。本次课程设计尽管时间不长,但从中所获,将令我受益终生。6、参考文献1张毅刚.单片机原理及应用. 北京:高等教育出版社 ,2013: 12-1,31附件一:仿真调试附件二:程序甲机程序:#include #define uchar unsigned char#define uint unsigned intsbit scl = P21;/ 定义了AT24C02的sda脚sbit sda = P20;/ 定义了AT24C02的scl脚/*/ 用于简短的延时/*/void DelayShort() ; ; /*/ 毫秒级的延时函数,time是要延时的毫秒数/*/void D
7、elayMs(uint time)uint i,j;for(i=time;i1;i-)for(j=111;j1;j-);/*/ IIC总线初始化/*/void IIcInit()scl=1; DelayShort(); sda=1; DelayShort();/*/ IIC起始函数/*/void IIcStart()sda=1; DelayShort(); scl=1; DelayShort(); sda=0; DelayShort(); scl=0; DelayShort();/*/ IIC终止函数/*/void IIcStop()sda=0; DelayShort(); scl=1; De
8、layShort(); sda=1; DelayShort();/*/ IIC写一个字节/*/void IIcWriteByte(uchar dat) uchar i,temp;temp=dat;for(i=0;i8;i+)temp=temp1; scl=0; DelayShort(); sda=CY; DelayShort(); scl=1; DelayShort();scl=0; DelayShort(); sda=1; DelayShort();/*/ IIC读一个字节/*/uchar IIcReadByte()uchar i,temp,dat=0;scl=0; DelayShort()
9、; sda=1;DelayShort();for (i=0;i8;i+) scl=1; DelayShort();temp=sda;dat=(dat1)|temp; scl=0; DelayShort(); return(dat);/*/ IIC总线响应/*/void IIcRespons()uchar i=0;scl=1;DelayShort();/ 如果sda收到低电平,或者i自加255个数后还没收到低电平,都认为收到了while(sda=1)&(i=0;i-) IIcWriteDat(0,TH0);/ 每隔1秒,保存一次定时器0的值到芯片AT24C02IIcWriteDat(1,TL0)
10、;UartSendByte(i); / 每隔1秒,发送剩余的秒数给乙机 DelayMs(1000);SendBuf0=(TH0+TL0)%10+0x30; / 随机密码的第1位为TH0+TL0的个位temp=TH0*TL0;SendBuf1=temp/10000+0x30;/ 随机密码的第2位为TH0*TH0的万位SendBuf2=temp%10000/1000+0x30;/ 随机密码的第3位为TH0*TH0的千位SendBuf3=temp%1000/100+0x30;/ 随机密码的第4位为TH0*TH0的百位SendBuf4=temp%100/10+0x30;/ 随机密码的第5位为TH0*T
11、H0的十位SendBuf5=temp%10+0x30;/ 随机密码的第6位为TH0*TH0的个位UartSendByte(0xEF);/ 发送每一组密码前,先发送0xEFfor(j=0;j6;j+)/ 将6位密码依次发送出去UartSendByte(SendBufj);/*/ 串口中断服务程序/*/void UartInt0(void) interrupt 4if(RI=1)RI=0;乙机程序:#include #define uchar unsigned char#define uint unsigned intsbit LcdRS=P13;/ 1602液晶的RS控制脚sbit LcdRW=
12、P14;/ 1602液晶的RW控制脚sbit LcdEN=P15;/ 1602液晶的EN控制脚/*/ 毫秒级的延时函数,time是要延时的毫秒数/*/void DelayMs(uint time)uint i,j;for(i=time;i1;i-)for(j=111;j1;j-);/*/ 串口初始化/*/void TimerInit()TMOD = 0x20;SCON = 0x50;TH1 = 0xfd;TL1 = 0xfd;TR1 = 1;REN = 1;EA = 1;ES = 1;/*/ 1602液晶写命令函数,com就是要写入的命令/*/void WriteCom(uchar com)P
13、0=com;LcdRS = 0; LcdRW = 0;LcdEN = 0;DelayMs(1);LcdEN = 1;DelayMs(1);LcdEN = 0;/*/ 1602液晶写数据函数,dat就是要写入的命令/*/void WriteData(uchar dat)P0=dat;LcdRS = 1; LcdRW = 0;LcdEN = 0;DelayMs(1);LcdEN = 1;DelayMs(1);LcdEN = 0;/*/ 1602液晶初始化函数/*/void LcdInit() LcdRW = 0;WriteCom(0x38);WriteCom(0x0c);WriteCom(0x06
14、);/*/ 液晶光标定位函数/*/void LcdGotoXY(uchar line,uchar column) if(line=1) / 第一行 WriteCom(0x80+column-1); if(line=2) / 第二行 WriteCom(0xC0+column-1); /*/ 液晶输出字符串函数/*/void LcdPrintStr(uchar *str) while(*str!=0) WriteData(*str+);/*/ 主函数/*/void main(void)TimerInit();/ 定时器初始化LcdInit();/ 液晶初始化LcdGotoXY(1,1);LcdPrintStr( Code: );LcdGotoXY(2,1);LcdPrintStr( Count: s );while(1);/*/ 串口中断服务程序/*/void Uar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度车库租赁及智能停车设备安装合同3篇
- 二零二五年度雏鸡养殖场与动物疫病防控中心合作合同4篇
- 科技赋能下的宠物医疗行业发展前景
- 科技创新助力创新药物研发的市场突破
- 二零二五年度车间承包与新能源应用合作协议4篇
- 二零二五年度GPS技术在智能穿戴设备中的应用合同3篇
- 网络时代下家庭教育的新视角-家庭网络安全教育的重要性及实践路径
- 教育、医疗、办公多领域下的农业科技发展探讨
- 二零二五年度橱柜行业展会参展与采购合同4篇
- 二零二五年度文化产业发展艺人合作合同2篇
- 肩袖损伤护理查房
- 迅雷网盘最最最全影视资源-持续更新7.26
- 设备运维管理安全规范标准
- 办文办会办事实务课件
- 大学宿舍人际关系
- 2023光明小升初(语文)试卷
- GB/T 14600-2009电子工业用气体氧化亚氮
- GB/T 13234-2018用能单位节能量计算方法
- 申请使用物业专项维修资金征求业主意见表
- 房屋买卖合同简单范本 房屋买卖合同简易范本
- 无抽搐电休克治疗规范
评论
0/150
提交评论