欢迎来到天天文库
浏览记录
ID:40709487
大小:40.50 KB
页数:8页
时间:2019-08-06
《24C02测试程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、/**********************************************程序名称:24C02测试程序编写者:编写时间:2013.3.30程序功能:实时显示温度说明:将12864液晶设置为并行方式,将24C02的SDA引脚接至P00口,SCL引脚接至P01口,将单片机的P2口用杜邦线线连于j151液晶的数据总线(P20--D0...P27--D7),E连至P30,RW连至P31,RS连至P32,**********************************************/#include2、>//包含单片机寄存器的头文件#include//包含_nop_()函数定义的头文件#defineucharunsignedchar#defineuintunsignedint#defineD12864_busP2//定义液晶数据口线#defineOP_WRITE0xa0//器件地址以及写入操作#defineOP_READ0xa1//器件地址以及读取操作sbitsda=P0^0;sbitscl=P0^1;sbitrs=P3^2;//寄存器选择位,将RS位定义为P3.0引脚sbitrw=P3^1;//读写选择位,将RW3、位定义为P3.1引脚sbite=P3^0;//使能信号位,将E位定义为P3.2引脚voiddelay(uinti)//延时函数{while(i--);}/*****************************************************函数功能:延时1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒***************************************************/voiddelay_1ms(){unsignedchari,j;for(i=0;i<4、10;i++)for(j=0;j<33;j++);}/*****************************************************函数功能:延时若干毫秒入口参数:n***************************************************/voiddelay_nms(unsignedcharn){unsignedchari;for(i=0;i5、***函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate***************************************************/voidlcd12864_write_instruction(unsignedchardictate){rs=0;//根据规定,RS和R/W同时为低电平时,可以写入指令rw=0;e=0;//E置低电平(根据表8-6,写指令时,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置"0"_nop_();_nop_();//空操作两个机器周期,给硬件反应时间D1286、64_bus=dictate;//将数据送入D12864_bus,即写入指令或地址_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间e=1;//E置高电平_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间e=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}/*****************************************************函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y7、(为字符常量)***************************************************/voidlcd12864_write_data(unsignedchary){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=8、1;//E置高电平_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间e=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}/****
2、>//包含单片机寄存器的头文件#include//包含_nop_()函数定义的头文件#defineucharunsignedchar#defineuintunsignedint#defineD12864_busP2//定义液晶数据口线#defineOP_WRITE0xa0//器件地址以及写入操作#defineOP_READ0xa1//器件地址以及读取操作sbitsda=P0^0;sbitscl=P0^1;sbitrs=P3^2;//寄存器选择位,将RS位定义为P3.0引脚sbitrw=P3^1;//读写选择位,将RW
3、位定义为P3.1引脚sbite=P3^0;//使能信号位,将E位定义为P3.2引脚voiddelay(uinti)//延时函数{while(i--);}/*****************************************************函数功能:延时1ms(3j+2)*i=(3×33+2)×10=1010(微秒),可以认为是1毫秒***************************************************/voiddelay_1ms(){unsignedchari,j;for(i=0;i<
4、10;i++)for(j=0;j<33;j++);}/*****************************************************函数功能:延时若干毫秒入口参数:n***************************************************/voiddelay_nms(unsignedcharn){unsignedchari;for(i=0;i5、***函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate***************************************************/voidlcd12864_write_instruction(unsignedchardictate){rs=0;//根据规定,RS和R/W同时为低电平时,可以写入指令rw=0;e=0;//E置低电平(根据表8-6,写指令时,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置"0"_nop_();_nop_();//空操作两个机器周期,给硬件反应时间D1286、64_bus=dictate;//将数据送入D12864_bus,即写入指令或地址_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间e=1;//E置高电平_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间e=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}/*****************************************************函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y7、(为字符常量)***************************************************/voidlcd12864_write_data(unsignedchary){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=8、1;//E置高电平_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间e=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}/****
5、***函数功能:将模式设置指令或显示地址写入液晶模块入口参数:dictate***************************************************/voidlcd12864_write_instruction(unsignedchardictate){rs=0;//根据规定,RS和R/W同时为低电平时,可以写入指令rw=0;e=0;//E置低电平(根据表8-6,写指令时,E为高脉冲,//就是让E从0到1发生正跳变,所以应先置"0"_nop_();_nop_();//空操作两个机器周期,给硬件反应时间D128
6、64_bus=dictate;//将数据送入D12864_bus,即写入指令或地址_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间e=1;//E置高电平_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间e=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}/*****************************************************函数功能:将数据(字符的标准ASCII码)写入液晶模块入口参数:y
7、(为字符常量)***************************************************/voidlcd12864_write_data(unsignedchary){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=
8、1;//E置高电平_nop_();_nop_();_nop_();_nop_();//空操作四个机器周期,给硬件反应时间e=0;//当E由高电平跳变成低电平时,液晶模块开始执行命令}/****
此文档下载收益归作者所有