ImageVerifierCode 换一换
格式:DOC , 页数:42 ,大小:4.54MB ,
资源ID:836524      下载积分:20 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 微信支付   
验证码:   换一换

加入VIP,免费下载资源
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.wodocx.com/d-836524.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机的家用电器远程遥控装置的设计与制作.doc)为本站会员(精***)主动上传,沃文网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知沃文网(发送邮件至2622162128@qq.com或直接QQ联系客服),我们立即给予删除!

基于单片机的家用电器远程遥控装置的设计与制作.doc

1、摘要题目: 基于单片机的家用电器远程遥控装置的设计与制作摘要:随着电子、计算机科学的发展,我们的生活和工作中都会接触很多的电子产品,而这些电子产品大多都是被称作单片机的微型计算机所控制,本文主要介绍以单片机AT89C51为核心,充分利用单片机的片内外资源,配合使用双音多频接收器MT8870实现远程电话遥控家电开关等功能的仪器。设计中使用了EEROMX25045来存储密码;采用语音芯片实现操作步骤提示、操作成功反馈提示等功能,操作简单、可靠;为了不额外占用资源,在软件中设计有一段时间内无人操作自动挂机的功能;在设计时为了解决单片机I/O口资源有限的问题,我们选用了CPLD可编程逻辑器件来扩展单片

2、机的I/O口,从而实现电路的逻辑功能。本次设计基于完备的软硬件系统,很好的实现了自动摘机、语音提示、密码核对、操作提示、状态显示及超时自动挂机等功能。关键词:AT89C51 MT8870 EEROM 单片机 CPLD毕业设计(论文)外文摘要Title : Based on the SCM home electrical equipment remote control device design and production of Abstract: With the electronics, Such as electronics, computer science development,

3、 we will be living and working in contact with a lot of electronic products, electronic products which are mostly known as a micro-computer controlled by the microcontroller, this article focuses on the single-chip microcomputer AT89C51 the core, make full use of on-chip microcontroller internal and

4、 external resources to support the use of dual-tone multi-frequency receiver MT8870 remote telephone switch features such as remote control home appliances instruments. Used in the design of EEROMX25045 to store passwords; use of voice-chip steps suggest that the successful operation of features suc

5、h as feedback tips, simple operation, reliable; in order not to occupy the additional resources in the design of software for some time to hang up the unmanned automatic function; in the design in order to solve the MCU I / O port resources are limited, we use a CPLD programmable logic device to exp

6、and the MCU I / O port, in order to achieve circuit logic functions. The design is based on a complete hardware and software systems, a good implementation of the automatic picking, voice prompts, password checking, operating tips, status display and automatic hang out functions.keywords: AT89C51 MT

7、8870 EEROM MCU CPLD目 录第1章 绪论51.1 概述51.2 设计要求及主要功能介绍51.3 MCS-51系列单片机简介7第2章 系统总体设计92.1 系统功能模块的划分92.2 系统原理框图92.3 系统软件主要特色10第3章 各模块详细设计123.1 振铃检测模块的设计123.2 双音多频模块的设计133.3 自动摘机及超时挂机模块的设计163.4 语音提示模块的设计173.5 密码设置模块的设计213.6 EEPROM及看门狗模块的设计233.7 继电器驱动模块的设计273.8 系统总程序的设计28第4章 系统的组装、调试和测试304.1 系统的组装、调试304.2 振

8、铃检测及自动摘机功能的测试304.3 语音及双音多频功能的测试304.4 密码设置功能的测试304.5 EEPROM密码存储功能的测试314.6 继电器驱动、电器状态显示及语音提示功能的测试314.7 超时自动挂机功能的测试31第5章 系统方案总评32结论33致谢33参考文献34附录A 家用电器远程遥控装置的功能及使用351 家用电器远程遥控装置的功能352 家用电器远程遥控装置的使用方法36图1 家用电器远程遥控装置原理图38图2 家用电器远程遥控装置印制板图39图3 家用电器远程遥控装置CPLD内部电气图40表1 家用电器远程遥控装置元器件清单41第1章 绪论1.1 概述单片机以其强大的控

