目录摘 要 IAbstract II目录 III第一章 绪 论 - 1 课题的背景 - 1 课题意义 - 2 本章小结 - 3 -第二章 总体设计方案与论证 - 4 电源模块方案的选择与论证 - 4 时钟电路方案的选择与论证 - 4 显示电路方案的选择与论证 - 5 闹钟电路方案的选择与论证 - 5 键扫描电路方案的选择与论证 - 6 本章小结 - 6 -第三章 系统硬件设计 - 7 主控芯片STC89C52的介绍 - 7 STC89C52的主要性能参数 - 7 STC89C52单片机的功能特性概述: - 8 时钟部分功能介绍及电路设计 - 11 显示模块功能介绍及电路设计 - 14 闹钟电路模块介绍及电路设计 - 16 功能按键模块介绍及电路设计 - 17 电源模块介绍及电路设计 - 17 本章小结 - 18 -第四章 系统软件设计 - 19 日历程序设计 - 19 时间调整程序设计 - 20 闹钟设置程序设计 - 22 闹钟蜂鸣程序设计 - 23 本章小结 - 23 -第五章 系统调试 - 24 系统的调试 - 24 系统的调试出现的问题及解决 - 24 本章小结 - 24 -第六章 结 论 - 25 -参考文献 - 26 -致 谢 - 27 -附录 - 28 -附录一 :本设计电路原理图 - 28 -附录二:数字日历钟电路设计的C程序 - 29 -
这是一个仿真实例,可以参考一下试试。
江苏省联合职业技术学院常州旅游商贸分院专科毕业论文 基于51单片机及DS18B20温度传感器的数字温度计设计 姓 名:(××××××××3号黑体)学 号:(××××××××3号黑体)班 级:(联院班级号×××3号黑体)专 业:(××××××××3号黑体)指导教师:(××××××××3号黑体)系 部:创意信息系××××3号黑体)二〇二0年××月××日摘 要本设计采用的主控芯片是ATMEL公司的AT89S52单片机,数字温度传感器是DALLAS公司的DS18B20。本设计用数字传感器DS18B20测量温度,测量精度高,传感器体积小,使用方便。所以本次设计的数字温度计在工业、农业、日常生活中都有广泛的应用。单片机技术已经广泛应用社会生活的各个领域,已经成为一种非常实用的技术。51单片机是最常用的一种单片机,而且在高校中都以51单片机教材为蓝本,这使得51单片机成为初学单片机技术人员的首选。本次设计采用的AT89S52是一种flash型单片机,可以直接在线编程,向单片机中写程序变得更加容易。本次设计的数字温度计采用的是DS18B20数字温度传感器,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。本设计根据设计要求,首先设计了硬件电路,然后绘制软件流程图及编写程序。本设计属于一种多功能温度计,温度测量范围是-55℃到125℃。温度值的分辨率可以被用户设定为9-12位,可以设置上下限报警温度,当温度不在设定的范围内时,就会启动报警程序报警。本设计的显示模块是用四位一体的数码管动态扫描显示实现的。在显示实时测量温度的模式下还可以通过查询按键查看设定的上下限报警温度。 关键词:单片机、数字温度计、DS18B20、AT89S52目 录 1 引言 12 系统总体方案及硬件设计 系统总体方案 系统总体设计框图 各模块简介 系统硬件设计 单片机电路设计 DS18B20温度传感器电路设计 显示电路设计 按键电路设计 报警电路设计 83 软件设计 DS18B20程序设计 DS18B20传感器操作流程 DS18B20传感器的指令表 DS18B20传感器的初始化时序 DS18B20传感器的读写时序 DS18B20获取温度程序流程图 显示程序设计 按键程序设计 134实物制作及调试 145电子综合设计体会 15参考文献 161 引言本系统所设计的数字温度计采用的是DS18B20数字温度传感器测温,DS18B20直接输出的就是数字信号,与传统的温度计相比,具有读数方便,测温范围广,测温准确,上下限报警功能。其输出温度采用LED数码管显示,主要用于对测温比较准确的场所。该设计控制器使用的是51单片机AT89S52,AT89S52单片机在工控、测量、仪器仪表中应用还是比较广泛的。测温传感器使用的是DS18B20,DS18B20是一种可组网的高精度数字式温度传感器,由于其具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠。显示是用4位共阴极LED数码管实现温度显示,LED数码管的优点是显示数字比较大,查看方便。蜂鸣器用来实现当测量温度超过设定的上下限时的报警功能。2 系统总体方案及硬件设计 系统总体方案系统总体设计框图由于DS18B20数字温度传感器具有单总线的独特优点,可以使用户轻松地组建起传感器网络,并可使多点温度测量电路变得简单、可靠,所以在该设计中采用DS18B20数字温度传感器测量温度。 温度计电路设计总体设计框图如图2-1所示,控制器采用单片机AT89S52,温度传感器采用DS18B20,显示采用4位LED数码管,报警采用蜂鸣器、LED灯实现,键盘用来设定报警上下限温度。 图2-1 温度计电路总体设计框图各模块简介1.控制模块AT89S52单片机是美国ATMEL公司生产的低功耗,高性能CMOS 8位单片机,片内含有8kb的可系统编程的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准8051指令系统及引脚。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程的Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。2.显示模块显示电路采用4位共阴LED数码管,从P0口输出段码,P2口的高四位为位选端。用动态扫描的方式进行显示,这样能有效节省I/O口。3.温度传感器模块DS18B20温度传感器是美国DALLAS半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现9~12位的数字值读数方式。DS18B20的性能特点如下:独特的单线接口仅需要一个端口引脚进行通信;多个DS18B20可以并联在惟一的三线上,实现多点组网功能;无须外部器件;可通过数据线供电,电压范围为~;零待机功耗;温度以9或12位二进制数字表示;用户可定义报警设置;报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作;DS18B20采用3脚TO-92封装或8脚SO或µSOP封装,其其封装形式如图2-2所示。图2-2 DS18B20的封装形式DS18B20的64位ROM的结构开始8位是产品类型的编号,接着是每个器件的惟一的序号,共有48位,最后8位是前面56位的CRC检验码,这也是多个DS18B20可以采用一线进行通信的原因。温度报警触发器TH和TL,可通过软件写入户报警上下限。DS18B20温度传感器的内部存储器还包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM。高速暂存RAM的结构为8字节的存储器,结构如图2-3所示。图2-3 DS18B20的高速暂存RAM的结构头2个字节包含测得的温度信息,第3和第4字节TH和TL的拷贝是易失的,每次上电复位时被刷新。第5个字节,为配置寄存器,它的内容用于确定温度值的数字转换分辨率,DS18B20工作时寄存器中的分辨率转换为相应精度的温度数值,该字节各位的定义如表2-1所示。表2-1:配置寄存器D7 D6 D5 D4 D3 D2 D1 D0TM R1 R0 1 1 1 1 1配置寄存器的低5位一直为1,TM是工作模式位,用于设置DS18B20在工作模式还是在测试模式,DS18B20出厂时该位被设置为0,用户要去改动,R1和R0决定温度转换的精度位数,来设置分辨率,“R1R0”为“00”是9位,“01”是10位,“10”是11位,“11”是12位。当DS18B20分辨率越高时,所需要的温度数据转换时间越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存RAM的第6、7、8字节保留未用,表现为全逻辑1。第9字节读出前面所有8字节的CRC码,可用来检验数据,从而保证通信数据的正确性。当DS18B20接收到温度转换命令后,开始启动转换。转换完成后的温度值就以16位带符号扩展的二进制补码形式存储在高速暂存存储器的第1、2字节。单片机可以通过单线接口读出该数据,读数据时低位在先,高位在后,数据格式以℃/LSB形式表示。当符号位s=0时,表示测得的温度值为正值,可以直接将二进制位转换为十进制;当符号位s=1时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制数值。输出的二进制数的高5位是符号位,最后4位是温度小数点位,中间7位是温度整数位。表2-2是一部分温度值对应的二进制温度数据。表2-2 DS18B20输出的温度值温度值 二进制输出 十六进制输出+125℃ 0000 07D0h+85℃ 0000 0550h+℃ 0001 0191h+℃ 0010 00A2h+℃ 1000 0008h0℃ 0000 ℃ 1000 ℃ 1110 ℃ 1111 FF6Fh-55℃ 0000 FC90hDS18B20完成温度转换后,就把测得的温度值与RAM中的TH、TL字节内容作比较。若T>TH或T<TL,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只DS18B20同时测量温度并进行报警搜索。在64位ROM的最高有效字节中存储有循环冗余检验码(CRC)。主机ROM的前56位来计算CRC值,并和存入DS18B20的CRC值作比较,以判断主机收到的ROM数据是否正确。4.调节模块介绍调节模块是由四个按键接地后直接接单片机的I/O口完成的。当按键没有按下时单片机管脚相当于悬空,默认下为高电平,当按键按下时相当于把单片机的管脚直接接地,此时为低电平。程序设计为低电平触发。5.报警模块介绍报警模块是由一个PNP型的三极管9012驱动的5V蜂鸣器,和一个加一限流电阻的发光二极管组成的。报警时蜂鸣器间歇性报警,发光二极管闪烁。 系统硬件设计 单片机电路设计 图2-4 单片机最小系统原理图单片机最小系统是由晶振电路,上电复位、按键复位电路,ISP下载接口和电源指示灯组成。原理图如图2-4所示。 DS18B20温度传感器电路设计DS18B20温度传感器是单总线器件与单片机的接口电路采用电源供电方。电源供电方式如图2-7,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。 图2-7 DS18B20电源供电方式当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。 显示电路设计显示电路是由四位一体的共阴数码管进行显示的,数码管由三极管9013驱动。四位一体的共阴数码管的管脚分布图如图2-5所示。 图2-5 四位一体的共阴数码管管脚分布图显示电路的总体设计如图2-6所示。 图2-6 显示电路 按键电路设计按键电路是用来实现调节设定报警温度的上下限和查看上下报警温度的功能。电路原理图如图2-10所示。 图2-10 按键电路原理图 报警电路设计报警电路是在测量温度大于上限或小于下限时提供报警功能的电路。该电路是由一个蜂鸣器和一个红色的发光二极管组成,具体的电路如图2-9所示。 图2-9 报警电路原理图3 软件设计 DS18B20程序设计 DS18B20传感器操作流程根据DS18B20的通讯协议,主机(单片机)控制DS18B20完成温度转换必须经过三个步骤:• 每一次读写之前都要对DS18B20进行复位操作• 复位成功后发送一条ROM指令• 最后发送RAM指令这样才能对DS18B20进行预定的操作。复位要求主CPU将数据线下拉500μs,然后释放,当DS18B20收到信号后等待16~60μs左右,后发出60~240μs的存在低脉冲,主CPU收到此信号表示复位成功。DS18B20的操作流程如图3-1所示。 如图3-1 DS18B20的操作流程 DS18B20传感器的指令表DS18B20传感器的操作指令如表3-1所示。传感器复位后向传感器写相应的命令才能实现相应的功能。表3-1 DS18B20的指令表指 令 指令代码 功 能读ROM 0x33 读DS1820温度传感器ROM中的编码(即64位地址)符合 ROM 0x55 发出此命令之后,接着发出 64 位 ROM 编码,访问单总线上与该编码相对应的 DS1820 使之作出响应,为下一步对该 DS1820 的读写作准备。搜索 ROM 0xF0 用于确定挂接在同一总线上 DS1820 的个数和识别 64 位 ROM 地址。为操作各器件作好准备。跳过 ROM 0xCC 忽略 64 位 ROM 地址,直接向 DS1820 发温度变换命令。适用于单片工作。告警搜索命令 0xEC 执行后只有温度超过设定值上限或下限的片子才做出响应。温度变换 0x44 启动DS1820进行温度转换,12位转换时最长为750ms(9位为)。结果存入内部9字节RAM中。读暂存器 0xBE 读内部RAM中9字节的内容写暂存器 0x4E 发出向内部RAM的3、4字节写上、下限温度数据命令,紧跟该命令之后,是传送两字节的数据。复制暂存器 0x48 将RAM中第3 、4字节的内容复制到EEPROM中。重调 EEPROM 0xB8 将EEPROM中内容恢复到RAM中的第3 、4字节。读供电方式 0xB4 读DS1820的供电模式。寄生供电时DS1820发送“ 0 ”,外接电源供电 DS1820发送“ 1 ”。 DS18B20传感器的初始化时序DS18B20传感器为单总线结构器件,在读写操作之前,传感器芯片应先进性复位操作也就是初始化操作。DS18B20的初始化时序如图3-2所示。首先控制器拉高数据总线,接着控制器给数据总线一低电平,延时480μs,控制器拉高数据总线,等待传感器给数据线一个60-240μs的低电平,接着上拉电阻将数据线拉高,这样才初始化完成。 图3-2 DS18B20初始化时序 DS18B20传感器的读写时序 1.写时序DS18B20传感器的读写操作是在传感器初始化后进行的。每次操作只能读写一位。当主机把数据线从高电平拉至低电平,产生写时序。有两种类型的写时序:写“0”时序,写“1”时序。所有的时序必须有最短60μs的持续期,在各个写周期之间必须有最短1μs的恢复期。在数据总线由高电平变为低电平之后,DS18B20在15μs至60μs的时间间隙对总线采样,如果为“1”则向DS18B20写“1”, 如果为“0”则向DS18B20写“0”。如图3-2的上半部分。对于主机产生写“1”时序时,数据线必须先被拉至低电平,然后被释放,使数据线在写时序开始之后15μs内拉至高电平。对于主机产生写“1”时序时,数据线必须先被拉至低电平,且至少保持低电平60μs。2.读时序在数据总线由高电平变为低电平之后,数据线至少应保持低电平1μs,来自DS18B20的输出的数据在下降沿15μs后有效,所以在数据线保持低电平1μs之后,主机将数据线拉高,等待来自DS18B20的数据变化,在下降沿15μs之后便可开始读取DS18B20的输出数据。整个读时序必须有最短60μs的持续期。如图3-2的下半部分。读时序结束后数据线由上拉电阻拉至高电平。 图3-3 DS18B20传感器的读写时序 DS18B20获取温度程序流程图DS18B20的读字节,写字节,获取温度的程序流程图如图3-3所示。图3-4 DS18B20程序流程图 显示程序设计显示电路是由四位一体的数码管来实现的。由于单片机的I/O口有限,所以数码管采用动态扫描的方式来进行显示。程序流程图如图3-4所示。图3-5 显示程序流程图 按键程序设计按键是用来设定上下限报警温度的。具体的程序流程图如图3-5所示。图3-6 按键程序流程图4实物制作及调试制作好的实物如图4-1所示。 图4-1 数字温度计实物正面图在做实物时出现了不少问题。比如本来是采用NPN型9013驱动蜂鸣器,但是在实际调试中蜂鸣器驱动不了,经多次试验,在三极管的基极电阻与单片机的接口处接一个1、2kΩ的上拉电阻就能驱动了。但考虑到单片机的I/O口默认状态时为高电平,这样一上电蜂鸣器就会响,所以将NPN型9013换成了PNP型的9012三极管,效果还不错。5电子综合设计体会经过将近一个月的设计、焊接、编程、调试,我们终于完成了数字温度计的设计,基本能够达到设计要求,而且还设计了一些其他功能,比可以开启或消除按键音功能,开机动画功能,查看报警上下限温度功能。此次的设计使我从中学到了一些很重要的东西,那就是如何从理论到实践的转化,怎样将我们所学到的知识运用到实践中去。在大学课堂的学习只是给我们灌输专业知识,而我们应把所学的知识应用到我们现实的生活中去。这次的设计不仅使我们将课堂上学到的理论知识与实际应用结合了起来,而且使我们对电子电路、电子元器件、印制电路板等方面的知识有了更进一步的认识,同时在软件编程、焊板调试、相关调试仪器的使用等方面得到较全面的锻炼和提高,为今后能够独立进行某些单片机应用系统的开发设计工作打下一定的基础。此次单片机设计也为我们以后进行更复杂的单片机系统设计提供了宝贵的经验。在本次设计的过程中,我们遇到不少的问题,刚开始焊好的板子下不进去程序,经过一再仔细的检查,才发现是在下载口处出了问题,由于焊盘口比较小,排针插不进去,最后使了很大力气才插进去,插进去后才发现坏了,结果在去排针的时候把焊盘给去下来了,最后只能在旁边将下载口引了出来。还有就是文章中提到的蜂鸣器驱动问题等等。经过此次的硬件制作与调试,锻炼了我们的动手实践能了。本次设计的另一个重点就是软件程序的设计,其中需要有很巧妙的程序算法,虽然以前写过几次程序,但我觉的写好一个程序并不是一件简单的事,有好多的东西,只有我们去试着做了,才能真正的掌握,只学习理论,有些东西是很难理解的,更谈不上掌握。通过此次的综合设计,我们初步掌握了单片机系统设计的基本原理。充分认识到理论学习与实践相结合的重要性,对于书本上的很多知识,不但要学会,更重要的是会运用到实践中去。在以后的学习中,我们会更加注重实践方面的锻炼,多提高自己的动手实践能力。参考文献[1] 谭浩强.C程序设计(第三版).北京:清华大学出版社, .[2] 余发山,王福忠.单片机原理与应用技术.徐州:中国矿业大学出版社, .[3] 求是科技.单片机典型模块设计实例导航.北京:人民邮电出版社, .[4] 求是科技.8051系列单片机C程序设计完全手册.北京:人民邮电出版社, .[5] 于永,戴佳,刘波.51单片机C语言常用模块与综合系统设计实例精讲(第2版).北京:电子工业出版社, .[6]刘腾远.基于单片机的温度控制系统设计[J].科技经济导刊,2018(01):77-78.[7]苏康友.基于51单片机的无线温度控制系统设计[J].电子技术与软件工程,2017(10):250-251.[8]刘丰年.基于AT89C51的简易智能化加湿器设计[J].三门峡职业技术学院学报,2016,15(04):139-142.[9]杨伟才.基于DS18B20的多点温度测量系统研究[J].山东工业技术,2016(24):266.[10]严敏.基于单片机的智能温控系统的设计与实现[J].无锡职业技术学院学报,2016,15(03):61-64.[11]吴嘉颖. 基于单片机的地铁低压设备触点温度监测系统的设计与实现[D].西南交通大学,2017.[12]孙晓倩.基于51单片机的温度监测报警系统设计研究[J].赤峰学院学报(自然科学版),2015,31(24):24-26.[13]仲霞.基于DS18B20的多点温度测量系统探讨[J].山东工业技术,2015(22):156.[14]吕晓磊.基于单片机智能控温的仿真与设计[J].安徽电子信息职业技术学院学报,2015,14(03):34-37.[15]贺争汉.基于51单片机的温度控制系统[J].黑龙江科技信息,2015(16):145.[16]谭虹.智能型滑雪保温鞋温控系统的设计与实现[J].体育世界(学术版),2014(11):19-20.[17]王云飞.DS18B20温度传感器的应用设计[J].电子世界,2014(12):355.[18]刘金魁.基于DS18B20的数字测温系统[J].焦作大学学报,2014,28(02):99-100.[19]杨丹丹,杨风,马慧卿.基于单片机的温度采集系统设计[J].山西电子技术,2014(03):19-21.[20]曹美霞.单片机与数字温度传感器DS18B20的接口设计[J].电子制作,2014(11):9-10.
AT89C51单片机那可以的要求的撒
一般只看结果,没人在意程序细节,最多答辩问几个问题
单片机自身的资料,一般,在课程中都学过。既不是你设计的,也不是你搜集的。这就不应该写。写,题目要求、设计目的,你都是怎么分析的,写,你的设计思路,遇到的问题,解决的方法...写你自己的,肯定不会查到。
基于stm32单片机的建筑火灾报警系统设计的论文题目查重率高。查重率高的原因如下:(1)作品设计太简单,功能单一,硬件结构简单,撰写论文无很多实质性内容,为达到篇幅字数要求,只有大量摘抄网络文字、引用文献资料,导致被毕业论文查重系统检测到,因此重复率高。(2)学生制作的作品,整体构思和具体设计来源于他人,而非“自创”,论文写作也参照他人的设计文档,“依赖”度过高抄袭严重,不能躲避毕业论文查重系统,导致论文重复率高。(3)学生能完成水平较高的作品,功能和指标实现得都很好,却因为论文写作能力欠缺,不能用文字图片表格相结合恰如其分地描述设计过程和作品特点,而只是简单地用芯片资料和一般性介绍内容填充论文,毕业论文查重都算抄袭,导致重复率高。(4)有些作品是以网页、软件或APP形式展示作品,硬件设计少(或无硬件)软件程序多。学生将程序放置于论文正文中,毕业论文查重都可以查重到,导致重复率高。(5)极个别学生的作品和论文都来自于第三方代写,初看完成质量较高,一旦论文提交毕业论文查重系统,重复率往往非常高,毕业论文查重重复率起码超过60%,甚至高达90%以上。
真的很可笑,相同的题目,设计说明肯定大同小异,又不是研究成果,哪有什么新东西,重复率很高是正常的
用STC的单片机,里面有EEPROM,把设定的密码写到里面。正常运行时 输入密码和EEPROM里面的密码比较 正确了就可以进入
[1]李广弟等.单片机基础[M].北京航空航天出版社,2001. [2]王东峰等.单片机C语言应用100例[M].电子工业出版社,2009. [3]陈海宴.51单片机原理及应用[M].北京航空航天大学出版社,2010. [4]刘守义等.单片机技术基础[M].西安电子科技大学出版社,2007. [5]钟富昭等.8051单片机典型模块设计与应用[M].人民邮电出版社,2007. [6]李平等.单片机入门与开发[M].机械工业出版社,2008.
电子密码锁摘要 本文的电子密码锁利用数字逻辑电路,实现对门的电子控制,并且有各种附加电路保证电路能够安工作,有极高的安全系数。关键词 电子密码锁 电压比较器 555单稳态电路 计数器 JK触发器 UPS电源。1 引言随着人们生活水平的提高,如何实现家庭防盗这一问题也变的尤其的突出,传统的机械锁由于其构造的简单,被撬的事件屡见不鲜,电子锁由于其保密性高,使用灵活性好,安全系数高,受到了广大用户的亲呢。设计本课题时构思了两种方案:一种是用以AT89C2051为核心的单片机控制方案;另一种是用以74LS112双JK触发器构成的数字逻辑电路控制方案。考虑到单片机方案原理复杂,而且调试较为繁琐,所以本文采用后一种方案。
程序设计内容
(1). 密码的设定,在此程序中密码是固定在程序存储器ROM中,假设预设的密码为“12345”共5位密码。
(2). 密码的输入问题: 由于采用两个按键来完成密码的输入,那么其中一个按键为功能键,另一个按键为数字键。在输入过程中,首先输入密码的长度,接着根据密码的长度输入密码的位数,直到所有长度的密码都已经输入完毕;或者输入确认功能键之后,才能完成密码的输入过程。进入密码的判断比较处理状态并给出相应的处理过程。
(3).按键禁止功能:初始化时,是允许按键输入密码,当有按键按下并开始进入按键识别状态时,按键禁止功能被激活,但启动的状态在3次密码输入不正确的情况下发生的。
C语言源程序
#include unsigned char code ps[]={1,2,3,4,5};
unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsigned char pslen=9; unsigned char templen;
unsigned char digit; unsigned char funcount;
unsigned char digitcount;
unsigned char psbuf[9];
bit cmpflag;
bit hibitflag;
bit errorflag;
bit rightflag;
unsigned int second3;
unsigned int aa;
unsigned int bb;
bit alarmflag;
bit exchangeflag;
unsigned int cc;
unsigned int dd;
bit okflag;
unsigned char oka;
unsigned char okb;
void main(void)
{
unsigned char i,j;
P2=dispcode[digitcount];
TMOD=0x01;
TH0=(65536-500)/256;
TL0=(65536-500)%6;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if(cmpflag==0)
{
if(P3_6==0) //function key
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_6==0)
{
if(hibitflag==0)
{
funcount++;
if(funcount==pslen+2)
{
funcount=0;
cmpflag=1;
}
P1=dispcode[funcount];
}
else
{
second3=0;
}
while(P3_6==0);
}
}
if(P3_7==0) //digit key
{
for(i=10;i>0;i--)
for(j=248;j>0;j--);
if(P3_7==0)
{
if(hibitflag==0)
{
digitcount++;
if(digitcount==10)
{
digitcount=0;
}
P2=dispcode[digitcount];
if(funcount==1)
{
pslen=digitcount;
templen=pslen;
}
else if(funcount>1)
{
psbuf[funcount-2]=digitcount;
}
}
else
{
second3=0;
}
while(P3_7==0);
}
}
}
else
{
cmpflag=0;
for(i=0;i
{
if(ps[i]!=psbuf[i])
{
hibitflag=1;
i=pslen;
errorflag=1;
rightflag=0;
cmpflag=0;
second3=0;
goto a;
}
}
cc=0;
errorflag=0;
rightflag=1;
hibitflag=0;
a: cmpflag=0;
}
}
}
void t0(void)
interrupt 1 using 0 { TH0=(65536-500)/256;
TL0=(65536-500)%6;
if((errorflag==1) && (rightflag==0))
{
bb++;
if(bb==800)
{
bb=0;
alarmflag=~alarmflag;
}
if(alarmflag==1)
{
P0_0=~P0_0;
}
aa++;
if(aa==800)
{
aa=0;
P0_1=~P0_1;
}
second3++;
if(second3==6400)
{
second3=0;
hibitflag=0;
errorflag=0;
rightflag=0;
cmpflag=0;
P0_1=1;
alarmflag=0;
bb=0;
aa=0;
}
}
if((errorflag==0) && (rightflag==1))
{
P0_1=0;
cc++;
if(cc<1000)
{
okflag=1;
}
else if(cc<2000)
{
okflag=0;
}
else
{
errorflag=0;
rightflag=0;
hibitflag=0;
cmpflag=0;
P0_1=1;
cc=0;
oka=0;
okb=0;
okflag=0;
P0_0=1;
}
if(okflag==1)
{
oka++;
if(oka==2)
{
oka=0;
P0_0=~P0_0;
}
}
else
{
okb++;
if(okb==3)
{
okb=0;
P0_0=~P0_0;
}
}
}
}
单片机的参考文献内容
参考文献是文章或著作等写作过程中参考过的文献,以下是我为大家整理的单片机的参考文献内容,希望对你有所帮助!
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
单片机的参考文献
[1]陈堂敏.刘焕平主编.单片机原理与应用.北京:北京理工大学出版社,2007.
[2]沈美明.温动蝉编著.IBM-PC汇编语言程序设计.北京:清华大学出版社,1994.
[3]张仰森等编.微型计算机常用软硬件技术速查手册.北京:北京希望电脑公司,1994.
[4]江修汗等编.计算机控制原理与应用.西安:西安电子科技大学出版社,1999.
发展历史
单片机(Microcontrollers)诞生于1971年,经历了SCM、MCU、SoC三大阶段,早期的SCM单片机都是8位或4位的。其中最成功的是INTEL的8051,此后在8051上发展出了MCS51系列MCU系统。基于这一系统的单片机系统直到现在还在广泛使用。随着工业控制领域要求的提高,开始出现了16位单片机,但因为性价比不理想并未得到很广泛的应用。90年代后随着消费电子产品大发展,单片机技术得到了巨大提高。随着INTEL i960系列特别是后来的ARM系列的广泛应用,32位单片机迅速取代16位单片机的高端地位,并且进入主流市场。
而传统的8位单片机的性能也得到了飞速提高,处理能力比起80年代提高了数百倍。高端的32位Soc单片机主频已经超过300MHz,性能直追90年代中期的专用处理器,而普通的型号出厂价格跌落至1美元,最高端的型号也只有10美元。
当代单片机系统已经不再只在裸机环境下开发和使用,大量专用的嵌入式操作系统被广泛应用在全系列的单片机上。而在作为掌上电脑和手机核心处理的高端单片机甚至可以直接使用专用的Windows和Linux操作系统。
主要阶段
早期阶段
SCM即单片微型计算机(Microcontrollers)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。
中期发展
MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。
Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。
当前趋势
SoC嵌入式系统(System on Chip)式的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决,因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。
早期发展
1971年intel公司研制出世界上第一个4位的微处理器;Intel公司的霍夫研制成功世界上第一块4位微处理器芯片Intel 4004,标志着第一代微处理器问世,微处理器和微机时代从此开始。因发明微处理器,霍夫被英国《经济学家》杂志列为“二战以来最有影响力的`7位科学家”之一。
1971年11月,Intel推出MCS-4微型计算机系统(包括4001 ROM芯片、4002 RAM芯片、4003移位寄存器芯片和4004微处理器)其中4004(下图)包含2300个晶体管,尺寸规格为3mm×4mm,计算性能远远超过当年的ENIAC,最初售价为200美元。
1972年4月,霍夫等人开发出第一个8位微处理器Intel 8008。由于8008采用的是P沟道MOS微处理器,因此仍属第一代微处理器。
1973年intel公司研制出8位的微处理器8080;1973年8月,霍夫等人研制出8位微处理器Intel 8080,以N沟道MOS电路取代了P沟道,第二代微处理器就此诞生。
主频2MHz的8080芯片运算速度比8008快10倍,可存取64KB存储器,使用了基于6微米技术的6000个晶体管,处理速度为(Million Instructions Per Second )。
1975年4月,MITS发布第一个通用型Altair 8800,售价375美元,带有1KB存储器。这是世界上第一台微型计算机。
1976年intel公司研制出MCS-48系列8位的单片机,这也是单片机的问世。
Zilog公司于1976年开发的Z80微处理器,广泛用于微型计算机和工业自动控制设备。当时,Zilog、Motorola和Intel在微处理器领域三足鼎立。
20世纪80年代初,Intel公司在MCS-48系列单片机的基础上,推出了MCS-51系列8位高档单片机。MCS-51系列单片机无论是片内RAM容量,I/O口功能,系统扩展方面都有了很大的提高。
【拓展内容】
电气自动化单片机论文
【摘要】
过去的以教师为中心的单片机课程教学,由于课程的综合性太强使得学生在学习过程中对很多知识点难以接受,我们通过对本门课程项目式和模块化改革的结合,合理安排教学内容和教学资源,降低初学者入门门槛,引导学生以兴趣为导向,极大的提高了学习者主动获取知识的意愿,明显提高了本课程的教学效果。
【关键词】 模块化教学;项目驱动;教学改革
“单片机技术”课程在本科院校里是电子信息类专业的必修课程,这门课程是以电子技术基础,编程语言,计算机理论等知识为基础的一门专业性和应用性很强的综合性课程。基于以上特点,对于初学者来说对单片机的理论知识的正确把握往往感觉比较吃力,给初学者造成学习困难。但是经过我们多年的教学经验,这类有很强的应用性和实用性的课程,以项目式教学更能推动学生的学习兴趣,同时模块化的教学设计更能降低初学者入门的门槛。两者相结合教学方法的采用对本门课程的教学效果提升明显.
1、单片机项目驱动教学法
以往的单片机教学模式是以教师为中心,老师在课堂上按照教材,或者教学大纲按部就班的讲授理论原理和知识点;以课堂教学为中心,学生学习为被动接受,由于知识点综合性比较强,理论太深奥使得学生往往学习兴趣不高,同时缺乏动手实践机会,教学效果一般不够理想。以项目驱动的教学法是学生为主体,教师为主导,以实践应用为根本目标,围绕具体的项目构建教学内容体系,通过师生共同参与完成一个具体的项目而展开的教学活动。注重的不是最终的结果,而是项目完成的过程,在项目的教学实施过程中,学生按需学习,亲身实践,学生在项目的实践过程中,理解知识和掌握技能,学习成为一个参与的创造实践活动,培养分析和解决问题的能力。引进单片机项目教学方式打破了原有的教学组织安排,以项目的开发步骤作为教学内容,将课程的内容分解为一个个小项目,从项目引入到项目解析再到任务分解然后到知识点讲解最后知识点应用,将原教学方案里单片机的知识点穿插到具体项目开发的过程中。这里面包含了软、硬平台搭建到项目展开再到项目完成的一系列教学活动,使学生从被动学习变为主动学习,按照这种方法我们将以往教学体系中的知识内容变化为若干个工程项目,然后围绕着这些工程项目任务的展开同时开展教学,让学生以具体工作目标的展开来进行教学环节的工作。有利于激发学生的学习积极性和创新能力,调动了学生的学习积极性。在这整个过程中,学生能很好的把握课程的知识要求,在体验创新与探索的过程中,又培养了学生们的分析解决问题的能力及团队协作能力等。
2、模块化的单片机教学方法
任何复杂的系统都是由具有完整基本功能的功能模块电路组成,单片机应用系统也是如此,一般由cpu系统、中断系统、I/O口等。同时任何复杂的电路系统都可以分解为多个具备单一功能的模块电路,按照这个思路,学习单片机系统我们也可以从单片机的功能模块电路入手,我们根据学生的认知规律,和学习单片的一般原理的方法,机将单片机教学模块分成几个部分,这里面每个部分有自己的专用模块[3]。比如程序功能部分、硬件部分;在对硬件电路设计部分进行模块化设计,将单片机的各个功能模块以独立的原理图形式出现,我们把单片机个硬件按功能分为了键盘模块、数码管显示模块、传感器控制模块、模数转换模块、显示模块、通信模块等几大模块,如图1。各个模块通过面包板上预留的连接器与系统主板进行连接,然后用排线组合成所需要的系统。在教学过程中,要不断收集遇到的各种硬件功能模块电路,弄清它们的工作原理、性能及特性、特定的功能及使用方法,把系统化整为零,建立起自己的硬件模块库。指导学生学会搜集、分析别人的设计案例、论文和相关书籍中的功能模块电路,不断地充实自己的功能模块电路库,日积月累,学生就会觉得自己的单片机系统设计能力越来越强。最后在进行模块分解时,各模块功能尽可能专一,联系尽可能简单,使模块独立性强,方便教学实用的模块。
3、总结
新兴本院校定位应用型教学型高校,以培应用型、创新型人才为目标。在此基础上的以项目驱动法教学和模块化教学为主线,以实际应用为培养为目标的“单片机技术”课程教学改革思路,按照这个方式能使学生在项目模块化的环节中一步一个台阶。此教学法脱离了枯燥无味的说教模式,使学生在具体的设计项目的工作环境里轻松自在的状态来投入到学习中,思维能力、动手能力、学习能力以及团队协作能力都有了明显提高,模块化学习过程中所积累的各种电路系统模块也促进构建成学生进行科技创新实践、参加大学生创新创业训练的重要模块库,激发了学生学习的主动性和成就感。法国文化教育学家斯普朗格曾言:教育的最终目的不是传授已有的东西,而是要把人的创造力量诱导出来。本课程的教学改革正是朝着这个方向前进。
单片机原理参考文献:
1、 李广弟等 单片机基础 北京航空航天出版社,
2、 楼然苗等 51 系列单片机设计实例 北京航空航天出版社,
3、 唐俊翟等 单片机原理与应用 冶金工业出版社,
4、刘瑞新等 单片机原理及应用教程 机械工业出版社,
5、 吴国经等 单片机应用技术 中国电力出版社,
6、 李全利,迟荣强编著 单片机原理及接口技术 高等教育出版社,
7、 侯媛彬等,凌阳单片机原理及其毕业设计精选 2006年,科学出版社
8、 罗亚非,凌阳十六位单片机应用基础2003年 北京航空航天大学出版社
9、 北京北阳电子有限公司,061A凌阳单片机及其附带光盘2003年
10、 张毅刚等, MCS-51单片机应用设计,哈工大出版社,2004年第2版
11、 霍孟友等,单片机原理与应用,机械工业出版社,
12、 霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,
13、 许泳龙等,单片机原理及应用,机械工业出版社,
14、 马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版
15、薛均义 张彦斌 虞鹤松 樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社
扩展资料:
单片机原理是指一种在线式实时控制计算机的原理方式。在线式就是现场控制,需要的是有较强的抗干扰能力,较低的成本,这也是和离线式计算机(比如家用PC)的主要区别。
单片机就是一个微型电脑,它是靠程序工作的,并且可以修改。通过不同的程序实现不同的功能。
[1]陈堂敏.刘焕平主编.单片机原理与应用.北京:北京理工大学出版社,2007.[2]沈美明.温动蝉编著.IBM-PC汇编语言程序设计.北京:清华大学出版社,1994.[3]张仰森等编.微型计算机常用软硬件技术速查手册.北京:北京希望电脑公司,1994.[4]江修汗等编.计算机控制原理与应用.西安:西安电子科技大学出版社,1999.
[1] 李东升等.protel 99SE电路设计教程.电子工业出版社,[2] 藏春华等.电子线路设计与应用.高等教育出版社,[3] 李学海.16位单片机SPCE061A使用教程——基础篇.人民邮电出版社,2007[4] 张琳娜,刘武发.传感检测技术及应用.中国计量出版社,1999[5] 邵敏权,刘刚.单片机原理实验及应用.吉林科学技术出版社,[6] 杨振江等.智能仪器与数据采集系统中的新器件及应用.西安电子科技大学出版 社,[7] 罗亚非等.凌阳16位单片机应用基础.北京航空航天大学出版社,[8] 刘笃仁,韩保君.传感器原理及应用技术。机械工业出版社,[9] 薛筠义,张彦斌.凌阳16位单片机原理及应用,[10] 徐爱卿.Intel 16位单片机,[11] 霍孟友等,单片机原理与应用机械工业出版社, [12] 霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,[13] 许泳龙等,单片机原理及应用,机械工业出版社, [14] 马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版 [15] 薛均义 张彦斌 虞鹤松 樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社.
[1] 李东升等.protel 99SE电路设计教程.电子工业出版社,[2] 藏春华等.电子线路设计与应用.高等教育出版社,[3] 李学海.16位单片机SPCE061A使用教程——基础篇.人民邮电出版社,2007[4] 张琳娜,刘武发.传感检测技术及应用.中国计量出版社,1999[5] 邵敏权,刘刚.单片机原理实验及应用.吉林科学技术出版社,[6] 杨振江等.智能仪器与数据采集系统中的新器件及应用.西安电子科技大学出版 社,[7] 罗亚非等.凌阳16位单片机应用基础.北京航空航天大学出版社,[8] 刘笃仁,韩保君.传感器原理及应用技术。机械工业出版社,[9] 薛筠义,张彦斌.凌阳16位单片机原理及应用,[10] 徐爱卿.Intel 16位单片机,[11] 霍孟友等,单片机原理与应用机械工业出版社, [12] 霍孟友等,单片机原理与应用学习概要及题解,机械工业出版社,[13] 许泳龙等,单片机原理及应用,机械工业出版社, [14] 马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社,2003修订版 [15] 薛均义 张彦斌 虞鹤松 樊波,凌阳十六位单片机原理及应用,2003年,北京航空航天大学出版社.
[1]方龙,陈丹,肖献保. 基于单片机的机械手臂控制系统设计[J]. 广西轻工业,2008,08:89-90.[2]周卫东. 基于CAN总线通讯的机械臂控制系统设计[J]. 南京工程学院学报(自然科学版),2007,04:42-46.[3]李辉,邓遵义. 基于CAN总线分布式机械臂控制系统设计[J]. 机电产品开发与创新,2011,02:155-157.[4]金伟. 基于DSP的机械臂控制系统设计[J]. 自动化与仪器仪表,2011,03:30-32.[5]李鲤,刘善春. 基于ARM的机械臂控制系统分析[J]. 自动化与仪器仪表,2012,02:176-177.[6]黄冉,周前祥,王一豪. 基于电流变液的机械臂控制系统设计与仿真[J]. 机械设计与制造,2012,12:4-6.[7]滕冠,刘恒. 基于模糊控制的机械臂控制系统设计与实现[J]. 大众科技,2015,01:85-87.[8]马江. 六自由度机械臂控制系统设计与运动学仿真[D].北京工业大学,2009.[9]欧艳华. 基于PID的现代加工生产机械臂控制系统设计[J]. 轻工科技,2015,04:59-60.[10]李磊. 六自由度机械臂控制系统设计[D].哈尔滨工程大学,2007.[11]赵胜求. 基于视觉的PUMA560机械臂控制系统设计[D].哈尔滨工业大学,2010.
【1】V. Yu. Teplov,A. V. Anisimov. Thermostatting System Using a Single-Chip Microcomputer and Thermoelectric Modules Based on the Peltier Effect[J] ,2002 【2】 Yeager to troubleshoot your electronic scale[J].. Powder and Bulk Engineering. 1995 【3】Meehan Joanne,Muir in Merseyside SMEs:Benefits and barriers[J].. TQM Journal. 2008 [1] Behzad of Analog CMOS Integrated Circuits[M]. . 2001 [2] Rhee of high-performance CMOS charge pumps inphase-locked loops. IEEE International Symposium on Cir-cuits and Systems. 1999 [3] Todd Charles design techniques for delay cell based VCOs and frequency synthesizers[C]//PHDthesis. . 1998 [4] George Lee,Karina Ng,Edmond of ring oscillator based voltage controlled oscillator. Project Final Report[R]. 2005 [5] T. C. Weigandt,B. Kim,and P. R. of Timing Jitter in CMOS Ring Oscillators. IEEE International Symposium on Circuits and Systems. 1994