本帖最后由 SD10A 于 2014-9-11 23:50 编辑
照着网上的程序稍微修改下 编译通过了,发现点不亮,也不知道问题出在哪儿?
#include <iom16v.h> //包含型号头文件
#include <macros.h>
#include <nokia3310.h>
#define CE_H PORTD|=BIT(0)
#define CE_L PORTD&=~BIT(0) //片选信号
#define SDIN_L PORTD&=~BIT(1)
#define SDIN_H PORTD|=BIT(1) //数据输入
#define SCLK_H PORTD|=BIT(2)
#define SCLK_L PORTD&=~BIT(2) //时钟信号
#define DC_H PORTD|=BIT(3)
#define DC_L PORTD&=~BIT(3) // 数据 命令
#define LCD_RESETH PORTD|=BIT(5)
#define LCD_RESETL PORTD&=~BIT(5) //复位
//*****************
void _delay_ms(unsigned int ms)
{
unsigned int i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<1141;j++);
}
}
//*****************在网上抄的 模拟SPI程序
void LCD_write_byt(unsigned char dat,unsigned char command)
{
unsigned char i;
CE_L;//SPI有效
if(command==0)
DC_L;
else
DC_H;//写数据
for(i=0;i<8;i++)
{if(dat&0X80)
SDIN_H;
else
SDIN_L;
SCLK_L;
dat=dat<<1;
SCLK_H;
}CE_H;
}
//****************
//*****************//网上抄的 初始化程序
void M5110_init()
{DDRD|=0b00011111;//
LCD_RESETL;_delay_ms(1);
LCD_RESETH;
CE_L;
_delay_ms(1);
CE_H;
_delay_ms(1);
LCD_write_byt(0X21,0);
LCD_write_byt(0Xc8,0);
LCD_write_byt(0X06,0);
LCD_write_byt(0X13,0);
LCD_write_byt(0X20,0);
LCD_clear();
LCD_write_byt(0X0c,0);
CE_L;
}
//****************
//****************************
//**********************
void main()
{M5110_init();
while(1)
{LCD_write_hanzi(24,0,2);}//这个LCD_write_hanzi是<nokia3310.h> 现成的函数 我想在屏幕上显示“机”这个字 这个字在头文件中定义了
}
}
|