9、制能力已经被广泛应用于诸多领域,从最初的8位控制器到现在的16位、32位控制器都还有很大的发展和应用空间。遥控技术是通过一定的手段对被控物体实施一定距离的控制,操作人员可以在远离设备的地方对设备进行操作,从而实现远程控制。单片机技术与遥控技术结合,并利用现有的电话网路便可实现对家用电器甚至是对工厂机器的远程操作。电话遥控作为一较新的课题与常规的遥控方式相比,显示出一定的优越性:电话线路各地联网,不需进行专门的布线;不占用无线电频率资源;避免电磁污染等。本设计是利用电话的双工通信特点进行遥控的:操作者可以通过各种提示音及时了解受控对象的有关信息,从而进行进一步的操作,实现了产品的交互式与智能化。

10、只要您处在可拨打电话的地方,您都可以通过手机或其他方式拨打家中的电话,对家中的电器进行控制:打开电饭煲煮饭、打开空调、打开照明电灯等,让您一回到家就可轻松享受温馨的生活。1.2 设计要求及主要功能介绍1.2.1 设计要求根据题目要求,本设计需要完成的以下几项功能:(1)家用电器电话遥控设备有程控语音接口,并接入家中电话网络中(家用电话号码即为遥控设备控制电话号码)。(2)当振铃910声后,遥控设备模拟摘机,并有语音提示。(3)遥控设备的密码有两部分组成,硬件和软件部分,遥控设备的密码由这两部分组成。软件部分密码存入在EEPROM中,硬件密码设置在遥控机器上,共有8位二进制构成2个8421BCD

11、码,硬件密码用户可以随时改动,当遥控者正确输入密码后,方可进入遥控状态。(4)遥控控制时,有语音提示。正常控制时,有语音反馈信息。(6)有显示功能,当操作执行后,遥控装置上有发光管显示,显示电器的工作状态。(7)有摘机后超时自动挂机功能。(8)本设备还可以作为家庭家用电器集中控制终端使用:用电话机即可正常控制。1.2.2 功能介绍1遥控设备自动摘机当用户拨打家中电话时,如果无人接听会在电话振铃8至10次后自动模拟摘机。2语音提示功能本系统设计有语音芯片ISD1420,内录有操作提示,设备自动摘机后,每步操作都会有语音提示,使用户能够正确的进行操作,实现了良好的人机交流。3用户密码修改为了用户操

12、作安全,本设备设有安全密码,密码使用8位按键开关设置。在每次开机时且未有电话打入时即可设置密码。8号键为功能选择键,当拨动一下时,表示需要设置密码。然后分别拨动各位上的按键一下,代表密码各位的数字(可任意设置115位密码),密码设置完毕后拨动8号按键一下,表示设置结束。4电器状态显示功能设备的正面面板上设计有四个发光LED灯,四个灯分别代表四个家用电器,灯的亮灭代表各个电器的开与关,这就实现了电器的状态显示,方便用户查看家用电器的开关状态,直观明了。5超时自挂机功能为了防止用户在操作完电器后忘记挂机而影响家中电话的正常使用,同时也是为了节省打电话所带来的费用,本设备设计有超时自挂机功能:设备接

13、通后20s内无任何操作,设备会自动挂机。1.3 MCS-51系列单片机简介MCS51单片机的基本结构如图1所示,其基本结构包括: 8位CPU; 片内震荡器及时钟电路; 32根I/O口线; 外部存储器ROM和RAM寻址范围各为64KB; 2个16位定时器/计数器; 5个中断源,2个中断优先级; 全双工串行口; 布尔处理器。图1 8051单片机的基本结构8051单片机的存储器结构特点之一是程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式。这种结构的单片机称为哈佛结构单片机。8051单片机在物理上有四个存储空间:片内程序存储器和片外程序存储器;片内数据存储器和片外数据存储器。8051单片机有

14、4个8位的并行接口,记作P0,P1,P2和P3,共32根口线,实际上它们就是SFR中的4个。这4个接口特性上主要差别是P0,P2和P3都具有第二功能,而P1口只能用做I/O口。4个口的驱动能力也是不相同。P1,P2和P3都能驱动3个LS TTL门,并且不需外加上拉电阻就能驱动MOS电路。P0能驱动8个LS TTL门,但驱动MOS电路时,若作为地址/数据总线,则可以直接驱动;而作为I/O口时,需外接上拉电阻才能驱动MOS电路。第2章 系统总体设计2.1 系统功能模块的划分按照设计要求,系统可以分为以下几个基本功能模块:振铃检测模块、双音多频模块、自动摘机及超时挂机模块、语音提示模块、密码设置模块

