找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1951|回复: 2
打印 上一主题 下一主题
收起左侧

大神们,帮帮忙,编译通过,下载后没有相应的功能,为什么?

[复制链接]
跳转到指定楼层
楼主
ID:282384 发表于 2018-3-6 13:44 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include"lcd12864.h"

void LCD_busy()       
{
   bit busy;
   LCD_E = 0;
   LCD_RS = 0;
   LCD_RW = 1;  
   do{
          LCD_Busy = 1;
          LCD_E = 1;
                _nop_();
          busy = LCD_Busy;
          LCD_E = 0;
          }while(busy);
}
void LCD_WriteCode(unsigned char cmd)
{
   LCD_busy();
   LCD_E = 0;
   LCD_RS = 0;
   LCD_RW = 0;
   LCD_Data = cmd;
   LCD_E = 1;
         _nop_();
   LCD_E = 0;       
}
void LCD_GoToXY(unsigned char x,unsigned char y)
{
        y = y%4;//yè¡ÖμÎa0¡¢1¡¢2¡¢3
        x = x%8;//xè¡ÖμÎa0~7
        switch(y){
                case 0:
                        x |= 0x80;
                        break;
                case 1:
                        x |= 0x90;
                        break;
                case 2:
                        x |= 0x88;
                        break;
                case 3:
                        x |= 0x98;
                        break;
        }
        LCD_WriteCode(x);
}
void LCD_WriteData(unsigned char dat)
{
   LCD_busy();
   LCD_RS = 1;          
   LCD_RW = 0;
   LCD_Data = dat;
   LCD_E = 1;
         _nop_();
   LCD_E = 0;
}
void LCD_Init()
{
   LCD_RST = 1;
         LCD_PSB = 1;//2¢¿úí¨Ñ¶
         LCD_E = 0;
   LCD_WriteCode(0x08);//1ØÏÔê¾ £¬1Ø1a±êÏÔê¾  
   LCD_Clear();//ÇåÆá
   LCD_WriteCode(0x30);//ÏÔê¾Ä£ê½é趨Îa»ù±¾1|ÄüÄ£ê½
   LCD_WriteCode(0x06);//¶á»òD′ò»¸ö×Ö·ûoó£¬μØÖ·¼ó1£¬ÕûÆá2»òƶˉ  
   LCD_WriteCode(0x0c);//¿aÏÔê¾
         LCD_BG = 0;//¿aÆô±31a

}
void LCD_Clear()
{
   LCD_WriteCode(0x01);
}
void LCD_ShowString(unsigned char x,unsigned char y,unsigned char *str){
        LCD_GoToXY(x,y);
        while(*str){
                LCD_WriteData(*str);
                str++;
                delay(3000);
        }
}

void LCD_ShowImg(unsigned char dat[]){//ÏÔê¾×Ô¶¨òåí¼DÎ
        unsigned char i,j;
        for(i=0; i<32; i++){//D′éϰë2¿·ÖÆá
                LCD_WriteCode(0x34);//′ò¿aà©Õ11|ÄüÄ£ê½
                LCD_WriteCode(0x80|i);//DDμØÖ·
                LCD_WriteCode(0x80);//áDμØÖ·
                LCD_WriteCode(0x30);//1رÕà©Õ11|Äü£¬»Øμ½»ù±¾1|ÄüÄ£ê½
                for(j=0; j<16; j++){//D′èëí¼Ïñêy¾Y
                        LCD_WriteData(*dat);
                        dat++;
                }
        }
        for(i=0; i<32; i++){//D′ϰë2¿·ÖÆá
                LCD_WriteCode(0x34);//′ò¿aà©Õ11|ÄüÄ£ê½
                LCD_WriteCode(0x80|i);//DDμØÖ·
                LCD_WriteCode(0x88);//áDμØÖ·
                LCD_WriteCode(0x30);//1رÕà©Õ11|Äü£¬»Øμ½»ù±¾1|ÄüÄ£ê½
                for(j=0; j<16; j++){//D′èëí¼Ïñêy¾Y
                        LCD_WriteData(*dat);
                        dat++;
                }
        }
        LCD_WriteCode(0x36);//′ò¿aà©Õ11|Äü£¬¿aÆôÏÔê¾
        LCD_WriteCode(0x30);//1رÕà©Õ11|Äü£¬»Øμ½»ù±¾1|ÄüÄ£ê½
}

