日韩床上生活一级视频|能看毛片的操逼网站|色悠悠网站在线观看视频|国产免费观看A淫色免费|国产av久久久久久久|免费A级视频美女网站黄|国产毛片av日韩小黄片|热久久免费国产视频|中文字幕无码色色|成人在线视频99久久久

機(jī)電之家資源網(wǎng)
單片機(jī)首頁(yè)|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開(kāi)發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開(kāi)發(fā)
培訓(xùn)信息
贊助商
LCD1602程序
LCD1602程序
 更新時(shí)間:2008-7-26 19:30:48  點(diǎn)擊數(shù):3
【字體: 字體顏色
配置:

 ATMega16L @3.3V @7.3728MHz
 1602B LCD @5.0V @6 lines
 Compiler: WinAVR 20060125

我自己搭的萬(wàn)用板,1602用5V供電,M16用3.3V供電。為了使LCD盡快投入運(yùn)轉(zhuǎn),同時(shí)也因?yàn)閼卸?nbsp;... 便參考了網(wǎng)站上很多的1602的帖子,包括網(wǎng)站收集帖,程序下載后稍加修改,編譯通過(guò),下載到M16中,總是沒(méi)有反應(yīng)。

在這個(gè)過(guò)程中,我確信我的1602硬件是沒(méi)有問(wèn)題的,因?yàn)槲沂诸^上有個(gè)以前用51做的時(shí)間溫度計(jì)(1602+18B20),放到上面都能正常顯示。

整個(gè)過(guò)程中,感覺(jué)不管是網(wǎng)站收集的精華帖,還是普通帖子里面的1602程序,冗長(zhǎng)繁雜 ... 比如我在一個(gè)帖子中,看到的一個(gè)1602的初始化函數(shù),居然用了10幾行代碼!我在51中,不過(guò)也就4句而已啊 ...


后來(lái),遇到了下面的程序,簡(jiǎn)明扼要,一次成功。當(dāng)然,這也是從論壇中COPY的,我做了一些修改:


#include <avr/io.h>

#define LCD_EN_PORT    PORTC
#define LCD_RW_PORT    PORTC
#define LCD_RS_PORT    PORTC
#define LCD_DATA_PORT  PORTA
#define LCD_DATA_DDR   DDRA
#define LCD_DATA_PIN   PINA

//LCD的 r/w 腳直接接 GND
#define LCD_EN         0x80   //portd7        out
#define LCD_RS         0x40   //portc6        out
#define LCD_DATA       0xF0   //porta 4/5/6/7   out

/*--------------------------------------------------------------------------------------------------
Public function prototypes
--------------------------------------------------------------------------------------------------*/
void LCD_init         (void);
void LCD_en_write     (void);
void LCD_write_char   (unsigned command,unsigned data);
void LCD_set_xy       (unsigned char x, unsigned char y);
void LCD_write_string (unsigned char X,unsigned char Y,unsigned char *s);
void delay_nus        (unsigned int n);
void delay_nms        (unsigned int n);


void LCD_init(void)       //液晶初始化
{
 delay_nms(15);
 
 DDRA |= LCD_DATA;   // 數(shù)據(jù)為輸出
 DDRC |= LCD_RS | LCD_EN;  //置位RS.EN
 
 LCD_write_char(0x28,0);  //4位顯示
 LCD_write_char(0x0c,0);  //顯示開(kāi)
 LCD_write_char(0x01,0);  //清屏
 
 delay_nms(60);
}

void LCD_write_string(unsigned char X,unsigned char Y,unsigned char *s)
{
 LCD_set_xy( X, Y ); //寫(xiě)地址
   
 while (*s) {
    LCD_write_char( 0, *s );
   s ++;
 }
}
  
void LCD_set_xy( unsigned char x, unsigned char y )  //寫(xiě)地址函數(shù)
{
 unsigned char address;
 
 if (y == 0)
   address = 0x80 + x;
 else 
   address = 0xc0 + x;
      
 LCD_write_char(address, 0 );
}

void LCD_en_write(void)  //液晶使能
{
  LCD_EN_PORT |= LCD_EN;
  delay_nus(1);
  LCD_EN_PORT &= ~LCD_EN;
}
void LCD_write_char(unsigned command,unsigned data) // 寫(xiě)數(shù)據(jù)
{
 unsigned command_temp,data_temp;
 
 command_temp = command;
 data_temp = data;
 delay_nus(16);
 
 if(command == 0) {
   LCD_RS_PORT |= LCD_RS;  //RS=1
   LCD_DATA_PORT &= 0X0f;
   LCD_DATA_PORT |= data_temp & 0xf0;  //寫(xiě)高四位
   
   LCD_en_write();
   
   data_temp = data_temp << 4;  
   LCD_DATA_PORT &= 0X0f;
   LCD_DATA_PORT |= data_temp & 0xF0;   //寫(xiě)低四位
   
   LCD_en_write();
 }
 else {
   LCD_RS_PORT &= ~LCD_RS;   //RS=0
   LCD_DATA_PORT &= 0X0f;
   LCD_DATA_PORT |= command_temp & 0xF0; //寫(xiě)高四位
   
   LCD_en_write();
   
   command_temp = command_temp << 4;
   LCD_DATA_PORT &= 0x0F;
   LCD_DATA_PORT |= command_temp & 0xF0;  //寫(xiě)低四位
   
   LCD_en_write();
  }
}



int main(void)
{

 LCD_init();
 
 LCD_write_string(0,0,"Hello,AVR WORLD!!!");
 LCD_write_string(0,1,"hitro@tom.com");

 while(1);
 
}
   /*-----------------------------------------------------------------------
延時(shí)函數(shù)
系統(tǒng)時(shí)鐘:8M
-----------------------------------------------------------------------*/
void delay_1us(void)                 //1us延時(shí)函數(shù)
  {
   asm("nop");
  }

void delay_nus(unsigned int n)       //N us延時(shí)函數(shù)
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1us();
  }
  
void delay_1ms(void)                 //1ms延時(shí)函數(shù)
  {
   unsigned int i;
   for (i=0;i<1356;i++);
  }
  
void delay_nms(unsigned int n)       //N ms延時(shí)函數(shù)
  {
   unsigned int i=0;
   for (i=0;i<n;i++)
   delay_1ms();
  }
  • 上一篇: 下載燒錄快速入門(mén)
  • 下一篇: 外部中斷范例
  • 發(fā)表評(píng)論   告訴好友   打印此文  收藏此頁(yè)  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評(píng)論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會(huì)員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對(duì)此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請(qǐng)聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會(huì)
    中國(guó)行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營(yíng)許可證:浙B2-20080178-1