




已阅读5页,还剩17页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学 号: 课 程 设 计题 目eeprom器件读写例程设计学 院专 业班 级姓 名指导教师年月日课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位:计算机科学与技术学院题 目: eeprom器件读写例程设计初始条件:1. 课程设计使用zg211硬件综合实验平台(8051单片机),使用at24c01接口芯片和辅助芯片以及器件;2. zg211有程序设计集成开发环境,程序设计语言为c语言;3. zg211硬件综合实验平台使用说明书;要求完成的主要任务: (包括课程设计工作量及其技术要求,撰写说明书具体要求)1. 学习使用zg211硬件综合实验平台,程序设计集成开发环境;2. 根据课程设计题目,进行需求分析,搞清楚课程设计需要设计需求和需要解决的设计内容。3. 查阅和学习课程设计题目需要的接口芯片资料,掌握i2c接口芯片的使用方法和编程要领。查阅和学习课程设计题目需要的辅助芯片以及器件资料。4. 设计接口芯片和辅助芯片以及器件与8051单片机连接硬件电路原理图。5. 设计与硬件电路原理图对应的c语言程序(或8051汇编语言)。给出程序流程图。在集成开发环境中调试程序。给出程序的详细注释。能够解释使用程序模拟电路时序信号和数据。6. 撰写课程设计报告,1)详细陈述以上的设计过程;2)详细陈述电路的调试过程。时间安排:第17周:1. 熟悉zg211硬件综合实验平台,keilc uvision2 集成开发环境;查阅接口芯片资料,熟悉接口芯片和它的使用方法。2. 设计硬件电路原理图,。第18周:1. 使用c语言或汇编语言设计和调试接口程序。2. 撰写计算机硬件综合设计报告。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日eeprom器件读写例程设计1 实验目的 掌握io 口操作,掌握显示及键盘芯片的运用,掌握i2c 总线操作2 实验设备 pc 机一台;zg-211 单片机系统实验板一块 实验连接线若干 并口编程线一根 串口通讯线一根 配套电源1 个 芯片:ch451, 89s52,cd40523 实验要求 能正常操作led 数码显示,能通过中断方式接收按键信息,能正确读写eeprom 芯片。4 实验平台及开发环境介绍4.1 zg211 实验板介绍 该实验板采用了功能模块化的设计思路,实验者可单独设计和调试各个功能模块,也可将各个模块综合起来,组成一个复杂的单片机应用系统。整个实验板具备了多种总线方式,如并行总线,串行总线,i2c 总线,单总线等,各总线都有独立插孔,可与单片机,8255,gal 等多个芯片相连,采用何种总线技术,可由实验者自己选择。实验板通过并口下载线与pc 机相联,实现在线编程。程序在电脑模拟仿真后,下载到实验板上,通过观察数码管显示器及相应的变化,便可确认程序运行是否正常。4.2 实验板模块示意图4.3 实验板模块布局图 4.4 keilc uvision2 集成开发环境4.5 中格电子在线编程软件5 实验原理 单片机系统常用 eeprom 芯片在掉电情况下保存一些重要数据。本实验板采用的芯片是 at24c02,可存储 256 个字节,重复擦写 1,000,000 次,数据保存 100 年以上。该芯片通过 i2c 总线接口进行操作。i2c 协议原理:i2c 总线用两条线(sda 和scl)在芯片和模块间传递信息。sda 为串行数据线,scl为串行时钟线。 1只有在总线空闲时才允许启动数据传送。 2在数据传送过程中,当时钟线为高电平时,数据线必须保持稳定状态不允许。有跳变时钟线为高电平时,数据线的任何电平变化将被看作总线的起始或停止信号。 起始信号: 时钟线保持高电平期间,数据线电平从高到低的跳变作为i2c 总线的起始信号。 停止信号: 时钟线保持高电平期间,数据线电平从低到高的跳变作为 i2c 总线的停止信号。总线时序写周期时序起始/停止时序器件寻址: 主器件通过发送一个起始信号启动发送过程,然后发送它所要寻址的从器件的地址。8位从器件地址的高4位固定为1010。 接下来的3 位a2 a1 a0 为器件的地址位,用来定义哪个器件以及器件的哪个部分被主器件访问。 从器件8 位地址的最低位,作为读写控制位。“1” 表示对从器件进行读操作, “0” 表示对从器件进行写操作。在主器件发送起始信号和从器件地址字节后, pcf8563 监视总线并当其地址与发送的从地址相符时响应一个应答信号(通过sda线) 。pcf8563 再根据读写控制位(r/w)的状态进行读或写操作。 应答信号: i2c 总线数据传送时每成功地传送一个字节数据后,接收器都必须产生一个应答信号,应答的器件在第9 个时钟周期时将sda 线拉低,表示其已收到一个8 位数据。 pcf8563在接收到起始信号和从器件地址之后响应一个应答信号,如果器件已选择了写操作,则在每接收一个8 位字节之后响应一个应答信号。 当pcf8563工作于读模式时, 在发送一个8 位数据后释放sda 线并监视一个应答信号,一旦接收到应答信号,pcf8563继续发送数据,如主器件没有发送应答信号,器件停止传送数据并等待一个停止信号主器件。应答时序图从器件地址位其中a0、a1 和a2 对应24c02的管脚1、2 和3,pcf8563的从地址读操作时为0a3h,写操作时为0a2h。 写操作: 1.字节写 在字节写模式下,主器件发送起始命令和从器件地址信息(r/w位置零)给从器件,在从器件产生应答信号后,主器件发送pcf8563的字节地址,主器件在收到从器件的另一个应答信号后,再发送数据到被寻址的存储单元。pcf8563再次应答,并在主器件产生停止信号后开始内部数据的擦写,在内部擦写过程中pcf8563不再应答主器件的任何请求。字节写时序图2页写 用页写,pcf8563可以一次写入16 个字节的数据,页写操作的启动和字节写一样,不同在于传送了一字节数据后并不产生停止信号。主器件被允许发送p(pcf8563:p=15;)个额外的字节。每发送一个字节数据后pcf8563产生一个应答位并将字节地址低位加1, 高位保持不变。 如果在发送停止信号之前主器件发送超过p+1个字节,地址计数器将自动翻转,先前写入的数据被覆盖。 接收到p+1字节数据和主器件发送的停止信号后, 芯片启动内部写周期将数据写到数据区,所有接收的数据在一个写周期内写入pcf8563。页写时序图应答查询: 可以利用内部写周期时禁止数据输入这一特性, 一旦主器件发送停止位指示主器件操作结束时,pcf8563启动内部写周期,应答查询立即启动,包括发送一个起始信号和进行写操作的从器件地址。如果pcf8563正在进行内部写操作,不会发送应答信号。如果pcf8563已经完成了内部自写周期,将发送一个应答信号,主器件可以继续进行下一次读写操作。 写保护: 写保护操作特性可使用户避免由于不当操作而造成对存储区域内部数据的改写,当wp 管脚接高时整个寄存器区全部被保护起来而变为只可读取。 读操作: pcf8563读操作的初始化方式和写操作时一样,仅把(r/w) 位置为1,有三种不同的读操作方式:立即地址读、选择读和连续读。 1. 立即地址读: pcf8563的地址计数器内容为最后操作字节的地址加1。也就是说,如果上次读/写的操作地址为n,则立即读的地址从地址n+1开始。如果n=e(这里对24c02,e=255;对pcf8563,e=16) , 则计数器将翻转到0且继续输出数。 pcf8563接收到从器件地址信号后 (r/w位置1) , 它首先发送一个应答信号,然后发送一个8 位字节数据。主器件不需发送一个应答信号,但要产生一个停止信号。立即地址时序图2. 选择性读: 操作允许主器件对寄存器的任意字节进行读操作,主器件首先通过发送起始信号、从器件地址和它想读取的字节数据的地址执行一个伪写操作。在pcf8563应答之后,主器件重新发送起始信号和从器件地址,此时r/w 位置1, pcf8563响应并发送应答信号,然后输出所要求的一个8 位字节数据,主器件不发送应答信号但产生一个停止信号。选择读时序图3. 连续读: 连续读操作可通过立即读或选择性读操作启动。在pcf8563发送完一个8 位字节数据后,主器件产生一个应答信号来响应,告知pcf8563主器件要求更多的数据,对应每个主机产生的应答信号pcf8563将发送一个8 位数据字节。当主器件不发送应答信号而发送停止位时结束此操作。从pcf8563输出的数据按顺序由n到n+1输出。读操作时地址计数器在pcf8563整个地址内增加,这样整个寄存器区域在可在一个读操作内全部读出。当读取的字节超过e(对于pcf8563,e=16;对24c02, e=255)计数器将翻转到零并继续输出数据字节。连续读时序图at24c02原理图如下: at24c02原理图管脚名称功能a0,a1,a2器件地址选择sda串行数据/地址scl串行时钟wp写保护vcc +1.86.0v工作电压vss地at24c02引脚说明5实验步骤5.1 硬件连接将并口线插在实验板与pc 机的并口插座上;按图2-28 连接实验线路(ch451 与cpu 连接实验线路见图2-2);仔细检查无误后,接通电源。(图中箭头表示需要接线的地方);5.2 软件设计进入keilc 开发环境。首先根据 234 i2c 协议 内容,编写i2c 函数,由于at24c02的i2c 接口最大频率是400khz,所以在程序中对一个io 口操作完后,请延时2.5us(实验板上cpu 晶振为11.0592mhz,一个指令周期为1.08us)。写好i2c 读写函数后,可以对at24c02进行操作。at24c02 的写从地址为0xa0,写时wp 要置0(打开写保护),写完后置为1;读从地址为0xa1。先将cd4052 的通道选为2,连接cpu 与at24c02。向at24c02 中地址为0x00 到0x07 的单元,写入数据0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07 后,再从at24c02 中读出,进行比较。如果一致则显示1,错误则显示0。显示、键盘实验看2.1 节。5.3 编译下载程序编译成功后,打开联机下载软件,将hex文件下载到89s52中,观看程序运行结果。如有问题则修改程序,再次下载。(请注意:at24c02的擦写次数有限,频繁擦写会影响其使用寿命。)调试成功后,请将i2c 读写程序、at24c02 读写程序,写成函数,以供其他模块调用。6 实验成功标志按下1 号按键,显示“001”,同时向at24c02 中指定位置写入数据;按下2 号按键,从at24c02 中指定位置读出数据并显示,应与写入数据一致。7 程序源码设计7.1 main函数程序说明main函数的主要功能是:1、初始化mcu;2、开关蜂鸣器,表示开始工作;3、设定不同键值对应的操作。若按下1号按键,显示测试值,同时向 at24c02 中指定位置写入数据; 若按下2号按键,从 at24c02 中指定位置读出数据并显示,应与写入数据一致。详细代码及说明如下: main()unsigned char eep_temp2;unsigned char temp = 0;/mcu初始化initmcu();set_8255();/开关蜂鸣器,表示开始工作speak_on();delay_1ms(50);speak_off();display_test();eep_temp0 = 0x01;/测试值while(1)if(key_data!=0)/若有键按下temp = key_data;key_data = 0;switch(temp)case 0x40:/若按下1号按键/将测试值写入eepromat24c02write(eep_temp, 0, 1);/显示测试值display_int(int)(eep_temp0);break;case 0x49:/若按下2号按键/从eeprom中读数据at24c02read(eep_temp, 0, 1);/显示测试值是否与输入一致display_int(int)(eep_temp0);break;default:break;7.2 i2c读写程序说明7.2.1向i2c总线发送一个开始信号void at24c02start()at24c02sda = 1;/初始设置p11接口为1delay_1ms(1);/延时at24c02scl = 1; /初始设置p10接口为1delay_1ms(1); /延时at24c02sda = 0; /初始设置p11接口为0delay_1ms(1); /延时at24c02scl = 0; /初始设置p11接口为0delay_1ms(1); /延时7.2.2向i2c总线发送一个停止信号void at24c02stop()at24c02sda = 0; /设置p11接口为0delay_1ms(1); /延时at24c02scl = 1; /设置p10接口为1delay_1ms(1); /延时at24c02sda = 1; /设置p11接口为1delay_1ms(1); /延时at24c02scl = 0; /设置p10接口为0delay_1ms(1); /延时7.2.3向i2c总线接受1bit数据unsigned char at24c02clock()unsigned char sda_value;delay_1ms(1); /延时at24c02scl = 1; /设置p10接口为1delay_1ms(1); /延时sda_value = at24c02sda;/向i2c总线接受数据delay_1ms(1); /延时at24c02scl = 0; /设置p10接口为0delay_1ms(1); /延时return(sda_value);7.2.4向i2c总线发送一个数据接受完成信号void at24c02ack()at24c02sda = 0; /设置p11接口为0at24c02clock();/向i2c总线接受1bit数据7.2.5检查从器件是否接受1byte的数据bit at24c02nack() at24c02sda=1;if (at24c02clock()=0) /判断是否接受1byte数据,若接收到return ok;else /判断是否接受1byte数据,若未接收到return nok;7.2.6向i2c总线发送一个字节的数据void at24c02outbyte(unsigned char byte)char count;for (count=0; count8; count+) / 向eeprom 发送数据if (byte & 0x80) = 0)at24c02sda = 0;else at24c02sda = 1;byte = 1; / 数据左移一位at24c02clock();/向i2c总线接受1bit数据7.2.7从i2c总线接受一个字节的数据unsigned char at24c02getbyte()unsigned char byte=0,temp,count;/ 接收一个字节的数据for (count=0; count8; count+) byte = 1;at24c02sda = 1;temp = at24c02clock();/从i2c总线接受1bit数据if (temp = 1)/判断数据的数据是否与读出的一致,若一致,则置1byte = byte | 0x01; return(byte);7.2.8向i2c总线发送开始信号和从地址bit at24c02dummywrite(unsigned char addr)at24c02start(); /向i2c总线发送一个开始信号at24c02outbyte(at24c02slave); /向i2c总线发送0xa0的数据if (at24c02nack()=nok) /若从器件无应答return nok;at24c02outbyte(addr);if (at24c02nack()=nok) /若从器件无应答return nok;return ok; 7.3 at24c02 读写程序说明7.3.1从at24c02读取数据char at24c02read(unsigned char * _data,unsigned char addr,unsigned char leng)unsigned char n;chang_4052(2);if (at24c02dummywrite(addr)=nok) /向i2c总线发送从地址,所属器件无应答return nok;at24c02start();/向i2c总线发送一个开始信号at24c02outbyte(at24c02slave|0x01); /向i2c总线发送一个读取数据if (at24c02nack()=nok) /若从器件未接收到数据return nok;/读取数据失败for (n=0;nleng-1; n+) _datan = at24c02getbyte();/将从i2c总线接收到的数据赋给_datanat24c02ack();/向i2c总线发送一个数据接受完成信号_dataleng - 1 = at24c02getbyte();at24c02stop();/向i2c总线发送一个停止信号delay_1ms(30);/延时return ok; /读取数据成功7.3.2向at24c02写数据char at24c02write(unsigned char * _data,unsigned char addr,unsigned char leng)unsigned char n;chang_4052(2);at24c02wp=0;/打开写保护if (at24c02dummywrite(addr)=nok) /向i2c总线发送从地址,所属器件无应答return nok;/写数据失败for (n=0; nleng; n+)at24c02outbyte(_datan); /向i2c总线发送待写数据内容if (at24c02nack()=nok) /若从器件未接收到数据return nok; /写数据失败at24c02stop();/向i2c总线发送一个停止信号at24c02wp = 1; /关闭写保护delay_1ms(30);/延时return ok; /写数据成功8操作过程说明调试程序的过程中出现的比较多的就是指令操作错误。以及函数的调用错误,对于子函数的命名一定要有一定规律性,避免在调用时经常调用错误。进行程序调试时按照如下的步骤: 电源指示灯是否正
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江事业单位笔试真题2025
- 聊城事业单位笔试真题2025
- 2024年新疆第二医学院招聘事业单位工作人员笔试真题
- 主题4 战略性矿产资源-石油教学设计-2025-2026学年高中地理选择性必修3中图中华地图版
- 2024-2025学年高中化学 第三章 第四节 离子晶体说课稿 新人教版选修3
- 九年级化学下册 第九单元 溶液 实验活动5 一定溶质质量分数的氯化钠溶液的配制说课稿 (新版)新人教版
- 油墨厂高岭土验收规章
- 企业员工保密合同协议
- 股权转让合同
- 第三节 撒哈拉以南非洲说课稿-2025-2026学年初中地理鲁教版五四学制六年级下册-鲁教版五四学制2012
- 电缆沟及盖板作业指导书培训课件
- GB/T 19867.6-2016激光-电弧复合焊接工艺规程
- GB/T 19478-2018畜禽屠宰操作规程鸡
- 三级教育考试卷(焊工)答案
- 无生上课课堂教学评价标准
- 深圳低压电工作业-实际操作培训课件-科目四-作业现场应急处理
- 中控岗位培训课件
- 宾馆酒店前台责任书
- 2.2 第2课时 基本不等式的综合应用(课件)高一数学(人教A版2019必修第一册)
- 勿忘国耻教学课件
- 《中国音乐发展简史》PPT课件
评论
0/150
提交评论