• 大小: 97KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-05-29
  • 语言: 其他
  • 标签: LCD计算器  

资源简介

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个文件信息

评论

共有 条评论

相关资源