音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

有玩MEGA128的嗎?能否給我一個(gè)LCD的程序.

作者:synario 欄目:單片機(jī)
有玩MEGA128的嗎?能否給我一個(gè)LCD的程序.
請(qǐng)大蝦幫忙,我用總線方式連接.試驗(yàn)了曉奇的源代碼.弄了半天都不行.

2樓: >>參與討論
shenjiangu
這個(gè)有用嗎?
/*********************************************
This program was produced by the
CodeWizardAVR V1.24.1 STANDARD
Automatic Program Generator
?COPYRIGHT 1998-2003 HP InfoTech s.r.l.
http://www.hpinfotech.ro
e-mail:office@hpinfotech.ro

Project :
Version :
Date    : 2004-2-7
Author  : Shen Jianguo                    
Company :                                 
Comments:


Chip type           : MEGA128.html">ATMEGA128
Clock frequency     : 8.000000 MHz
MEMORY MODEL        : Small
External SRAM size  : 0
Data Stack size     : 128
*********************************************/

#include <mega128.h>
#include <delay.h>

//********************************************
//SSC12J64中文LCD屏,帶中文字庫(kù)
//聯(lián)接: LCD      MEGA128
//      RS ----- PORTC.0
//      RD ----- PORTC.1
//      EN ----- PORTC.2
//     DB4 ----- PORTC.4
//     DB5 ----- PORTC.5
//     DB6 ----- PORTC.6
//     DB7 ----- PORTC.7
//********************************************
#define LCD_RS PORTC.0
#define LCD_RD PORTC.1
#define LCD_EN PORTC.2
#define LCD_DB PORTC

// Declare your GLOBAL variables here
CHAR FLASH *str="Hello!";
CHAR FLASH *str2="將數(shù)據(jù)輸出到LCD接口,LCD數(shù)據(jù)口寬度為4bit";


//********************************************
//將數(shù)據(jù)輸出到LCD接口,LCD數(shù)據(jù)口寬度為4bit
//rs: 1 操作指令寄存器,0 操作數(shù)據(jù)寄存器
//rd: 1 從LCD讀出數(shù)據(jù), 0 向LCD寫(xiě)數(shù)據(jù)
//db: 要寫(xiě)入的數(shù)據(jù),僅底4位有效
//********************************************
void lcd_setport(CHAR rs,CHAR rd,CHAR db)
{
db=db<<4;
LCD_RS=rs;
LCD_RD=rd;
delay_us(1);
LCD_EN=1;
delay_us(1);
LCD_DB=LCD_DB&0x0F;
LCD_DB=LCD_DB|db;
delay_us(2);
LCD_EN=0;
delay_us(10);
}

//********************************************
//LCD功能設(shè)定,LCD數(shù)據(jù)口寬度為4bit
//re: 1擴(kuò)展指令, 0 基本指令
//********************************************
void lcd_function_set(CHAR re)
{
CHAR db;
db=db|(re<<2);
lcd_setport(0,0,0x02);
lcd_setport(0,0,db);
}

//********************************************
// LCD軟件復(fù)位
//********************************************
void lcd_reset(void)
{
lcd_setport(0,0,0x03);
delay_ms(5);
lcd_setport(0,0,0x03);
delay_ms(1);
lcd_setport(0,0,0x03);
lcd_setport(0,0,0x03);
lcd_function_set(0);       //使用LCD基本指令
}

//**********************************************
//LCD開(kāi)關(guān)設(shè)定
//DISPLAY: 1 顯示開(kāi), 0 顯示關(guān)
//cursor:  1 光標(biāo)開(kāi), 0 光標(biāo)關(guān)
//blink:   1 光標(biāo)處字符閃動(dòng)開(kāi), 光標(biāo)處字符閃動(dòng)關(guān)
//**********************************************
void lcd_on_off(CHAR DISPLAY,CHAR cursor,CHAR blink)
{
CHAR db;
db=0x08|(DISPLAY<<2)|(cursor<<1)|blink;
lcd_setport(0,0,0x00);
lcd_setport(0,0,db);
}


//**********************************************
//LCD 清屏
//**********************************************
void lcd_clear(void)
{
lcd_setport(0,0,0x00);
lcd_setport(0,0,0x01);
delay_ms(5);
}

//**********************************************
//LCD顯示回原點(diǎn),設(shè)DDRAM地址為0,DDRAM內(nèi)容不變
//**********************************************
void lcd_return_home(void)
{
lcd_setport(0,0,0x00);
lcd_setport(0,0,0x02);
}