15、、EEPROM及看门狗模块和继电器驱动模块等。有些模块的功能是由硬件完成,有些模块的功能由软、硬件配合完成,有些模块则是由软件、硬件、机械三部分共同完成。将系统拆分成以上的这些基本功能模块后,再根据各个模块所要完成的功能分别去设计,也就是按照“逐步求精”的思想去设计本系统,这将使设计工作细化,也有助于制定进度安排。2.2 系统原理框图图2 系统原理框图2.3 系统软件主要特色软件在一个智能系统中扮演着举足轻重的作用,软件设计的好坏直接关系着整个系统的性能。目前已经有很多种嵌入式实时多任务操作系统,如:Linux、RTX51及UC/OS等,可以更有效的利用系统的各种资源,简化编程,缩短开发周期。

16、签于本系统采用AT89C51单片机为控制器,本身的各种资源都很有限,引入一个操作系统代价太大,所以考虑直接来优化系统的软件结构,同样可以达到“多任务” 、“实时”等要求。单片机的开发语言主要有汇编语言和C语言,本系统选用的是C语言。目前很多人认为汇编语言没有太多的语法,使用起来简单明了,但是对于一个较大规模的软件系统使用汇编语言开发将遇到很大的困难:开发周期长、代码可读性差、不易维护等;而C语言就克服了汇编语言的诸多缺点,和汇编语言相比,C语言的开发具有以下几个显著的优点:(1)C语言是一种结构化的编程语言,可以减轻程序员的负担,让程序员把更多的精力放在功能的实现上;(2)代码的可读性好、容易

17、理解、结构清晰、易于维护;(3)可移植性好,因为C语言不依赖于任何一种硬件系统。鉴于以上几点,本系统的软件部分全部采用C语言来编写。并且使用Keil C51编译器可以产生高效、紧凑的代码,执行效率远远超过使用汇编语言编写的程序。系统软件的流程图如图3:图3 系统软件的流程图第3章 各模块详细设计3.1 振铃检测模块的设计振铃的检测是用来判断电话网络是否有电话打入并判断是否启动系统对家用电器进行遥控。3.1.1 振铃检测模块的功能需求当用户被呼叫时,电话交换机发来铃流信号,振铃为483伏的正弦波,谐铃失真不大于10%,电压有效值9015V。振铃以5秒为周期,即1秒送,4秒断。输入至光电耦合器。经

18、过光耦的隔离转换,从光电耦合器输出的波形是时通时断的近似正弦波,经过反向器及RC回路进行滤波输出方波信号。方波信号就可以直接输人至单片机的T1中断计数器输入口,完成整个振铃音检测和计数的过程。3.1.2 振铃检测模块原理图图4 振铃检测电路3.1.3 振铃检测模块软件设计/振铃检测子程序/主要检测是否振铃达到8次void check_ring_8(void) TMOD=0X50; /TIMER1工作方式设定 TH1=0XFF; TL1=0XF9; TR1=1; /开启计数器 while(!TF1) if(P0=0x7f) /在有电话来之前检测是否修改密码 delay(120); if(P0=0

19、x7f) code_signal=1;/code_signal修改密码标志 while(P0=0x7f); break; TF1=0; /软件清除中断标志位3.2 双音多频模块的设计双音多频模块的主要器件为MT8870,它主要用来对电话网络信号解码编码。3.2.1 MT8870工作原理MT8870是Mitei公司生产的一种功能较强的DTMF发送与接收器。它体积小、抗干扰性强。晶振频率为3.58 MHz。输出为二进制编码信号,便于与计算机接口,是目前国际流行的DTMF解码器件。发送:当MT8870作为DTMF发送器时,数据总线Q1Q4上四位二进制码被锁存在发送数据寄存器中,发送的DTMF信号频率

20、由3.58 MHz的晶振分频产生。当按下相应的键时,MT8870会按照表1输出相对应的一组高低频率的信号送到电话网络中去。表1 MT8870解码表数字键盘高频组/Hz低频组/Hz1209133614771633697123A770456B852789C9410*#D接收:当MT8870作为DTMF发送器时,MT8870会检测出电话网络传送来的一组高低频率信号,并按表1解码,再根据表2进行编码,编码后的数据从MT8870的数据总线Q1Q4输出,由此便实现了解码。表2 MT8870编码表DigitTOEINHESTQ4QQ2Q1ANYLXHZZZZ1HXH00012HXH00103HXH00114

