哪位大神看看STM8S写的12864不能显示是怎么回事

2019-07-19 21:22发布

程序我自己看没有问题就是不能显示

/* MAIN.C file
*
* Copyright (c) 2002-2005 STMicroelectronics
*/

#include"stm8s207mb.h"
#define uchar unsigned char
#define uint  unsigned int
//#define DATA_IO
void delay_ms(unsigned int ms) //24MHZ  延时1ms  
{
   unsigned int ti;
   while(ms--)
    {
      for(ti=0;ti<1420;ti++){}  //1421
     }
}

uchar table4[]={"ABCDEFJHIJKLMNOP"}; ///显示数据
_Bool LCD_RS   @PC_ODR:0;///定义RE RW EN申明位
_Bool LCD_RW   @PC_ODR:1;
_Bool LCD_EN   @PC_ODR:2;

void write_lcd_com(uchar com)///写命令
{
LCD_RS=0;
LCD_RW=0;
//delay_ms(1);
LCD_EN=0;
PI_ODR=com;
delay_ms(5);
LCD_EN=1;
delay_ms(5);
LCD_EN=0;
}
void write_data(uchar dat)//写数据
{

LCD_RW=0;
LCD_EN=0;
PI_ODR=dat;
delay_ms(5);
LCD_EN=1;
delay_ms(5);
LCD_EN=0;
}
void lcd_init(void)///初始化
{
write_lcd_com(0x30);
delay_ms(5);
write_lcd_com(0x0f);
delay_ms(5);
write_lcd_com(0x01);
delay_ms(5);
}
main()
{
        uchar num=0;
  PI_DDR = 0XFF;//设置输出模式为推挽输出
        PI_CR1 = 0XFF;//设置输入模式为上拉输入
        PI_CR2 = 0X00;//设置不开中断
       
        PG_DDR = 0XFF;//设置输出模式为推挽输出
        PG_CR1 = 0XFF;//设置输入模式为上拉输入
        PG_CR2 = 0X00;//设置不开中断
       
        PC_DDR = 0XFF;//设置输出模式为推挽输出
        PC_CR1 = 0XFF;//设置输入模式为上拉输入
        PC_CR2 = 0X00;//设置不开中断
       
        PG_ODR=0XFF;//测试用LED灯
        lcd_init();///初始化LCD
        write_lcd_com(0x81); ///地址
        for(num=0;num<12;num++)write_data(table4[num]);//循环写入12个字符
        while (1);
}


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。