当前位置:首页 > 51单片机开发测速仪程序代码
#include
#define uchar unsigned char #define uint unsigned int sbit key=P3^3; sbit key1=P3^2; sbit rs=P2^5; sbit rw=P2^6; sbit en=P2^7; uchar k;
uchar display[]=\ 0 m/s%uchar display1[]=\ 0 km\
//************************EEPROM*************// sbit sda=P3^6; sbit scl=P1^5;
uchar read_add(uchar); void delay1ms(uint k) { uint x,y; for (x=0;x void delay() { ; ; } void start() { sda=1; delay(); scl=1; delay(); sda=0; delay(); } void stop() { sda=0; delay(); scl=1; delay(); sda=1; delay(); } void respons() { uchar i; scl=1; while((sda==1)&&(i<250))i++; scl=0; delay(); } void write_byte(uchar dat) { uchar i,temp; temp=dat; scl=0; delay(); for(i=0;i<8;i++) { temp=temp<<1; scl=0; delay(); sda=CY; delay(); scl=1; delay(); //scl=0; //delay(); } scl=0; delay(); sda=1; delay(); } uchar read_byte() { uchar i,j,k; scl=0; delay(); sda=1; delay(); for(i=0;i<8;i++) { scl=1; delay(); j=sda; k=(k<<1)|j; scl=0; delay(); } return k; } void write_add(uchar addres,uchar dat) { start(); write_byte(0xa0); respons(); write_byte(addres); respons(); write_byte(dat); respons(); stop(); } uchar read_add(uchar addres) { uchar dat; start(); write_byte(0xa0); respons(); write_byte(addres); respons(); start(); write_byte(0xa1); respons(); dat=read_byte(); stop(); return dat; } //**************************EEPROM*************// //**************************1602***************// void write_com(uchar com) { rs=0; rw=0; P0=com; en=1; delay1ms(5); en=0; } void write_data(uchar dat) { rs=1; rw=0; P0=dat; en=1; delay1ms(5); en=0; } //***************************1602****************// void init_1602() { uchar i; write_com(0x38); write_com(0x0c); write_com(0x06); write_com(0x01); write_com(0x80); for(i=0;i<16;i++) { write_data(display[i]); delay1ms(3); } write_com(0x80+0x40); for(i=0;i<16;i++) { write_data(display1[i]); delay1ms(3); } } void init() { TMOD=1; TH0=(65535-50000)/256; TL0=(65535-50000)%6; EA=1; ET0=1; TR0=1; sda=1; delay();
共分享92篇相关文档