⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 example._c

📁 C语言单片机编程的代码及教程文献
💻 _C
字号:
/*********************************************************************
	微 雪 电 子   WaveShare   http://www.waveShare.net	

功能目的:   建立使用LCD1602的示例程序

目标系统:   基于AVR单片机

应用软件:   ICCAVR                                               

版    本:   Version 1.0

圆版时间:   2005-03-01

开发人员:   SEE

说    明:   若用于商业用途,请保留此段文字或注明代码来源 

	深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
*********************************************************************/

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
版本更新记录:

----------------------------------------------------------------------
接入模块: 
接口说明: 

----------------------------------------------------------------------
注意事项:
		
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/

#include <iom16v.h>
#include "D:\ICC_H\CmmICC.H"

/* lcd control and data port direction */
#define LCD_DDR_OUT {DDRA|= 0xF0;DDRD |= 0xE0;}

/* control port */
#define SET_RS  sbi(PORTD,5)
#define CLR_RS  cbi(PORTD,5)
#define SET_RW  sbi(PORTD,6)
#define CLR_RW  cbi(PORTD,6)
#define SET_E   sbi(PORTD,7)
#define CLR_E   cbi(PORTD,7)

/* data port */
#define SET_D4  sbi(PORTA,4)
#define CLR_D4  cbi(PORTA,4)
#define SET_D5  sbi(PORTA,5)
#define CLR_D5  cbi(PORTA,5)
#define SET_D6  sbi(PORTA,6)
#define CLR_D6  cbi(PORTA,6)
#define SET_D7  sbi(PORTA,7)
#define CLR_D7  cbi(PORTA,7)

/* busy port */
#define GET_BF	gbi(PINA,7)
#define OUT_BF	sbi(DDRA,7)
#define IN_BF	cbi(DDRA,7)

#include "D:\ICC_H\LCD1602_.H"

#define OUT_BUZ		sbi(DDRB,3)	   //PB3
#define BUZ_ON  	sbi(PORTB,3)
#define BUZ_OFF 	cbi(PORTB,3)

#define OUT_USERLED		sbi(DDRB,2)	   //PB2
#define USERLED_ON  	sbi(PORTB,2)
#define USERLED_OFF 	cbi(PORTB,2)

#define LED_DDR  		DDRC
#define LED_PORT 		PORTC

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};


void ledDisp()
{
 	 uint8 i,j;

 	 LED_PORT = 0XFF;
	 delay50ms(5);
	 LED_PORT = 0X00;
	 delay50ms(5);
	 LED_PORT = 0XFF;
	 delay50ms(5);
	 LED_PORT = 0X00;
	 delay50ms(5);	
	 LED_PORT = 0XAA;
	 delay50ms(5);
	 LED_PORT = 0X55;
	 delay50ms(5);	
	 LED_PORT = 0XAA;
	 delay50ms(5);
	 LED_PORT = 0X55;
	 delay50ms(5);	
	
		LED_DDR=0XFF;
	
		for(i=0;i<4;i++)
		{
			LED_PORT^=0xFF;
			delay50ms(5);
		}
		j=0x01;
		for(i=0;i<8;i++)
		{
			j<<=1;
			LED_PORT=j;
			delay50ms(5);
		}
		j=0x80;
		for(i=0;i<8;i++)
		{
			j>>=1;
			LED_PORT=j;
			delay50ms(5);
		}

}

/*--------------------------------------------------------------------
函数全称:
函数功能:
注意事项:
提示说明:
输    入:	
返    回:
--------------------------------------------------------------------*/
void main()
{
 	LCD_DDR_OUT;
	LCD1602_init();
	
	OUT_BUZ;
	OUT_USERLED;
	
	LED_DDR = 0XFF;

	while(1)
	{
		LCD1602_setCmd("CLR_SCR");
		delay50ms(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");
		delay50ms(10);
		LCD1602_puts(0xC2,"wavesahre.net");
		delay50ms(10);
		LCD1602_setCmd("CLR_SCR");
		delay50ms(10);
		LCD1602_puts(0xC2,"wavesahre.net");
		delay50ms(10);
		LCD1602_setCmd("CLR_SCR");
		delay50ms(10);
		LCD1602_puts(0xC2,"wavesahre.net");
		delay50ms(10);
	    ledDisp();
		
		BUZ_ON;
		delay50ms(20);
		BUZ_OFF;
		delay50ms(20);
		BUZ_ON;
		delay50ms(20);
		BUZ_OFF;
		delay50ms(20);
		
		USERLED_ON;
		delay50ms(20);
		USERLED_OFF;
		delay50ms(20);
		USERLED_ON;
		delay50ms(20);
		USERLED_OFF;
		delay50ms(20);		
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -