資源簡介
26 用AVR與1601LCD設計的計算器.zip

代碼片段和文件信息
//-----------------------------------------------------------------
//?名稱:?1601液晶顯示驅動程序
//-----------------------------------------------------------------
#include?
#include?
#include?“LCD1601.h“
#define?INT8U???unsigned?char
#define?INT16U??unsigned?int
#define?MAX_DISPLAY_CHAR?9
//液晶端口定義
#define?LCD_PORT?PORTC
#define?LCD_PIN??PINC
#define?LCD_DDR??DDRC
#define?LCD_CONTROL?PORTD
//液晶寄存器地址定義(寫命令寫數據讀忙狀態讀數據寄存器)
#define?LCD_CMD_WR??0X00
#define?LCD_DATA_WR?0X01
#define?LCD_BUSY_RD?0X02
#define?LCD_DATA_RD?0X03
//液晶命令集
#define?LCD_CLS? ????0X01
#define?LCD_HOME? ????0X02
#define?LCD_SETMODE?????0X04
#define?LCD_SETVISIBLE??0X08
#define?LCD_SHIFT???????0X10
#define?LCD_SETFUNCTION?0X20
#define?LCD_SETCGADDR???0X40
#define?LCD_SETDDADDR???0X80
//液晶使能引腳操作定義
#define?EN_1()?(LCD_CONTROL|=_BV(PD2))
#define?EN_0()?(LCD_CONTROL&=~_BV(PD2))
//-----------------------------------------------------------------
//?LCD忙等待?
//-----------------------------------------------------------------
void?LCD_BUSY_WAIT()
{??
INT8U?LCD_Status;
LCD_DDR=0X00;
LCD_CONTROL=LCD_BUSY_RD;
do
{
EN_1();asm(“nop“);LCD_Status=LCD_PIN;
EN_0();
}while(LCD_Status&0x80);
}
//-----------------------------------------------------------------
//?寫LCD命令寄存器
//-----------------------------------------------------------------
void?Write_LCD_Command(INT8U?cmd)
{?
LCD_DDR=0XFF;
LCD_PORT=cmd;
LCD_CONTROL=LCD_CMD_WR;
EN_1();asm(“nop“);EN_0();
LCD_BUSY_WAIT();
}
//-----------------------------------------------------------------
//?寫LCD數據寄存器
//-----------------------------------------------------------------
void?Write_LCD_Data(INT8U?dat)
{?
LCD_DDR=0XFF;
LCD_PORT=dat;
LCD_CONTROL=LCD_DATA_WR;
EN_1();asm(“nop“);EN_0();
LCD_BUSY_WAIT();
}
//-----------------------------------------------------------------
//?LCD初始化
//-----------------------------------------------------------------
void?Initialize_LCD()
{?
Write_LCD_Command(LCD_SETFUNCTION?+0X10);
Write_LCD_Command(LCD_SETVISIBLE??+0X04);
Write_LCD_Command(LCD_SETMODE?????+0X03);
Write_LCD_Command(LCD_SETDDADDR???+0X0F);
}
//-----------------------------------------------------------------
//?清屏
//-----------------------------------------------------------------
void?ClearScreen()
{
Write_LCD_Command(LCD_CLS);
Write_LCD_Command(LCD_SETDDADDR+0X0F);
}
//-----------------------------------------------------------------
//?顯示字符串
//-----------------------------------------------------------------
void?ShowString(char?*str)
{
INT8U?i;
ClearScreen();
while(str[i]&&i {
Write_LCD_Data(str[i++]);
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2012-11-30?13:36??26?用AVR與1601LCD設計的計算器\
?????目錄???????????0??2012-11-30?13:36??26?用AVR與1601LCD設計的計算器\.dep\
?????文件??????????64??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\.dep\main.o.d
?????目錄???????????0??2012-11-30?13:36??26?用AVR與1601LCD設計的計算器\AVR-C\
?????目錄???????????0??2012-11-30?13:36??26?用AVR與1601LCD設計的計算器\AVR-C\default\
?????目錄???????????0??2012-11-30?13:36??26?用AVR與1601LCD設計的計算器\AVR-C\default\dep\
?????文件????????1552??2010-01-15?20:55??26?用AVR與1601LCD設計的計算器\AVR-C\default\dep\LCD1601.o.d
?????文件????????2391??2010-01-15?21:50??26?用AVR與1601LCD設計的計算器\AVR-C\default\dep\main.o.d
?????文件????????2043??2009-08-28?12:13??26?用AVR與1601LCD設計的計算器\AVR-C\default\Makefile
?????文件??????????13??2010-01-15?21:50??26?用AVR與1601LCD設計的計算器\AVR-C\default\用AVR與1601LCD設計的計算器.eep
?????文件????????9684??2010-01-15?21:50??26?用AVR與1601LCD設計的計算器\AVR-C\default\用AVR與1601LCD設計的計算器.hex
?????文件????????1606??2010-04-27?21:49??26?用AVR與1601LCD設計的計算器\AVR-C\LCD1601.c
?????文件?????????316??2010-01-14?17:20??26?用AVR與1601LCD設計的計算器\AVR-C\LCD1601.h
?????文件????????1286??2010-04-27?21:50??26?用AVR與1601LCD設計的計算器\AVR-C\Main.c
?????文件????????3938??2010-01-14?23:22??26?用AVR與1601LCD設計的計算器\AVR-C\用AVR與1601LCD設計的計算器.aps
?????文件?????????709??2010-01-15?22:03??26?用AVR與1601LCD設計的計算器\AVR-C\用avr與1601lcd設計的計算器.aws
?????文件?????????120??2012-11-15?21:22??26?用AVR與1601LCD設計的計算器\cal_LCD.pnproj
?????文件??????????60??2012-11-15?21:22??26?用AVR與1601LCD設計的計算器\cal_LCD.pnps
?????文件???????89032??2012-10-26?14:14??26?用AVR與1601LCD設計的計算器\Last?Loaded?用AVR與1601LCD設計的計算器.DBK
?????文件????????2811??2012-11-15?21:22??26?用AVR與1601LCD設計的計算器\LCD1601.c
?????文件?????????316??2012-10-11?12:04??26?用AVR與1601LCD設計的計算器\LCD1601.h
?????文件????????2841??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\main.c
?????文件??????????13??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\main.eep
?????文件???????11210??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\main.elf
?????文件????????9615??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\main.hex
?????文件???????67760??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\main.lss
?????文件???????25309??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\main.lst
?????文件???????33942??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\main.map
?????文件???????11128??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\main.o
?????文件????????2954??2012-11-21?15:29??26?用AVR與1601LCD設計的計算器\main.sym
?????文件???????17507??2012-09-29?09:18??26?用AVR與1601LCD設計的計算器\Makefile
............此處省略2個文件信息
評論
共有 條評論