#include <reg52.h> #define uint unsigned int #define uchar unsigned char sbit lcde_1602=P2^7; sbit rs_1602=P2^6; sbit rw_1602=P2^5; sbit sclk=P3^6; sbit rst=P3^5; sbit io=P3^4; uchar code shu[]="Data:20 - - Time: : : "; uchar code dat[6]={10,11,12,23,59,50};//年月日时分秒 uchar i,j; /////////////////////////////// void delay(uint); void write_com_1602(uchar); void write_dat_1602(uchar); void init_1602(); void write_byte_1302(uchar); uchar read_byte_1302(); void write1302(uchar,uchar); uchar read1302(uchar); /////////////////////////////// void write_byte_1302(uchar dat) //dat 为BCD码 { uchar i; // x=dat/10; // y=dat%10; // dat=((dat/10)<<4)|(dat%10); for(i=0;i<8;i++) { io=dat&0x01; dat>>=1; sclk=0; delay(5); sclk=1; } // sclk=0; } uchar read_byte_1302() { uchar i,dat=0x00; for(i=0;i<8;i++) { dat>>=1; if(io) { dat=dat|0x80; } sclk=1; delay(5); sclk=0; } return ((dat/16)*10+dat%16); //读出的BCD码转换成DEC输出 } void write1302(uchar add,uchar dat) //dat为10进制 { rst=0; delay(2); sclk=0; delay(2); rst=1; delay(2); write_byte_1302(add); dat=(((dat/10)<<4)|(dat%10)); //dat转换成BCD write_byte_1302(dat); delay(2); rst=0; } uchar read1302(uchar add) { uchar temp; rst=0; delay(2); sclk=0; delay(2); rst=1; delay(2); write_byte_1302(add); temp=read_byte_1302(); delay(2); rst=0; return temp; } ////////////////////////////////////////// void write_com_1602(uchar com) { rs_1602=0; rw_1602=0; P0=com; delay(5); lcde_1602=0; delay(5); lcde_1602=1; } void write_dat_1602(uchar dat) { rs_1602=1; rw_1602=0; P0=dat; delay(5); lcde_1602=0; delay(5); lcde_1602=1; } void init_1602() { write_com_1602(0x38); write_com_1602(0x38); write_com_1602(0x38); // write_com_1602(0x01); write_com_1602(0x0e); write_com_1602(0x06); } /////////////////////////////////// /////////////////////////////////// void delay(uint t) { for(;t>0;t--); } void main(void) { init_1602(); write_com_1602(0x80); for(i=0;i<15;i++) { write_dat_1602(shu); } write_com_1602(0xc0); for(i=15;i<28;i++) { write_dat_1602(shu); } write1302(0x8e,0x00); write1302(0x8c,dat[0]); write1302(0x88,dat[1]); write1302(0x86,dat[2]); write1302(0x84,dat[3]); write1302(0x82,dat[4]); write1302(0x80,dat[5]); write1302(0x8e,0x80); while(1) { j=read1302(0x8d); write_com_1602(0x87); write_dat_1602(j/10+0x30); write_dat_1602(j%10+0x30); j=read1302(0x89); write_com_1602(0x8a); write_dat_1602(j/10+0x30); write_dat_1602(j%10+0x30); j=read1302(0x87); write_com_1602(0x8d); write_dat_1602(j/10+0x30); write_dat_1602(j%10+0x30); j=read1302(0x85); write_com_1602(0xc5); write_dat_1602(j/10+0x30); write_dat_1602(j%10+0x30); j=read1302(0x83); write_com_1602(0xc8); write_dat_1602(j/10+0x30); write_dat_1602(j%10+0x30); j=read1302(0x81); write_com_1602(0xcb); write_dat_1602(j/10+0x30); write_dat_1602(j%10+0x30); } }
你输出的是什么?
欢迎光临 (http://www.51hei.com/bbs/) | Powered by Discuz! X3.1 |