ATmega16L驱动ILI9325/9328

这篇博客详细介绍了如何使用ATmega16L微控制器连接并驱动ILI9325或ILI9328液晶显示模块。硬件连接包括PB口作为数据总线,PA0、PA1、PA2和PA3分别用于复位、片选、寄存器选择和写/读信号。同时,文章提到了一系列头文件如Type.h、USART.h、Delay.h、LCDDriver.h和LCD_Font.h,分别定义数据变量、串口操作、延时函数、LCD驱动和字体库。Delay.c和USART.c是这些功能的具体实现,而main.c作为主函数进行测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   首先是硬件连线:PB----8位数据口

                                   PA0--- 复位信号RESET

                                   PA1---片选CS

                                   PA2----寄存器选择信号RS

                                   PA3---写信号WR

                                   PA4---读信号RD


文件名:Type.h,主要定义一些数据变量的别名

/****************************************Copyright (c)************************************************** 
**                               	Southeast University                            
**--------------File Info------------------------------------------------------------------------------- 
** File Name:          Type.h 
** Last modified Date: 2012-03-23
** Last Version:       1.0 
** Description:        定义数据类型别名
**------------------------------------------------------------------------------------------------------ 
** Created By:         JianGe
** Created date:       2012-03-23
** Version:            1.0 
**------------------------------------------------------------------------------------------------------ */
 
#ifndef  __TYPE_H__ 
#define  __TYPE_H__ 
 
/******************************************************************************************************** 
*                       Date types(Compiler specific)  数据类型(和编译器相关)                         *                  
********************************************************************************************************/ 
typedef unsigned char  uint8;          // Unsigned  8 bit quantity  无符号8位整型变量
typedef unsigned char  uchar;          // Unsigned  8 bit quantity  无符号8位整型变量       
typedef signed   char  int8;           // Signed    8 bit quantity  有符号8位整型变量 
typedef unsigned short uint16;         // Unsigned 16 bit quantity  无符号16位整型变量 
typedef signed   short int16;          // Signed   16 bit quantity  有符号16位整型变量  
typedef unsigned int   uint32;         // Unsigned 32 bit quantity  无符号32位整型变量
typedef unsigned int   uint;         // Unsigned 32 bit quantity  无符号32位整型变量  
typedef signed   int   int32;          // Signed   32 bit quantity  有符号32位整型变量 
typedef float           fp32;          // Single precision floating point 单精度浮点数(32位长度)     
typedef double          fp64;          // Double precision floating point 双精度浮点数(64位长度)   
 
#ifndef TRUE 
#define TRUE  1 
#endif 
 
#ifndef FALSE 
#define FALSE 0 
#endif 
 
#ifndef NULL 
#define NULL  0 
#endif 
 
 
 
#endif 
/********************************************************************************************************* 
*                                        End Of File                                                     * 
*********************************************************************************************************/ 


文件名:USART.h,串口操作函数的声明

/****************************************Copyright (c)************************************************** 
**                               	Southeast University                            
**--------------File Info------------------------------------------------------------------------------- 
** File Name:          USART.h 
** Last modified Date: 2012-03-23
** Last Version:       1.0 
** Description:        串口函数声明
**------------------------------------------------------------------------------------------------------ 
** Created By:         JianGe
** Created date:       2012-03-23
** Version:            1.0 
**------------------------------------------------------------------------------------------------------ */
#ifndef _USART_H
#define _USART_H

#include "Type.h"

#define BAUD 9600  //波特率设置
#define CRYSTAL  4000000  //11059200   //晶振频率 
#define BAUD_SET (uint16)((uint32)CRYSTAL/(16*(uint32)BAUD)-1)
#define BAUD_H  (uint8)(BAUD_SET>>8)
#define BAUD_L  (uint8)(BAUD_SET)

#define FE_EER BIT(FE)   //帧接收错误
#define PE_EER BIT(PE)	//校验错误
#define DATA_OVER BIT(DOR)  //接收溢出错误
#define UDR_EMPTY BIT(UDRE)	//数据寄存器空
#define USAT_TX_EN UCSRB|=BIT(TXEN)    //使能USART发送
#define USAT_TX_NO_EN UCSRB&=~BIT(TXEN)
#define USAT_RX_EN UCSRB|=BIT(RXEN)    //使能USART接收
#define USAT_RX_NO_EN UCSRB&=~BIT(RXEN)

extern void USART_Init(void);
extern void Uart_Transmit(unsigned char i);
extern unsigned char Uart_Receive( void );

#endif
/********************************************************************************************************* 
*                                        End Of File                                                     * 
*********************************************************************************************************/ 
 


文件名:Delay.h,延时函数的声明

/****************************************Copyright (c)************************************************** 
**                               	Southeast University                            
**--------------File Info------------------------------------------------------------------------------- 
** File Name:          Delay.h
** Last modified Date: 2012-03-23
** Last Version:       1.0 
** Description:        延时函数声明
**------------------------------------------------------------------------------------------------------ 
** Created By:         JianGe
** Created date:       2012-03-23
** Version:            1.0 
**------------------------------------------------------------------------------------------------------ */
# ifndef DELAY_H_H_
# define DELAY_H_H_

# define 	DELAY_US		asm("nop"); asm("nop"); asm("nop"); asm("nop");\
									asm("nop"); asm("nop"); asm("nop"); asm("nop");
									
extern void Delay_nUS(unsigned int n);
extern void Delay_MS(void);
extern void Delay_nMS(unsigned int n);

# endif

/********************************************************************************************************* 
*                                        End Of File                                                     * 
*********************************************************************************************************/ 


 

文件名:LCDDriver.h,LCD驱动函数和应用函数的声明

/****************************************Copyright (c)************************************************** 
**                               	Southeast University                            
**--------------File Info------------------------------------------------------------------------------- 
** File Name:          LCD_Driver.h 
** Last modified Date: 2012-03-24
** Last Version:       1.0 
** Description:        LCD驱动函数声明
**------------------------------------------------------------------------------------------------------ 
** Created By:         JianGe
** Created date:       2012-03-24
** Version:            1.0 
**------------------------------------------------------------------------------------------------------ */
# ifndef LCD_DRIVER_H_H_
# define LCD_DRIVER_H_H_

# include "Type.h"
# include <iom16v.h>


extern void LCD_Port_Init(void);
extern void LCD_WriteCmd(uint32 regID);
extern void LCD_WriteData(uint32 data);
extern void LCD_WriteReg(uint32 regID, uint32 regData);
extern unsigned int LCD_ReadReg(uint32 regID);
extern void LCD_ILI9325_Init(void);
extern void LCD_SetWindow(unsigned int x0, unsigned int x1, unsigned int y0, unsigned int y1);
extern void LCD_ClearScreen(unsigned int color);
extern void LCD_Fill_Rectangle(unsigned int x0,unsigned int y0,unsigned int x1,unsigned int y1,unsigned int color);
extern unsigned char Get_CharOffset(unsigned char char_data);
extern void Set_CharWindow(unsigned int lineNum, unsigned
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值