找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1991|回復: 1
收起左側(cè)

AVR驅(qū)動12864的C程序,怎么不顯示

[復制鏈接]
ID:99453 發(fā)表于 2016-4-6 20:03 | 顯示全部樓層 |閱讀模式
#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
/*#define CLK_H PORTB|=(1<<1)
#define CLK_L PORTB&=~(1<<1)
#define SID_H PORTB|=(1<<0)
#define SID_L PORTB&=~(1<<0)*/
#define CLK_H PORTC|=(1<<PC4)
#define CLK_L PORTC&=~(1<<PC4)
#define SID_H PORTC|=(1<<PC3)
#define SID_L PORTC&=~(1<<PC3)
#define uchar unsigned char
#define uint unsigned int
void send_byte(uchar byte)
{
uint i;
for (i=0;i<8;i++)
{  
  if(byte&0x80)
   SID_H; //為1 給1
  else
   SID_L;  //為0 給0
  CLK_L;//拉低時鐘   
  CLK_H;//拉高時鐘
  byte=byte<<1;
}
}
void write_com(uchar com)
{
send_byte(0xf8);//step 1
send_byte(0xf0&com);//step 2
send_byte(0xf0&(com<<4));//step 3
_delay_ms(50);
}
void write_data(uchar data)
{
send_byte(0xfa);
send_byte(0xf0&data);
send_byte(0xf0&(data<<4));
_delay_ms(50);
}
void lcd12864_init()
{
_delay_ms(50);
write_com(0x30);
_delay_ms(50);
write_com(0x0f);//整體和游標顯示
_delay_ms(50);
write_com(0x01);
_delay_ms(50);
}
void display()
{
  write_com(0x80);
  _delay_ms(50);  
  write_data(200);
  _delay_ms(50);
  write_com(0x80+0x10);
  _delay_ms(50);
  write_data(0x31);
}
void main()
{
DDRB|=(1<<PB0)|(1<<PB1);
  DDRC|=(1<<PC3)|(1<<PC4);
lcd12864_init();
_delay_ms(100);
while (1)
{
  display();
}
}
上面是我的代碼,是串口寫的,記得剛寫好的時候還可以看到游標閃爍,但寫了一個數(shù)據(jù)進去后就出問題了,再沒顯示,只是屏幕亮著,請問你們遇到過這種情況嗎

回復

使用道具 舉報

ID:113338 發(fā)表于 2016-4-10 19:44 | 顯示全部樓層
牛牛牛牛
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表