#include‘reg52.h’ //包含单片机寄存器的头文件
#include‘intrins.h’ //包含_nop_()的头文件
sbit RS=P2^0; //LCD读写选择位
sbit RW=P2^1; //LCD读写选择位
sbit E=P2^2; //LCD使能端
sbit BF=P0^7; //忙信号
sbit SCLK=P1^0; //1302时钟输出端
sbit DATA=P1^1; //1302数据端
sbit RST=P1^2; //1302复位端
unsigned char code digit[]=“0123456789”;
void delay1ms(unsigned int n)
{
unsigned char i;
while(n--)
for(i=0;i《115;i++);
}
void Write1302(unsigned char dat)
{
unsigned char i;
SCLK=0; //确保写数据前SCLK为低电平
_nop_();
_nop_(); //给硬件反应时间
for(i=0;i《8;i++){
DATA=dat&0x01; //取数据的最低位 低位在前,高位在后
_nop_();
_nop_(); //给硬件反应时间
SCLK=1; //正跳变写数据
_nop_();
_nop_(); //给硬件反应时间
SCLK=0; //重新拉低SCLK,形成脉冲
dat》》=1; //dat右移,为写入下位数据做准备
}
}
void WriteSet1302(unsigned char cmd, unsigned char dat)
{
RST=0; //禁止数据传输 。!!!这条很重要
SCLK=0; //确保写数据前SCLK为低电平
RST=1; //开启数据传输
_nop_();
_nop_();
Write1302(cmd);
Write1302(dat);
SCLK=1; // 将时钟电平置于高电平状态 ,处于已知状态
RST=0;
}
unsigned char Read1302()
{
unsigned char i,d