void LCD_Flash(){//ÏÔê¾ÄúèYéá˸
        unsigned char i;
        for(i=0; i<3; i++){
                delay(40000);
                LCD_WriteCode(0x08);//ÏÔê¾1Ø
                delay(30000);
                LCD_WriteCode(0x0C);//ÏÔ꾿a
        }

}
这是LCD程序,
#include"musi.h"
unsigned char timer0h,timer0l,time;

        //éúèÕ¸è
code unsigned char sszymmh[]={5,1,1, 5,1,1, 6,1,2, 5,1,2, 1,2,2, 7,1,4,
         5,1,1, 5,1,1, 6,1,2, 5,1,2, 2,2,2, 1,2,4,
         5,1,1, 5,1,1, 5,2,2, 3,2,2, 1,2,2, 7,1,2, 6,1,2,
         4,2,1, 4,2,1, 3,2,2, 1,2,2, 2,2,2, 1,2,4};
       // òô½×ÆμÂê±í ¸ß°Ëλ
code unsigned char FREQH[]={
                                0xF2,0xF3,0xF5,0xF5,0xF6,0xF7,0xF8,
                                0xF9,0xF9,0xFA,0xFA,0xFB,0xFB,0xFC,0xFC, //1,2,3,4,5,6,7,8,i
                                0xFC,0xFD,0xFD,0xFD,0xFD,0xFE,
                                0xFE,0xFE,0xFE,0xFE,0xFE,0xFE,0xFF,
                               } ;
         // òô½×ÆμÂê±í μí°Ëλ
code unsigned char FREQL[]={
                                 0x42,0xC1,0x17,0xB6,0xD0,0xD1,0xB6,
                                 0x21,0xE1,0x8C,0xD8,0x68,0xE9,0x5B,0x8F, //1,2,3,4,5,6,7,8,i
                                 0xEE,0x44, 0x6B,0xB4,0xF4,0x2D,
                                 0x47,0x77,0xA2,0xB6,0xDA,0xFA,0x16,
                                };
void delay(unsigned char t)
   {
   unsigned char t1;
   unsigned long t2;
   for(t1=0;t1<t;t1++)
   {
    for(t2=0;t2<8000;t2++)
       {
        ;
        }
   }
   TR0=0;
}
void t0int() interrupt 1
{
TR0=0;
speaker=!speaker;
TH0=timer0h;
TL0=timer0l;
TR0=1;
}
void song()
{
TH0=timer0h;
TL0=timer0l;
TR0=1;
    delay(time);                    
}
MUSI程序,
#incude"lcd12864.h"
#include"musi.h"

void main(){
        code unsigned char top[] = "^_^ ???? ^_^ ";
        code unsigned char li0[] = "????????";
        code unsigned char li1[] = "??????!";
        code unsigned char bottom[] = "QQ:404058326";
        LCD_Init();

    unsigned char k,i;
    TMOD=1; //?CT0??????1
    EA=1;
    ET0=1;//IE=0x82 //CPU???,CT0???
        while(1)


        {
                LCD_Clear();
                LCD_ShowImg(IMG);
                delay(65535);
                LCD_Flash();
                LCD_Clear();
                LCD_ShowString(0,0,top);
                delay(10000);
                LCD_ShowString(0,1,li0);
                delay(10000);
                LCD_ShowString(0,2,li1);
                delay(10000);
                LCD_ShowString(0,3,bottom);
                LCD_Flash();
                delay(65535);


       i=0;  
       while(i<75){         //?????? ,??????        
       k=sszymmh[i]+7*sszymmh[i+1]-1;
       timer0h=FREQH[k];
       timer0l=FREQL[k];
       time=sszymmh[i+2];
       i=i+3;
       song();
                         }
                         
                }
        主程序,



分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:288348 发表于 2018-3-6 18:40 | 只看该作者
查一下对应的用于驱动LCD的IO口,是不是有初始化,以及初始化为哪种功能
回复

使用道具 举报

板凳
ID:288402 发表于 2018-3-6 20:40 | 只看该作者
确定使用的屏幕和驱动与源代码一致,还有就是检查一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表