21、HXH01005HXH01016HXH01107HXH01118HXH10009HXH10010HXH1010*HXH1011#HXH1100AHLH1101BHLH1110CHLH1111DHLH0000AHHLUndetected putput code will remain the same as the previous detected codeBHHLCHHLDHHL3.2.2 双音多频模块硬件原理图图5 双音多频电路3.2.2 双音多频模块有关软件设计MT_8870解码程序如下:void MT_8870(uchar *TAB) / MT_8870解码电话中输入的数字 uchar

22、 i; for(i=0;i+) while(!start) /等待P3.2电平置高 no_signal=check_15s();if(no_signal) break; time_no=0; /未超时而检测到信号即刻清除 time_s=0; / 计时数据 if(no_signal) break; /15s内没有操作就跳出循环 /*/ TABi=translate(); /存储MT8870解码数据 while(start); /等待一次解码过程的结束 if(TABi=0x0a) break;/密码含有#键即刻结束解码 3.3 自动摘机及超时挂机模块的设计在本系统中,摘机和挂机实际上就是对家用电器

23、控制的“开始”和“结束”:自动摘机表示系统启动控制;超时挂机表示对家用电器操作结束。3.3.1 自动摘机及超时挂机模块硬件设计1.摘机及超时挂机模块硬件原理图图6 自动摘机及延时挂机电路2 .动摘机及超时挂机模块硬件原理由于该设备为家用电器电话远端遥控设备,当设备检测到铃流信号的振铃次数达到规定的次数(大约8次)时以达到接受控制信号的能力,设备应该有一个模拟摘机的功能;同时为了不影响电话功能的正常使用,在遥控电器操作结束后设备应该能够自动挂机。根据系统设计有关技术指标,自动摘机及超时挂机电路设计如图6所示。自动摘机:当单片机计数器计到8次时给P3.7口输出高电平,这一高电平即为模拟摘机脉冲控制

24、信号PICK,PICK信号经一非门驱动控制继电器K1吸合,继电器K1吸合使模拟电话机电阻RV接入电话线路中,使回路电流变大,交换机检测到电话线路的电流变化后便停止铃流发送,并将线路电压变为十几伏的直流,完成模拟摘机过程。超时挂机:当遥控电器操作过程结束后,如果用户未执行挂机动作,则设备在用户停止操作以后,自动延时20s后挂机。延时时间由软件编写时设定。3.3.2 自动摘机及超时挂机模块软件设计摘挂机的程序设计很简单,就是对P3.7脚进行操作:摘机时置高电平,挂机时置低电平。相关软件编写如下:/主程序中摘机程序sbit pick=P37;void main()check_ring_8( ); i

25、f(code_signal) /检测是否有修改密码 break; work=0; pick=1;/摘机/主程序中超时挂机程序sbit pick=P37;void main()pick=0;/挂机3.4 语音提示模块的设计本模块主要是对语音芯片ISD1420的操作,通过录音放音实现语音提示,方便用户对家用电器的控制。3.4.1 语音芯片的选择本设计选用的语音芯片为ISD1420,此芯片是美国ISD公司出品的优质单片语音录放电路:由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。录音

26、内容存入永久存储单元,提供零功率信息存储,这个独一无二的方法是借助于美国ISD公司的专利-直接模拟存储技术(DAST TM)实现的。利用它,语音和音频信号被直接存储,以其原本的模拟形式进入EEPROM存储器。直接模拟存储允许使用一种单片固体电路方法完成其原本语音的再现。不仅语音质量优胜,而且具有断电语音保护的功能。ISD1420具有以下特点:使用方便的单片录放系统,外部元件最少;重现优质原声,没有常见的背景噪音;放音可由边沿或电平触发;无耗电信息存储,省掉备用电池;信息可保存100年,可反复录放10万次无需专用编程或开发系统;较强的分段选址能力可处理多达160段信息;具有自动节电模式;录或放后

27、立即进入维持状态,仅需0.5A电流;单一5伏电源供电。鉴于ISD1420有如此多的优点故选用此芯片来存储本设计的语音提示。3.4.2 语音提示模块硬件设计1.语音提示模块硬件原理图图7 语音提示电路2.语音提示模块硬件原理ISD1420是采用模拟存取技术集成的可反复录放的20秒语音芯片,掉电语音不丢失,最大可分160段,最小每段语音长度为125ms,每段语音都可由地址线控制输出,每125ms为一个地址,由A0A7八根地址线控制。用户录制的语音每一段结束后芯片自动设有段结束标志(EOM),芯片录满后设有溢出标志(OVF)。如此用单片机控制电路按某一段的起始地址进行放音操作,遇到段结束标志(EOM

28、)即自动停止放音,单片机收到段结束标志(EOM)就开始触发下一段语音的起始地址,即可将录入的多段语音组合并播放出来,实现语音的提示功能。语音芯片ISD1420,可录制20s语音信号,本装置中录入的语音如下:“请输入密码”、“密码正确,请输入功能健,按*键结束”、“密码错误,请重新输入”、“电器已开”、“电器已关”等。3.4.3 语音提示模块软件设计ISD1420语音芯片录放音是通过对相应的管脚置有效的高低电平来实现的:在不同的模式下送入相应的语音地址,即可完成录放音功能。录音:通过P2口送起始地址0x90+Address,然后将语音芯片的27脚拉低,此时即可录音,当录音完毕时再将27脚拉高,录

29、音完毕。放音:放音时的软件设计如下:只需将录音时的地址送到相应的管脚即可播放相应的录音。void paly(uchar Address) /送入地址 播放语音 P2=0xd0+Address;/送地址 P2=0x90+Address; delay(12000); delay(12000); 3.5 密码设置模块的设计密码是用来限制用户对家用电器控制的所有权。此功能的设计非常重要,只有拥有有效密码的用户才可对家用电器进行操作。3.5.1 密码设置模块硬件设计密码设置模块硬件原理图图8 密码设置电路密码设置电路如图8所示,RS1为排阻,接在单片机的P0口,SA1为拨码开关,可以对系统进行密码设置。

30、本系统在开机时即可进行密码的设置。密码设置步骤如下:首先拨动8号按键一下,表示需要设置密码,然后分别拨动各位上的按键一下,其数字代表所要设置的密码,可任意设置115位密码。密码设置完毕后拨动8号按键一下,表示设置结束。例如,拨动8号按键一下(表明需要设置密码),再先后拨动1号按键、2号按键、3号按键、5号按键、7号按键一下,最后拨动8号按键一下。则密码设定已经完成,密码为12357。本系统的密码设置只设计在开机时,在电话通话过程中则无法修改密码;同时,在修改密码时,系统不对振铃进行检测,所以不能自摘机,从而不能对家用电器进行遥控。3.5.2 密码设置模块有关软件设计密码修改:密码的修改通过8号

31、键的拨动来起停的,第一次拨动表示开始输入密码,第二次表示结束输入密码,密码修改后存储在EEPROM中,即使在断电后密码亦不会丢失。密码修改程序如下:void write_code() uchar i,MM15=0,0,0,0,0,0,0,0,0,0,0,0,0,0,0; /清零,如第一次输入密码321,而第二次输入12,而实际密码为121 for(i=0;i+) while(P0=0xFF) rst_watchdog();/喂狗 delay(200); /消抖 if(P0!=0xFF) MMi=change();/用于存储修改的密码 if(P0=0x7f) break;/密码中有8,做为结束语

32、 while(P0!=0xff) rst_watchdog();/等待按键松开 while(P0!=0xff) rst_watchdog();/喂狗 for(i=0;i+) /将修改的密码存储到25045 Write_B(MMi,i,0);/ 0x08(8)结束符也存储到EEPROM中 if(MMi=0X08) break;/遇到结束符就停止存储 密码验证:在系统自摘机后,系统会以语音的形式提示您输入密码,当您输入密码后系统会对您输入的密码进行验证,验证的过程大致如下:系统的密码和EEPROM中的密码进将您通过电话输入的密码与系统EEPROM存入的密码相比较,当您输入的密码与所存的密码完全一致

33、时才可进入下一步操作。密码验证的有关程序如下: uchar check_code(uchar *TAB)/密码检验 uchar n,i=0; uchar YZ15;/*yz中不含有0x08,EEPROM第一次读的数据有误,所以进行两次读操作*/ for(;Read_B(i,0)!=0x08;i+) YZi=Read_B(i,0); for(;Read_B(i,0)!=0x08;i+) YZi=Read_B(i,0); n=strlen(YZ); for(i=0;i=n) return 1;/密码正确 else return 0;/密码错误3.6 EEPROM及看门狗模块的设计EEPROM是用来

