1602的CVAVR程序

发布者:sjp5035022最新更新时间:2016-10-30 来源: eefocus关键字:AVR程序 手机看文章 扫描二维码
随时随地手机看文章
// 1602显示字符

#include  
#include

#define lcd_bus    PORTA    // 数据总线
#define  rs        PORTC.0  // 数据&指令选择,H:写数据,L:写指令    
#define  rw        PORTC.1  // 读&写选择,H:read,L:write
#define  e         PORTC.2  // 读写使能
#define  bf        7        // 忙闲状态标志位,PORTA.7,H:内部正执行操作,L:空闲 
void chk_busy(void);        // 检测LCD忙闲
void init_lcd(void);        // LCD初始化
void wr_comm(unsigned char comm);   // 写指令
void wr_comm_no(unsigned char comm);// 写指令,不检测忙闲
void wr_data(unsigned char dat);    // 写数据
void wr_str(unsigned char flash *p);      // 显示字符串

void main()
{
  delay_ms(200);
  init_lcd();     //LCD初始化
  wr_comm(0x80);  //第一行第一个字符地址
  wr_str("lcd1602");
  wr_comm(0xc0); // 第二行第一个字符地址
  wr_str("Tai shan Dian Zi");
  while(1);
}
/*------------------LCD初始化-----------------*/
void init_lcd(void)
{  
  PORTA = 0xff;
  PORTC = 0xff;
  DDRC = 0xff;   // PC输出,控制线
  DDRA = 0xff;   // PA输出,数据线
  wr_comm_no(0x38);  //不检测忙闲
  delay_ms(5);
  wr_comm_no(0x38);
  delay_ms(5);
  wr_comm_no(0x38);
  delay_ms(5);
  wr_comm_no(0x38);
  delay_ms(5);
  wr_comm(0x38);  // 设定LCD为16*2显示,5*7点阵,8位数据接口,检测忙信号
  delay_us(11);   // 延时11us
  wr_comm(0x08);  // 关闭显示,检测忙信号
  delay_us(3);
  wr_comm(0x01);  // 显示清屏,检测忙信号
  delay_us(3);
  wr_comm(0x06);  // 显示光标自动右移,整屏不移动,检测忙信号
  delay_us(3);
  wr_comm(0x0c);  //开显示,不显示光标,检测忙信号
  delay_us(3);
}
/*--------------检测LCD忙闲---------------*/
void chk_busy(void)
{
  lcd_bus=0xff;
  rs=0;
  rw=1;
  ;
  e=1;
  DDRA &= ~(1<   delay_us(2); 
  while((PINA&(1<   e=0;  
  DDRA |= 1<   delay_us(2);
}
/*------------写命令到LCD--------------*/
void wr_comm(unsigned char comm)
{
  chk_busy();
  rs=0;//H:写数据,L:写指令
  rw=0;
  e=0;
  ;
  lcd_bus=comm;//内容
  delay_us(3);
  e=1;
  ;
  e=0;
}
/*------------写命令到LCD不检测忙闲--------------*/
void wr_comm_no(unsigned char comm)
{
  rs=0;//H:写数据,L:写指令
  rw=0;
  e=0;
  ;
  lcd_bus=comm;//内容
  delay_us(3);
  e=1;
  ;
  e=0;
}
/*------------写数据到LCD--------------*/
void wr_data(unsigned char dat)
{
  chk_busy();
  rs=1;//H:写数据,L:写指令
  rw=0;
  e=0;
  ;
  lcd_bus=dat;//内容
  delay_us(3);
  e=1;
  ;
  e=0;
}
/*-------------写字符串----------------*/
void wr_str(unsigned char flash *s)
{
   while(*s>0)   //字符串以0结束
   {
      wr_data(*s);
      s++;
   }
}

关键字:AVR程序 引用地址:1602的CVAVR程序

上一篇:AVR扩展4*4矩阵键盘的CVAVR程序
下一篇:AVR扩展4*4矩阵键盘的CVAVR程序2

推荐阅读最新更新时间:2024-03-16 15:18

AVR单片机串口接收与发送程序
#include iom16v.h //头文件,不同的编译器不一样 /*串口初始化函数*/ //使用同一个串口进行发送与接收,mega162具有双串口功能 void Uart_Init(void) { UCSRA = 0x02; /*倍速*/ UCSRB = 0x18; /*允许接收和发送*/ UCSRC = 0x06; /*8位数据*/ UBRRH = 0x00; UBRRL = 12; /*9600*/ } /*数据发送,查询方式*/ void Uart_Transmit(unsigned char i) { while (!(UCSRA & (1 UDRE))); /* 等待发送缓冲器为空*/ UDR
[单片机]
AVR单片机从左到右LED流水灯C语言程序
AVR单片机第一个实验,从左到右的LED流水灯C语言程序,编程环境是WinAVR,8MHZ晶振。 #include avr/io.h //相关库 #include util/delay.h typedef unsigned int uint; typedef unsigned char uchar; uchar const tab ={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; void main(void)//主函数 { PORTB=0xff;//PB口输出为高电平 DDRB=0xff;//高PB口为输出 uchar a;//定义变量 while(1)//无限
[单片机]
MSP430与DS18B20之1602显示
#include msp430x14x.h typedef unsigned char uchar; typedef unsigned int uint; /**************宏定义***************/ #define DataDir P4DIR #define DataPort P4OUT #define Busy 0x80 #define CtrlDir P3DIR #define CLR_RS P3OUT&=~BIT0; //RS = P3.0 #define SET_RS P3OUT|=BIT0; #define CLR_RW P3OUT&=~BIT1; //RW = P3.1
[单片机]
单片机驱动1602液晶电路图及c51程序
原理图: 1602液晶电路图 51单片机驱动程序: #include reg51.h #include intrins.h #define uint unsigned int #define uchar unsigned char //这三个引脚参考资料 sbit E=P2^7; //1602使能引脚 sbit RW=P2^6; //1602读写引脚 sbit RS=P2^5; //1602数据/命令选择引脚 void init() { TMOD=0X00; TH0=0X03; TL0=0X32; IE=0X82; TR0=1; } /********
[单片机]
单片机驱动<font color='red'>1602</font>液晶电路图及c51<font color='red'>程序</font>
AVR128的程序——外部中断
#include iom128v.h #include macros.h #define uchar unsigned char #define uint unsigned int void main(void) { uchar i,temp; DDRA = 0XFF; PORTA = 0XFF; DDRC = 0XFF; PORTC = 0XFF; DDRF |= 0X0E; PORTF |= 0X0E; PORTF &= 0xF8; DDRB |= 0
[单片机]
1602液晶测试程序1
程序如下: #include REGX52.H #define LCD_DB P0 sbit LCD_RS=P2^2; sbit LCD_RW=P2^3; sbit LCD_E=P2^4; //函数定义 #define uchar unsigned char #define uint unsigned int void LCD_init(void); //初始化 void LCD_write_command(uchar command); //写指令 void LCD_write_data(uchar dat); //写数据 void LCD_disp_char(uchar x,uchar y,uchar
[单片机]
<font color='red'>1602</font>液晶测试<font color='red'>程序</font>1
AVR单片机nRF24L01发送接收驱动程序
#include iom16v.h #include macros.h #include 12864.h //------------------------------------------------------------------------------ //spi标志 #define DDR_SPI DDRB #define DD_MOSI 5 #define DD_MISO 6 #define DD_SCK 7 #define DD_SS 4 #define CE PB3 #define IRQ PB2 //--------------------------------NRF24L01接口定义------
[单片机]
可自定义小时、分钟的1602闹钟程序
程序还是在原有基础上小修改了一下,去掉了星期显示,把原来整点闹钟改成了可自由设定小时+分钟的闹钟,其他的功能还是不变。 功能:时间,时分闹钟设置,上下限温度设置,温度显示。 闹钟可设置到分钟,响铃时间还是10秒钟。 可扩展功能:音乐响铃,一个星期中的任何一天闹钟设定,需要添加或者修改一下程序即可,程序只是简单的整理了一下,很多地方很乱,需要程序的朋友最好有较好的编程能力,否者很难理解程序的写作思维。 仿真图 完整的源代码下载: http://www.51hei.com/ziliao/file/1602_naoz.rar #include"reg51.h" #define uchar unsigned char #d
[单片机]
可自定义小时、分钟的<font color='red'>1602</font>闹钟<font color='red'>程序</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved