完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include #include #define uchar unsigned char #define uint unsigned int ***it RS=P1^0; //¼Ä´æÆ÷Ñ¡Ôñ룬½«RS붨ÒåΪP2.0Òý½Å ***it RW=P1^1; //¶ÁдѡÔñ룬½«RW붨ÒåΪP2.1Òý½Å ***it E=P1^2; //ʹÄÜÐźÅ룬½«E붨ÒåΪP2.2Òý½Å ***it BF=P0^7; //æµ±ê־룬£¬½«BF붨ÒåΪP0.7Òý½Å ***it LED=P2^5; ***it P32=P3^2; ***it P25=P2^5; ***it P26=P2^6; ***it P27=P2^7; uint cnt_int1,cnt_tim0; bit Flag_s;//Ãë±ê־λ uchar Speed_cnt , Speed ; uchar TempBuffer[10]; void init(void) { EX1=1; //ÔÊÐíÍⲿÖжÏ1 IT1=1; //1ϽµÑØ 0µÍµçƽ´¥·¢ ET0 = 1; //¶¨Ê±Æ÷0Öжϴò¿ª TMOD = 0x1; //É趨ʱÆ÷0Ϊģʽ1£¬16λģʽ TR0 = 1; PT0=1; EA=1; } /***************************************************** º¯Êý¹¦ÄÜ£ºÑÓʱ1ms ***************************************************/ void delay1ms() { unsigned char i,j; for(i=0;i<10;i++) for(j=0;j<33;j++) ; } /***************************************************** º¯Êý¹¦ÄÜ£ºÑÓʱÈô¸ÉºÁÃë Èë¿Ú²ÎÊý£ºn ***************************************************/ void delay(unsigned int n) { unsigned int i; for(i=0;i } /***************************************************** º¯Êý¹¦ÄÜ£ºÅжÏÒº¾§Ä£¿éµÄæµ״̬ ·µ»ØÖµ£ºresult¡£result=1£¬Ã¦Âµ;result=0£¬²»Ã¦ ***************************************************/ bit BusyTest(void) { bit result; RS=0; //¸ù¾Ý¹æ¶¨£¬RSΪµÍµçƽ£¬RWΪ¸ßµçƽʱ£¬¿ÉÒÔ¶Á״̬ RW=1; E=1; //E=1£¬²ÅÔÊÐí¶Áд _nop_(); //¿Õ²Ù×÷ _nop_(); _nop_(); _nop_(); //¿Õ²Ù×÷Ëĸö»úÆ÷ÖÜÆÚ£¬¸øÓ²¼þ·´Ó¦Ê±¼ä result=BF; //½«Ã¦Âµ±êÖ¾µçƽ¸³¸øresult E=0; return result; } /***************************************************** º¯Êý¹¦ÄÜ£º½«Ä£Ê½ÉèÖÃÖ¸Áî»òÏÔʾµØַдÈëÒº¾§Ä£¿é Èë¿Ú²ÎÊý£ºdictate ***************************************************/ void Write_com (unsigned char dictate) { while(BusyTest()==1); //Èç¹ûæ¾ÍµÈ´ý RS=0; //¸ù¾Ý¹æ¶¨£¬RSºÍR/WͬʱΪµÍµçƽʱ£¬¿ÉÒÔдÈëÖ¸Áî RW=0; E=0; //EÖõ͵çƽ(дָÁîʱ£¬ // ¾ÍÊÇÈÃE´Ó0µ½1·¢ÉúÕýÌø±ä£¬ËùÒÔÓ¦ÏÈÖÃ"0" _nop_(); _nop_(); //¿Õ²Ù×÷Á½¸ö»úÆ÷ÖÜÆÚ£¬¸øÓ²¼þ·´Ó¦Ê±¼ä P0=dictate; //½«Êý¾ÝËÍÈëP0¿Ú£¬¼´Ð´ÈëÖ¸Áî»òµØÖ· _nop_(); _nop_(); _nop_(); _nop_(); //¿Õ²Ù×÷Ëĸö»úÆ÷ÖÜÆÚ£¬¸øÓ²¼þ·´Ó¦Ê±¼ä E=1; //EÖøߵçƽ _nop_(); _nop_(); _nop_(); _nop_(); //¿Õ²Ù×÷Ëĸö»úÆ÷ÖÜÆÚ£¬¸øÓ²¼þ·´Ó¦Ê±¼ä E=0; //µ±EÓɸߵçƽÌø±ä³ÉµÍµçƽʱ£¬Òº¾§Ä£¿é¿ªÊ¼Ö´ÐÐÃüÁî } /***************************************************** º¯Êý¹¦ÄÜ£ºÖ¸¶¨×Ö·ûÏÔʾµÄʵ¼ÊµØÖ· Èë¿Ú²ÎÊý£ºx ***************************************************/ void WriteAddress(unsigned char x) { Write_com(x|0x80); //ÏÔʾλÖõÄÈ·¶¨·½·¨¹æ¶¨Îª"80H+µØÖ·Âëx" } /***************************************************** º¯Êý¹¦ÄÜ£º½«Êý¾Ý(×Ö·ûµÄ±ê×¼ASCIIÂë)дÈëÒº¾§Ä£¿é Èë¿Ú²ÎÊý£ºy(Ϊ×Ö·û³£Á¿) ***************************************************/ void WriteData(unsigned char y) { while(BusyTest()==1); RS=1; //RSΪ¸ßµçƽ£¬RWΪµÍµçƽʱ£¬¿ÉÒÔдÈëÊý¾Ý RW=0; E=0; //EÖõ͵çƽ(дָÁîʱ£¬£¬ // ¾ÍÊÇÈÃE´Ó0µ½1·¢ÉúÕýÌø±ä£¬ËùÒÔÓ¦ÏÈÖÃ"0" P0=y; //½«Êý¾ÝËÍÈëP0¿Ú£¬¼´½«Êý¾ÝдÈëÒº¾§Ä£¿é _nop_(); _nop_(); _nop_(); _nop_(); //¿Õ²Ù×÷Ëĸö»úÆ÷ÖÜÆÚ£¬¸øÓ²¼þ·´Ó¦Ê±¼ä E=1; //EÖøߵçƽ _nop_(); _nop_(); _nop_(); _nop_(); //¿Õ²Ù×÷Ëĸö»úÆ÷ÖÜÆÚ£¬¸øÓ²¼þ·´Ó¦Ê±¼ä E=0; //µ±EÓɸߵçƽÌø±ä³ÉµÍµçƽʱ£¬Òº¾§Ä£¿é¿ªÊ¼Ö´ÐÐÃüÁî } /***************************************************** º¯Êý¹¦ÄÜ£º¶ÔLCDµÄÏÔʾģʽ½øÐгõʼ»¯ÉèÖà ***************************************************/ void LcdInt(void) { delay(15); //ÑÓʱ15ms£¬Ê×´ÎдָÁîʱӦ¸øLCDÒ»¶Î½Ï³¤µÄ·´Ó¦Ê±¼ä Write_com(0x38); //ÏÔʾģʽÉèÖãº16¡Á2ÏÔʾ£¬5¡Á7µãÕó£¬8λÊý¾Ý½Ó¿Ú delay(5); //ÑÓʱ5ms¡¡ Write_com(0x38); delay(5); Write_com(0x38); //3´Îд ÉèÖÃģʽ delay(5); Write_com(0x0F); //ÏÔʾģʽÉèÖãºÏÔʾ¿ª£¬Óйâ±ê£¬¹â±êÉÁ˸ delay(5); Write_com(0x06); //ÏÔʾģʽÉèÖ㺹â±êÓÒÒÆ£¬×Ö·û²»ÒÆ delay(5); Write_com(0x01); //ÇåÆÁĻָÁ½«ÒÔÇ°µÄÏÔʾÄÚÈÝÇå³ý delay(5); } void IntToStr(unsigned int t, unsigned char *str, unsigned char k) { unsigned char a[5]; char i, j; a[0]=(t/10000)%10; //È¡µÃÕûÊýÖµµ½Êý×é a[1]=(t/1000)%10; a[2]=(t/100)%10; a[3]=(t/10)%10; a[4]=(t/1)%10; for(i=0; i<5; i++) //ת³ÉASCIIÂë a[i]=a[i]+'0'; for(i=0; a[i]=='0' && i<=3; i++); for(j=5-k; j { *str=' '; str++; } for(; i<5; i++) { *str=a[i]; str++; } //¼ÓÈëÓÐЧµÄÊý×Ö *str=' |