搜索
bottom↓
回复: 6

C8051f020液晶问题,真的救救我,没时间了

[复制链接]

出0入0汤圆

发表于 2009-10-1 09:09:47 | 显示全部楼层 |阅读模式
请帮我,我用的是C8051F020的单片机 想驱动1602的液晶屏显示时钟。连接通电之后液晶屏就只有背光其他的什么都没有,请帮我看看程序哪有问题,F020初始化真麻烦,帮我看看是不是哪漏了。谢谢大家

#include<C8051f020.h>
#define uchar unsigned char
#define uint unsigned int

sbit rs=P2^5;
sbit lcden=P2^3;

sbit rd=P2^7;
uchar count;
char miao,shi,fen;
uchar code table[]="  2009-9-30 Wed";
uchar code table1[]="    00:00:00";
void delay(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

void write_com(uchar com)
{   
    rd=0;
        rs=0;
        lcden=0;
        P1=com;
        delay(12);
        lcden=1;
        delay(12);
        lcden=0;       
}

void write_date(uchar date)
{   
    rd=0;
        rs=1;
        lcden=0;
        P1=date;
        delay(12);
        lcden=1;
        delay(12);
        lcden=0;       
}

void init()
{   
    uchar num;
    WDTCN=0xDE;
        WDTCN=0xAD;
        XBR2=0x40;
        P1MDIN=0xFF;
        P1MDOUT=0xFF;
    rd=0;
        lcden=0;
//        fen=59;
//        miao=53;
//        shi=23;
        write_com(0x38);
        write_com(0x0c);
        write_com(0x06);
        write_com(0x01);
        write_com(0x80);
        for(num=0;num<15;num++)
                {
                        write_date(table[num]);
                        delay(12);
                }
        write_com(0x80+0x40);
        for(num=0;num<12;num++)
                {
                        write_date(table1[num]);
                        delay(12);
                }
        TMOD=0x01;
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        EA=1;
        ET0=1;
        TR0=1;
}

void write_sfm(uchar add,uchar date)
{
        uchar shi,ge;
        shi=date/10;
        ge=date%10;
        write_com(0x80+0x40+add);
        write_date(0x30+shi);
        write_date(0x30+ge);
}


void main()
{
        init();
       
}

void timer0() interrupt 1
{
        TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        count++;
if(count==41)
                {
                        count=0;
                        miao++;
                        if(miao==60)
                        {
                                miao=0;
                                fen++;
                                if(fen==60)
                                {
                                        fen=0;
                                        shi++;
                                        if(shi==24)
                                        {
                                                shi=0;
                                        }
                                        write_sfm(4,shi);
                                }
                                write_sfm(7,fen);
                        }
                        write_sfm(10,miao);
                       
                }       
}

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

发表于 2009-10-1 09:19:37 | 显示全部楼层
先检查接线,有没有对比度调节电位器?最好把你的接线图发上来

出0入0汤圆

 楼主| 发表于 2009-10-1 10:48:55 | 显示全部楼层
连线没问题,对比度的可变电阻接了,我觉得初始化少东西了,但不知道

出0入0汤圆

发表于 2009-10-1 11:55:19 | 显示全部楼层
rw位  好像要用到吧

出0入0汤圆

发表于 2009-10-2 11:10:55 | 显示全部楼层
可以参考一下我以前写的初始化部分
void LCD_1602_initial()
{
  unsigned int i;
  write_command(0x38);
  delay();
  write_command(0x38);
  delay();
  write_command(0x38);
  delay();
  write_command(0x06);
  write_command(0x0c);

  for(i=0;i<84;i++)
  {
   write_command(0x80+i);
   write_data(0x41);
  }

}

出0入0汤圆

发表于 2009-10-2 13:19:46 | 显示全部楼层
把你的init_device发上来 看配置对不对  这个只是程序 看不出错

出0入0汤圆

发表于 2012-2-20 20:49:29 | 显示全部楼层
我之前也遇到过这样的问题,

#include <c8051f020.h>
#include <intrins.h>
#include <absacc.h>
#include <stdlib.h>    //标准函数
#include <stdio.h>    //I/O口函数

#define _Nop() _nop_()

#define uchar unsigned char
#define uint unsigned int






//--------------------------------------------------------------------
//全局变量
//--------------------------------------------------------------------

//--------------------------------------------------------------------
//函数声明
//--------------------------------------------------------------------
void SYSCLK_Init (void);
void PORT_Init(void);
void Delay( uint );                      //延时子程序

//--------------------------------------------------------------------
// 主函数
//--------------------------------------------------------------------
void main (void)
{
        WDTCN = 0xde;                       
           WDTCN = 0xad;                        //关闭WDT
        SYSCLK_Init ();       
           PORT_Init();                         



   
  
}
//-----------------------------------------------------------------------------
// 系统时钟配置
//-----------------------------------------------------------------------------
void SYSCLK_Init (void)
{

// OSCICN =0x87; //使用内部时钟16M
// while((OSCICN & 0x10)==0);//内部时钟按设定频率运行


   int i;                           // delay counter
   OSCXCN = 0x67;                   // start external oscillator with
                                    // 22.1184MHz crystal
   for (i=0; i < 256; i++) ;        // Wait for osc. to start up   
   while (!(OSCXCN & 0x80)) ;       // Wait for crystal osc. to settle
   OSCICN = 0x88;                   // select external oscillator as SYSCLK
                                    // source and enable missing clock
                                    // detector

}
//-----------------------------------------------------------------------------
// I/O配置
//-----------------------------------------------------------------------------
void PORT_Init()
{
   XBR2    = 0x40;          // 交叉开关使能

  //P74OUT  = 0x3f;                        //P7open drain,P6、5、P4的高4位为推挽输出
  P74OUT  = 0xff;                        //推挽输出

}

/*******************************************************************************
延时子程序
********************************************************************************/

void Delay( uint tt )
{
   while( tt-- );
}
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-6-10 04:05

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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