查看: 3475|回复: 1

[S12] mc9s12dg128b的12864程序

[复制链接]

该用户从未签到

1

主题

2

帖子

0

新手上路

Rank: 1

积分
10
最后登录
1970-1-1
发表于 2009-4-16 19:18:57 | 显示全部楼层 |阅读模式
经过的大侠帮忙看看下面的程序,下载后,液晶屏不能清屏,initLCD就是清屏程序,是什么问题呢
//12864的数据口接mc9s12dg128的PORTA口
//12864的cs1,cs2,rs,rw接mc9s12dg128的PORTB口的高四位
//12864的en接PORTK_BIT4
#define bus PORTA
#define cs1 PORTB_BIT4
#define cs2 PORTB_BIT5
#define rs PORTB_BIT6
#define rw PORTB_BIT7
#define en PORTK_BIT4
#define busy  PORTA_BIT7
void init_12864(void)
{ DDRK_BIT4=1;
 DDRB=0xFF;
 DDRA=0xFF;
 PUCR=0x0F;
}
//查询忙碌标志信号程序//
void check_busy(void)
{
    do
 {
 en=1;
 rs=0;
 rw=1;
             DDRA=0;
             delay(2);
 }while(busy); 
 DDRA=0xFF; 
}
void choose12864(uchar i)//i是要写的屏.0是左屏,1是右屏,2是双屏
{
  switch (i)
  {
    case 0: cs1=0;cs2=1;break;
    case 1: cs1=1;cs2=0;break;
    case 2: cs1=0;cs2=0;break;
    default: break;
  }

 
//写指令到12864
void w_code(uchar cod)
{
 check_busy();
             en=0;
 rw=0;
 rs=0;
 bus=cod;
 en=1;
 en=0;
}

//写显示数据到12864
void w_data(char dat)
{
 check_busy();
 en=0;
 rw=0;
 rs=1;
 bus=dat;
 en=1;
 en=0;

void initLCD(void)        //初始化LCD
{
    uchar i,k;
    choose12864(2);
    w_code(0x3e);  //开显示设置 
    w_code(0xc0);  //设置显示起始行为第一行 
   w_code(0xb8);  //页面地址设置 
   w_code(0x40);  //列地址设为0
   for(i=0;i
我知道答案 目前已有0人回答
回复

使用道具 举报

该用户从未签到

0

主题

1

帖子

0

新手上路

Rank: 1

积分
5
最后登录
1970-1-1
发表于 2011-12-13 16:58:45 | 显示全部楼层

RE:mc9s12dg128b的12864程序

我来看看
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-22 02:35 , Processed in 0.083441 second(s), 22 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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