34、存储用户设置的密码和一些初始化数据,看门狗是为了防止程序跑飞而设计,增强了系统的可靠性。3.6.1 EEPROM及看门狗模块硬件设计EEPROM及看门狗模块硬件原理图图9 EEPROM及看门狗电路X25045是美国Xicor公司的生产的标准化8脚集成电路,它集上电复位控制、看门狗定时器、降压管理以及具有块保护功能的串行EEPROM四种功能于一体,有助于简化应用系统的设计,减少印制板的面积,提高系统的可靠性,降低了成本和系统功耗。其中的串行EEPROM是具有Xicor公司的块锁保护CMOS串行EEPROM,它被组织成8位的结构,它由一个由四线构成的SPI总线方式进行操作,其擦写周期至少有1000

35、000次,并且写好的数据能够保存100年,综上可知X25045是一款理想的单片机外围芯片,故此设计选用X25045。3.6.2 EEPROM及看门狗模块软件设计X25045与单片机的数据交换通过SPI串行总线进行。在对X25045读写操作之前,需要先对X25045发出指令,指令名及指令格式如表3所示:表3 X25045指令及其含义指令指令格式操作WREN00000110设置写使能锁存器(允许写操作)WRDI00000100复位写使能锁存器(禁止写操作)RDSR00000101读状态寄存器WRSR00000001写状态寄存器READ00000A8011读出开始于所选地址的存储器中的数据WRITE