//**********************************************
//輸入方式設(shè)定,設(shè)定光標(biāo)移動(dòng)方向并指定整體是否移動(dòng)
//id :1 增量方式, 0 減量方式
//s:  1 寫(xiě)入后整體移動(dòng),0 不移動(dòng)
//**********************************************
void lcd_entry_mode(CHAR id,CHAR s)
{
CHAR db;
db=0x04|(id<<1)|s;
lcd_setport(0,0,0x00);
lcd_setport(0,0,db);
}

//**********************************************
//移動(dòng)光標(biāo)或整體
//s_c: 1 整體顯示移位,0 光標(biāo)移動(dòng)
//r_l: 1 左移, 0 右移
//**********************************************
void lcd_cour_disp_shift(CHAR s_c,CHAR r_l)
{
CHAR db;
db=db|(s_c<<3)|(r_l<<2);
lcd_setport(0,0,0x01);
lcd_setport(0,0,db);
}

//**********************************************
//讀取當(dāng)前顯示位置
//**********************************************
CHAR lcd_read_address(void)
{
CHAR address,address_l;

LCD_EN=0;
LCD_RS=0;
delay_us(1);
LCD_RD=1;
delay_us(1);
LCD_EN=1;
DDRC=0x07;
delay_us(1);
address=PINC&0x70;
LCD_EN=0;
delay_us(1);
LCD_EN=1;
delay_us(1);
address_l=PINC&0xF0;
address_l= address_l>>4;
address=address|address_l|0x80;
LCD_EN=0;
LCD_RD=0;
PORTC=0x00;
DDRC=0xFF;

return address;
}

//**********************************************
//設(shè)定CGRAM地址
//**********************************************
void lcd_set_cgram_address(CHAR address)
{
CHAR db;
db=0x04|(address>>4);
lcd_setport(0,0,db);
db=address;
lcd_setport(0,0,db);
}

//**********************************************
//設(shè)定DDRAM地址
//*********************************************
void lcd_set_ddram_address(CHAR address)
{
CHAR db;
db=(0x08|(address>>4))&0x0B;
lcd_setport(0,0,db);
db=address;
lcd_setport(0,0,db);
}

//**********************************************
//寫(xiě)數(shù)據(jù)到CGRAM 或DDRAM
//**********************************************
void lcd_write_ram(CHAR data)
{
CHAR db;
db=data>>4;
lcd_setport(1,0,db);
lcd_setport(1,0,data);
}


//**********************************************
//LCD初始化
//**********************************************
void lcd_inital(void)
{
lcd_reset();
lcd_setport(0,0,0x02);
lcd_on_off(1,1,0);
lcd_clear();
lcd_entry_mode(1,0);
delay_ms(5);
}

//**********************************************
//設(shè)定顯示位置
// x 列位置,范圍1-8
// y 行位置,范圍1-4
//**********************************************
void lcd_gotoxy(CHAR x,CHAR y)
{
CHAR address;

SWITCH ( y )
    {
     case 1:
            address=0x80+x-1;
            break;
     case 2:
            address=0x90+x-1;
            break;  
     case 3:
            address=0x88+x-1;
            break;
     case 4:
            address=0x98+x-1;
            break;
     default: break;                
         
    } &nb
3樓: >>參與討論
synario
多謝這位大哥,我用的是T6963,不知道該怎么設(shè)置CPU
不知道哪些CPU寄存器需要設(shè)置.該怎么設(shè)置


4樓: >>參與討論
zlei
我給你傳一個(gè),我放曉奇那里了
http://www.xiao-qi.com/comm/project_43.zip

5樓: >>參與討論
synario
基本搞定了.多謝2位大哥,還有曉奇大哥
修正了硬件錯(cuò)誤,在曉奇提供的程序基礎(chǔ)上作了修改.
現(xiàn)在可以顯示DEMO 畫(huà)面了.



參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
ATMEGA162,請(qǐng)問(wèn)我的程序調(diào)試時(shí)出現(xiàn)以下問(wèn)題,是什么原因?
我的MEGA8壞了
在線求助(急)
請(qǐng)問(wèn)有沒(méi)有從5v轉(zhuǎn)為3v的ic?
貼一段AVR 的BootLoad,PC機(jī)啟動(dòng)流程:
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)