“AVR LCD1602 程序”的版本间的差异

来自丢石头百科
(目 的: 建立LCD1602操作库 目标系统: 基于AVR单片机 应用软件: ICCAVR)
 
(文本替换 - 替换“www.waveshare.net”为“{{SERVERNAME}}”)
第3行: 第3行:
  
 
/*********************************************************************
 
/*********************************************************************
 微 雪 电 子   WaveShare   <a class="Blue_2_12px_" href="http://www.waveshare.net/" style="color: rgb(7, 66, 184);">http://www.waveShare.net
+
 微 雪 电 子   WaveShare   <a class="Blue_2_12px_" href="http://{{SERVERNAME}}/" style="color: rgb(7, 66, 184);">http://www.waveShare.net
 
             
 
             
 
目    的:   建立LCD1602操作库
 
目    的:   建立LCD1602操作库

2019年11月19日 (二) 09:22的版本

<tbody></tbody>

/*********************************************************************  微 雪 电 子   WaveShare   <a class="Blue_2_12px_" href="http://wiki.diustou.com/" style="color: rgb(7, 66, 184);">http://www.waveShare.net               目    的:   建立LCD1602操作库 目标系统:   基于AVR单片机                                                  应用软件:   ICCAVR                                                       版    本:   Version 1.0                                                        圆版时间:   2005-06-25 开发人员:   SEE 说    明:   若用于商业用途,请保留此段文字或注明代码来源   深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权     

                                                                                                                                          • /

/*01010101010101010101010101010101010101010101010101010101010101010101


版本更新记录:


实验内容: 初始化、读写Lcd1602。


硬件连接: 将Lcd1602插入主板的Lcd1602插槽, 使用连接线将LCD1602的引针接口连接到MCU: //LCD1602,4位接口,即使用D4-D7数据口,D0-D3不接入MCU //PIN1 --- GND //PIN2 --- VCC //PIN3 --- V0 //PIN4 --- RS --- PB5 //PIN5 --- R/W --- PB6 //PIN6 --- E --- PB7 //PIN7 --- D0 //PIN8 --- D1 //PIN9 --- D2 //PIN10 --- D3 //PIN11 --- D4 --- PD4 //PIN12 --- D5 --- PD5 //PIN13 --- D6 --- PD6 //PIN14 --- D7 --- PD7 //PIN15 --- VCC //PIN16 --- GND


注意事项:  (1)若有加载库函数,请将光盘根目录下的“库函数”下的“ICC_H”文件夹拷到D盘 (2)请详细阅读“使用必读”及相关资料。


10101010101010101010101010101010101010101010101010101010101010101010*/

  1. include <iom16v.h>
  2. include "D:\ICC_H\CmmICC.H"</iom16v.h>

/* control port */

  1. define SET_RS sbi(PORTB,5)
  2. define CLR_RS cbi(PORTB,5)
  3. define OUT_RS sbi(DDRB,5)
  4. define SET_RW sbi(PORTB,6)
  5. define CLR_RW cbi(PORTB,6)
  6. define OUT_RW sbi(DDRB,6)
  7. define SET_E sbi(PORTB,7)
  8. define CLR_E cbi(PORTB,7)
  9. define OUT_E sbi(DDRB,7)

/* data port */

  1. define SET_D4 sbi(PORTD,4)
  2. define CLR_D4 cbi(PORTD,4)
  3. define OUT_D4 sbi(DDRD,4)
  4. define SET_D5 sbi(PORTD,5)
  5. define CLR_D5 cbi(PORTD,5)
  6. define OUT_D5 sbi(DDRD,5)
  7. define SET_D6 sbi(PORTD,6)
  8. define CLR_D6 cbi(PORTD,6)
  9. define OUT_D6 sbi(DDRD,6)
  10. define SET_D7 sbi(PORTD,7)
  11. define CLR_D7 cbi(PORTD,7)
  12. define OUT_D7 sbi(DDRD,7)

/* busy port */

  1. define GET_BF gbi(PIND,7)
  2. define OUT_BF sbi(DDRD,7)
  3. define IN_BF cbi(DDRD,7)
  4. include "D:\ICC_H\LCD1602_.H"

const uint8 userCh0[8]={0x10,0x1f,0x01,0x02,0x04,0x08,0x10,0x1f}; const uint8 userCh1[8]={0x00,0x08,0x0f,0x01,0x02,0x04,0x08,0x0f}; const uint8 userCh2[8]={0x00,0x00,0x04,0x07,0x01,0x02,0x04,0x07}; /*-------------------------------------------------------------------- 函数全称:LCD1602 函数功能: 注意事项: 提示说明: 输 入:  返 回:


*/

void main() { LCD1602_init(); while(1) { LCD1602_puts(0xC6,"Sleeping"); delay50ms(5); LCD1602_setCmd("CLR_SCR"); delay50ms(5); LCD1602_puts(0xC6,"Sleeping"); delay50ms(5); LCD1602_setCmd("CLR_SCR"); delay50ms(5); LCD1602_puts(0xC6,"Sleeping"); delay50ms(5); LCD1602_setCGRAM(CGRAM0,userCh0); //Set CGRAM0' data LCD1602_setCGRAM(CGRAM1,userCh1); //Set CGRAM1' data LCD1602_setCGRAM(CGRAM2,userCh2); //Set CGRAM2' data

LCD1602_putc(0x84,CGRAM2); //putc to 0x84 by CGRAM2' data delay50ms(10); LCD1602_putc(0x83,CGRAM1); //putc to 0x83 by CGRAM1' data delay50ms(12); LCD1602_putc(0x82,CGRAM0); //putc to 0x84 by CGRAM0' data delay50ms(14); LCD1602_setCmd("CLR_SCR"); } }