24C02测试程序.doc_第1页
24C02测试程序.doc_第2页
24C02测试程序.doc_第3页
24C02测试程序.doc_第4页
24C02测试程序.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/*程序名称: 24C02测试程序编写者: 编写时间: 2013.3.30程序功能: 实时显示温度说明: 将12864液晶设置为并行方式,将24C02的SDA引脚接至P00口, SCL引脚接至P01口, 将单片机的P2口用杜邦线线连于j151液 晶的数据总线(P20-D0.P27-D7), E连至P30,RW连至P31,RS连至P32,*/#include /包含单片机寄存器的头文件#include /包含_nop_()函数定义的头文件#define uchar unsigned char#define uint unsigned int#define D12864_bus P2 /定义液晶数据口线#define OP_WRITE 0xa0 / 器件地址以及写入操作 #define OP_READ 0xa1 / 器件地址以及读取操作sbit sda=P00;sbit scl=P01;sbit rs=P32; /寄存器选择位,将RS位定义为P3.0引脚sbit rw=P31; /读写选择位,将RW位定义为P3.1引脚sbit e=P30; /使能信号位,将E位定义为P3.2引脚void delay(uint i) /延时函数while(i-);/*函数功能:延时1ms(3j+2)*i=(333+2)10=1010(微秒),可以认为是1毫秒*/void delay_1ms() unsigned char i,j; for(i=0;i10;i+) for(j=0;j33;j+) ; /*函数功能:延时若干毫秒入口参数:n*/ void delay_nms(unsigned char n) unsigned char i;for(i=0;in;i+) delay_1ms(); /*函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate*/void lcd12864_write_instruction (unsigned char dictate) rs=0; /根据规定,RS和R/W同时为低电平时,可以写入指令 rw=0; e=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置0 _nop_(); _nop_(); /空操作两个机器周期,给硬件反应时间 D12864_bus=dictate; /将数据送入D12864_bus,即写入指令或地址 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 e=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 e=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y(为字符常量)*/ void lcd12864_write_data(unsigned char y) rs=1; /RS为高电平,RW为低电平时,可以写入数据 rw=0; e=0; /E置低电平(根据表8-6,写指令时,E为高脉冲, / 就是让E从0到1发生正跳变,所以应先置0 D12864_bus=y; /将数据送入P0口,即将数据写入液晶模块 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 e=1; /E置高电平 _nop_(); _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 e=0; /当E由高电平跳变成低电平时,液晶模块开始执行命令 /*函数功能:对LCD的显示模式进行初始化设置*/void lcd12864_initialize(void) delay_nms(15); /延时15ms,首次写指令时应给LCD一段较长的反应时间 lcd12864_write_instruction(0x38); /显示模式设置:162显示,57点阵,8位数据接口delay_nms(5); /延时5mslcd12864_write_instruction(0x38);delay_nms(5);lcd12864_write_instruction(0x38);delay_nms(5);lcd12864_write_instruction(0x0c); /显示模式设置:显示开,有光标,光标闪烁delay_nms(5);lcd12864_write_instruction(0x06); /显示模式设置:光标右移,字符不移delay_nms(5);lcd12864_write_instruction(0x01); /清屏幕指令,将以前的显示内容清除delay_nms(5); /=字符显示=void lcd12864_display(uchar y,uchar x,uchar *p) switch (y) case 1:lcd12864_write_instruction(0x7f+x);break; /液晶第一行 case 2:lcd12864_write_instruction(0x8f+x);break; /0x8f+x case 3:lcd12864_write_instruction(0x87+x);break; case 4:lcd12864_write_instruction(0x97+x);while(*p) lcd12864_write_data(*p+); void start()sda=1;scl=1;delay(6);sda=0;delay(6);scl=0;void stop()sda=0;scl=1;delay(6);sda=1;delay(6);sda=0;scl=0;bit ack()bit ack_dat;sda=1;_nop_();_nop_();scl=1;delay();ack_dat=sda;scl=0;return ack_dat;/*函数功能:向at24c*读出一字节数据出口参数:dat(读出数据)*/uchar read_byte()uchar dat,i;for(i=0;i8;i+)scl=1;dat=1;dat+=(uchar)sda;scl=0;_nop_();return dat;/*函数功能:向at24c*写入一字节数据入口参数:X(待写入数据)*/void write_byte(uchar x)uchar i;for(i=0;i8;i+)sda=(bit)(x&0x80);_nop_();scl=1;_nop_();_nop_();scl=0;x=1;/*函数功能:从24C*中的指定地址写入数据入口参数:add(需写入的存储器地址) dat(写入存储器的数据)*/void write_dat(uchar add,uchar dat)start();write_byte(OP_WRITE);ack();write_byte(add);ack();write_byte(dat);ack();stop();delay_nms(4);/*函数功能:从24C*中的当前地址读取数据出口参数:dat(存储读出的数据)*/uchar read_current()uchar dat; start();write_byte(OP_READ);ack();dat=read_byte();stop();return dat;/*函数功能:从24C*中的指定地址读取数据入口参数:add(需读出的存储器地址)出口参数:dat(存储读出的数据)*/uchar read_i2c(uchar add)uchar dat; start();write_byte(OP_WRITE);ack();write_byte(add);ack();dat= read_current();stop();return dat;/*函数功能:将24c*初始化*/void init_i2c()scl=1;sda=1;void main()uint j;uchar dis_tab4;init_i2c();lcd12864_initialize();delay_nms(255);/init_i2c();j=read_i2c(2);dis_tab2=j%10+0;dis_tab1=j%100/10+0;dis_tab0=j/100+0;dis_tab

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论