资源简介
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个文件信息
评论
共有 条评论