//公司:北方蓝芯科技开发有限公司
//网址:www.hrbnbc.com
/*===================================================================================================
文件功能描述:320x240TFT驱动程序,控制TFT实现汉字,字符显示,画点功能。
====================================================================================================*/
//******************包含头文件***************************
#include"NBCTFT.h"
#include"reg52.h"
//**************控制端口定义********************
#define DataPort P0 //数据口使用DataPort
sbit RS =P2^5; //数据/命令选择
sbit RW =P2^4; //写数据/命令
sbit nRD =P2^3; //读控制
sbit CS =P2^2; //片选
sbit RES =P2^1; //复位
sbit LE =P2^0; //74HC573锁存控制
//**************声明外部函数和变量**************
extern unsigned int Device_code;
//================================================================================================
// 实现功能: 延时
// 输入参数: count 设置延时时间
//================================================================================================
void delayms(unsigned int count)
{
int i,j;
for(i=0;i<count;i++)
{
for(j=0;j<255;j++);
}
}
//================================================================================================
// 实现功能: 写命令
// 输入参数: DH 需要输入16bits命令的高8位
// DL 需要输入16bits命令的低8位
//================================================================================================
void Write_Cmd(unsigned char DH,unsigned char DL)
{
CS=0;
RS=0;
nRD=1;
RW=0;
//注意:当使用8位数据口驱动16位数据模式时,使用74HC573作为IO扩展,程序如下
DataPort=DL; //送低8位命令给573待锁存
LE=1; //锁存位
LE=0; //断开锁存,位选573的Q7~Q0仍保持
DataPort=DH; //送高8位命令给TFT
/*
//如果使用16位数据口驱动16位数据模式,则无需IO扩展,直接将数据送到数据口即可
DataPort_L=DL;
DataPort_H=DH;
*/
RW=1;
CS=1;
}
//================================================================================================
// 实现功能: 写数据(2*8bits)
// 输入参数: DH 需要输入16bits数据的高8位
// DL 需要输入16bits数据的低8位
//================================================================================================
void Write_Data(unsigned char DH,unsigned char DL)
{
CS=0;
RS=1;
//注意:当使用8位数据口驱动16位数据模式时,使用74HC573作为IO扩展,程序如下
DataPort=DL; //送低8位数据给573待锁存
LE=1; //锁存位
LE=0; //断开锁存,位选573的Q7~Q0仍保持
DataPort=DH; //送高8位数据给TFT
/*
//如果使用16位数据口驱动16位数据模式,则无需IO扩展,直接将数据送到数据口即可
DataPort_L=DL;
DataPort_H=DH;
*/
RW=0;
RW=1;
CS=1;
}
//================================================================================================
// 实现功能: 写数据(16位)
// 输入参数: y 需要输入16bits数据
//================================================================================================
void Write_Data_U16(unsigned int y)
{
unsigned char m,n;
m=y>>8;
n=y;
Write_Data(m,n);
}
//================================================================================================
// 实现功能: 向x寄存器写入y数据
// 输入参数: x 需要输入的命令 16位
// y 需要输入的数据 16位
//================================================================================================
void Write_Cmd_Data (unsigned char x,unsigned int y)
{
unsigned char m,n;
m=y>>8;
n=y;
Write_Cmd(0x00,x);
Write_Data(m,n);
}
//================================================================================================
// 实现功能: TFT清屏
// 输入参数: bColor 清屏所使用的背景色
//================================================================================================
void CLR_Screen(unsigned int bColor)
{
unsigned int i,j;
LCD_SetPos(0,240,0,320);//320x240
for (i=0;i<320;i++)
{
for (j=0;j<240;j++)
Write_Data_U16(bColor);
}
}
//================================================================================================
// 实现功能: 显示Ascii字符
// 输入参数: x 横坐标
// y 纵坐标
// c 需要显示的字符
// fColor 字符颜色
// bColor 字符背景颜色
//================================================================================================
#include "Ascii_8x16.h"
void LCD_PutChar(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor)
{
unsigned int i,j;
LCD_SetPos(x,x+8-1,y,y+16-1); //设置字符显示位置
for(i=0; i<16;i++) { //循环写入16字节,一个字符为16字节
unsigned char m=Font8x16[(c-0x20)*16+i]; //提取c字符的第i个字节以,c减去0x20是由于Ascii码库中的0~1f被去掉
for(j=0;j<8;j++) { //循环写入8位,一个字节为8位
if((m&0x80)==0x80) { //判断最高位是否为1
Write_Data_U16(fColor); //最高位为1,写入字符颜色
}
else {
Write_Data_U16(bColor); //最高位为0,写入背景颜色
}
m<<=1; //左移1位,准备写下一位
}
}
}
//================================================================================================
// 实现功能: 显示16x16汉字
// 输入参数: x 横坐标
// y 纵坐标
// g 需要显示的字符编码
// fColor 字符颜色
// bColor 字符背景颜色
//================================================================================================
#include "chinese.h" //包含16*16汉字字模
void Put16x16(unsigned short x, unsigned short y, unsigned char g[2], unsigned int fColor,unsigned int bColor)
{
unsigned int i,j,k;
LCD_SetPos(x, x+16-1,y, y+16-1); //设置汉字显示位置
for (k=0;k<64;k++) //循环64次,查询汉字字模位置
{
if ((ch16[k].GBK[0]==g[0])&&(ch16[k].GBK[1]==g[1])) //判断第k个汉字的编码是否与输入汉字g[2]相等
{
for(i=0;i<32;i++) //如果相等,既已找到待显示字模位置,循环写入32字节
{
unsigned short m=ch16[k].hz16[i]; //读取32字节中的第i字节
for(j=0;j<8;j++) //循环写入8位数据
{
if((m&0x80)==0x80) Write_Data_U16(fColor); //判断最高位是否为1,最高位为1,写入字符颜色
else Write_Data_U16(bColor); //最高位为0,写入背景颜色
m<<=1; //左移1位,准备写下一位
}
}
}
}
}
//================================================================================================
// 实现功能: 显示中英文字符串
// 输入参数: x 横坐标
// y 纵坐标
// *s 待显示的字符串,例如LCD_PutString(24,16,"123蓝芯",White,Blue);即把"123蓝芯"的第一个字符地址赋给指针变量s.
// bColor 字符背景颜色
//================================================================================================
void LCD_PutString(unsigned short x, unsigned short y, unsigned char *s, unsigned int fColor, unsigned int bColor)
{
unsigned char l=0; //显示屏位置增量
while(*s)
{
if( *s < 0x80) //判断s指向的字符串中的某字符的编码值是否小于128,如果小于,即为ASCII字符
{
LCD_PutChar(x+l*8,y,*s,fColor,bColor);//显示该字符
s++;l++; //指针加1,位置加1
}
else
{
Put16x16(x+l*8,y,(unsigned char*)s,fColor,bColor);//�
没有合适的资源?快使用搜索试试~ 我知道了~
ds1302 在TFT液晶屏上显示
共26个文件
bak:5个
c:3个
lst:3个
5星 · 超过95%的资源 需积分: 10 15 下载量 191 浏览量
2012-10-25
13:10:47
上传
评论 2
收藏 88KB ZIP 举报
温馨提示
ds1302 时钟在2.8寸TFT液晶模块上显示 包含好多 函数 画线、圆、图片
资源推荐
资源详情
资源评论
收起资源包目录
ds1302在TFT上显示.zip (26个子文件)
ds1302在TFT上显示
Ex1.Opt 1KB
Ex1 44KB
Ex1.plg 177B
Ex1.uvopt 59KB
Ex1.hex 14KB
Ex1_Opt.Bak 2KB
ds1302.OBJ 12KB
NBCTFT.H 3KB
ds1302.c 7KB
Ex1_Uv2.Bak 2KB
Ex1_uvproj.bak 14KB
Ex1.Uv2 2KB
Ascii_8x16.h 16KB
chinese.h 5KB
main.LST 5KB
Ex1.opt.bak 2KB
Ex1.uvproj 14KB
NBCTFT.LST 35KB
Ex1_uvopt.bak 59KB
NBCTFT.OBJ 34KB
NBCTFT.C 22KB
ds1302.LST 10KB
main.OBJ 5KB
Ex1.lnp 69B
Ex1.M51 35KB
main.c 3KB
共 26 条
- 1
资源评论
- dongjiren20092013-04-29TINGHAODE 挺好的资料,有帮助
lian123
- 粉丝: 33
- 资源: 22
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功