36、00000A8010把写入开始于所选地址的存储器X25045芯片内包含有一个看门狗定时器,可通过软件预置系统的监控时间。如表4所示,X25045状态寄存器共有6位有含义,其中WD1、WD0和看门狗电路有关,其余位和EEPROM的工作设置有关。表4 X25045状态寄存器D7D6D5D4D3D2D1D0XXWD1WD0BL1BL0WELWIPWD1、WD0设置和看门狗复位时间的关系如表5所示:表5 看门狗预置时间设置WD1WD0预置时间/s001.4010.6100.211禁止工作相关软件设计如下:/*/* SPI总线读指令、数据程序*/*/uchar Read(void) uchar i; b

37、it bData; uchar cData; for(i=0;i8;i+) /8位数据 sck=1; /下降沿输出 sck=0; bData=so; cData=cData1; if(bData) cData|=0x01; return cData; /返还读出的指令或数据/*/*SPI总线写指令、数据程序*/*/void Write(uchar cData) uchar i; for(i=0;i8;i+) if(cData&0x80)=0) si=0; /如果cData的高位为0,则输入为0,故SI为0./否则SI为0. else si=1; sck=0; /上降沿输入 sck=1; cDa

38、ta=cData1; /*/*读状态寄存器*/*/uchar Read_SR(void)/读状态寄存器 uchar cData; cs=0; Write(RDSR); /写入读状态寄存器允许 cData=Read(); /读状态寄存器 cs=1; return cData;void Write_SR(uchar cData)/写状态寄存器 uchar busy; busy=Read_SR(); while(busy&0x01)=1);/判断是否处于忙中 cs=0; Write(WREN); /写入写允许 cs=1; cs=0; Write(WRSR); /写入写状态寄存器允许 Write(cD

39、ata); cs=1;/*/*写数据*/*/void Write_B(uchar cData,uchar Address,bit page)/ 写入一个字节,cData为写入的数,Address为写入地址,page为页 while(Read_SR()&0x01)=1);/ 判断是否处于忙中 cs=0; Write(WREN); /写入写允许 cs=1; cs=0; if(page=0) Write(WRITE0); /写入第一页起始地址 else Write(WRITE1); /写入第二页起始地址 Write(Address); /写入地址 Write(cData); /写入数据 sck=0; cs=1;/*/*读数据*/*/uchar Read_B(uchar Address,bit page)/ 读入一个字节,Address为读入地址,page为页 uchar cData; while(Read_SR()&0x01)=1); cs=0; if(page=0) Write(READ0); /写入第一页起始地

版权声明:以上文章中所选用的图片及文字来源于网络以及用户投稿,由于未联系到知识产权人或未发现有关知识产权的登记,如有知识产权人并不愿意我们使用,如有侵权请立即联系:2622162128@qq.com ,我们立即下架或删除。

Copyright© 2022-2024 www.wodocx.com ,All Rights Reserved |陕ICP备19002583号-1 

陕公网安备 61072602000132号     违法和不良信息举报:0916-4228922