需要的资料:1、龙丘MMA7455模块V1使用手册2、89C52单片机相关知识3、1602液晶屏相关资料硬件:MMA7455、89C52单片机、1602液晶屏#include<>#include<>#include<>#defineucharunsignedchar#defineuintunsignedintsbitSDA=P2^3;//PTCD_PTCD1//IIC数据线定义sbitSCL=P2^4;//PTCD_PTCD0//IIC时钟线定义voidi2c_start(void);//送起始位voidi2c_stop(void);//送停止位voidi2c_ack_main(ucharack_main);//主应答说明:ack_main=1:ack主应答;ack_main=0:no_ack无需应答voidsend_byte(ucharc);//发送单个字节ucharread_byte(void);//接收单个字节说明:此函数需要配合主应答来用ucharcmd;longdat;/*********************************************************************/#definelcd_dataP0//数据端口sbitlcd_rs=P2^5;//=P2^6;//=P2^7;//[]={"X:"};//初始显示信息ucharcodedis2[]={"Y:"};ucharcodedis3[]={"Z:"};ucharcodedis4[]={"dushu"};voiddisplay1();voiddisplay2();voiddisplay3();voiddisplay4();voiddelay_ms(uintz){uintx,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}voidwrite_cmd(ucharcmd)//写命令{lcd_rs=0;lcd_rw=0;lcd_en=0;P0=cmd;delay_ms(5);lcd_en=1;delay_ms(5);lcd_en=0;}voidwrite_dat(uchardat)//写数据{lcd_rs=1;lcd_rw=0;lcd_en=0;P0=dat;delay_ms(5);lcd_en=1;delay_ms(5);lcd_en=0;}voidlcd_init(){write_cmd(0x30);delay_ms(10);write_cmd(0x0c);delay_ms(10);write_cmd(0x01);delay_ms(10);write_cmd(0x38);delay_ms(10);write_cmd(0x06);delay_ms(10);write_cmd(0x80);delay_ms(10);write_cmd(0x80+40);delay_ms(10);write_cmd(0x01);delay_ms(10);}voiddisplay1(){uchari;write_cmd(0x80);//第一行for(i=0;i<16;i++){write_dat(dis1[i]);delay_ms(5);}}voiddisplay2(){uchari;write_cmd(0x80+0x40);//第二行for(i=0;i<16;i++){write_dat(dis2[i]);delay_ms(5);}}voiddisplay3(){uchari;write_cmd(0x88);//第三行for(i=0;i<16;i++){write_dat(dis3[i]);delay_ms(5);}}voiddisplay4(){uchari;write_cmd(0x88+0x40);//第四行for(i=0;i<16;i++){write_dat(dis4[i]);delay_ms(5);}}voidwrite_x(longx)/******************ucharhang,****************设置数据类型处*************************/{ucharxsd1,xsd2,xsd3;x=(256-x)*180/128;x=x-90;if(x>0){if(x>90)x=90;xsd1=x/100;xsd2=(x%100)/10;//MH时的显示xsd3=(x%100)%10;write_cmd(0x80+3);write_dat('+');write_dat(0x30+xsd1);write_dat(0x30+xsd2);write_dat
基于89C52单片机的倾角测量 来自淘豆网www.taodocs.com转载请标明出处.