/*-----------------------
TFT panel : 1.77" LG
Drive IC:ssd0144
Test mode:8 bit paraller interface 8080 MCU
DOT SIZE:128*160
Programed by:karlios
Date:2011-12-5
-------------------------*/
#include <reg51.h>
#include <intrins.h>
#define X_add 128
#define Y_add 160
#define WINDOW_XADDR 0x44 // Horizontal Start Address Set,DL SETTING START POSITION,DH SETTING END POSITION
#define WINDOW_YADDR 0x45 // Vertical Start Address Set,DL SETTING START POSITION,DH SETTING END POSITION
#define GRAM_ADDR 0x21 // GRAM Address Set,DL SETTING Horizontal Address,DH SETTING Vertical Address
// you can write initial GRAM address into internal Address Counter
#define GRAMWR 0x22 // memory write
#define uint unsigned int
#define uchar unsigned char
/**************************LCD color setting**************************/
//颜色由18为数据构成,每一基色由6bit组成 BBBBBBGGGGGGRRRRRR,最大可达64*64*64(62K)色
//在8位数据和16为数据口模式下DB0和DB9不使用,故颜色设置为BBBBBBGGXGGGRRRRRX,X表示无效位
//通常颜色中B、G、R的排列为RRRRRRGGGGGGBBBBBB,可通过初始化函数的命令修改如下
/*write_com(0x03); //ENTRY MODE
write_data(0x00); //BGR=1,颜色的顺序为BBBBBBGGGGGGRRRRRR;BGR=0,颜色的顺序为RRRRRRGGGGGGBBBBBB
write_data(0x30);
//液晶颜色定义
#define White 0xFFFF
#define Black 0x0000
#define Red 0x001F
#define Yellow 0x051F
#define Blue 0xF800
#define Magenta 0xF81F//紫色
#define Green 0x03E0
#define Green1 0x07E0//浅绿
#define Blue2 0x0FE0//浅蓝 */
/**************************TFT接口定义**************************/
//8位指令/数据口
//可以直接插接到北方蓝芯系列单片机实验仪的主板上的TFT接口排座上,第1PIN对齐,TFT接口排座上的16PIN空出
#define Data_port P1
#define nop _nop_()
sbit CS=P3^4;
sbit RST=P3^6;
sbit RS=P2^0;
sbit WR_=P2^1;
sbit RD_=P3^7;
/*void write_data(uchar in_data);
void write_com(uchar in_com);
void write_data_U16(uint y);
void delay(uint time);
void initial();
static void LCD_SetPos(unsigned char xSTART,unsigned char xEND,unsigned char ySTART,unsigned char yEND);
void ClearScreen(unsigned int bColor);// 清屏
void LCD_PutChar8x16(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor);
void LCD_PutChar(unsigned short x, unsigned short y, char c, unsigned int fColor, unsigned int bColor);
void PutGB1616(unsigned short x, unsigned short y, unsigned char c[2], unsigned int fColor,unsigned int bColor);
void LCD_PutString(unsigned short x, unsigned short y, unsigned char *s, unsigned int fColor, unsigned int bColor);
void delay1(unsigned char z)
{
int x, y;
for (x=z; x>0; x--)
for (y=110; y>0; y--);
}
unsigned char * change(unsigned int val)
{
int i=0, j=0;
unsigned char s[10], s1[10];
while (val > 0)
{
s[i] = val%10 + '0';
val /= 10;
i++;
}
while (i > 0)
{
s1[j++] = s[i-1];
i--;
}
s1[j] = '\0';
return s1;
}
void main(void)
{
unsigned int val = 0;
initial();
ClearScreen(Blue);
while (val >= 0)
{
LCD_PutString(8, 14, change(val), White, Blue);
val++;
if (val == 20)
{
val = 0;
ClearScreen(Blue);
LCD_PutString(8, 14, "0", White, Blue);
}
delay1(1000);
}
LCD_PutString(8,14,"www.hrbnbc.com",White,Blue);
LCD_PutString(15,16,"北方蓝芯科技",Magenta,Blue);
LCD_PutString(15,32,"开发有限公司",Magenta,Blue);
LCD_PutString(22,50,"I LOVE NBC ",Black,Blue);
LCD_PutString(10,68,"蓝芯科技",Green1,Blue);
LCD_PutString(50,84,"与您同行",Red,Blue);
LCD_PutString(20,100,"1234567890",Green,Blue);
LCD_PutString(10,114,"abcdefghijklm",Magenta,Blue);
LCD_PutString(10,128,"nopqrstuvwxyz",Magenta,Blue);
LCD_PutString(0,142,"`,./<>';:[]{}\|?)(",Yellow,Blue);
LCD_PutString(0,142,"`,./<>';:[]{}\|?)(-=+*&^%$",Yellow,Blue);
while(1);
} */
unsigned char jiaohuan(unsigned char DataPort1)
{
unsigned char DataPort;
unsigned char i,temp;
for(i=0;i<8;i++)
{
DataPort=DataPort<<1;
temp=DataPort1&0x01;
DataPort=DataPort|temp;
DataPort1=DataPort1>>1;
}
return DataPort;
}
uchar * strchange(uint dat)
{ //操作结果:把数字转换成字符串
uchar * ch;
switch (dat)
{
case 0: ch = "0"; break;
case 1: ch = "1"; break;
case 2: ch = "2"; break;
case 3: ch = "3"; break;
case 4: ch = "4"; break;
case 5: ch = "5"; break;
case 6: ch = "6"; break;
case 7: ch = "7"; break;
case 8: ch = "8"; break;
case 9: ch = "9"; break;
case 10: ch = "."; break;
}
return ch;
}
/*************************************************************
函数名称:delay
功 能:
参 数:无
返 回 值:无
*************************************************************/
void delay(uint time)
{
uint i;
while(time--)
for(i=0;i<10;i++);
}
/*************************************************************
函数名称:写数据/命令相关函数
功 能:
参 数:无
返 回 值:无
*************************************************************/
void write_data(uchar Data)//写8位数据
{
RS=1;
CS=0;
Data_port=Data;
WR_=0;
WR_=1;
CS=1;
}
void write_data_U16(uint y)//写16位数据
{
uchar m,n;
m=y>>8;
n=y;
write_data(m);
write_data(n);
}
void write_com(uchar Com)//写命令
{
RS=0;
CS=0;
Data_port=Com;
WR_=0;
WR_=1;
CS=1;
}
/*************************************************************
函数名称:TFT initial
功 能:tft控制寄存器初始化
参 数:无
返 回 值:无
*************************************************************/
void initial()
{
RST=0;
delay(10);
RST=1;
WR_=1;RD_=1;
write_com(0xb4);
write_data(0x00);
write_data(0x10);
write_com(0x07);
write_data(0x00);
write_data(0x00);
write_com(0x13);
write_data(0x00);
write_data(0x00);
delay(50);
write_com(0x12);
write_data(0x00);
write_data(0x71);
write_com(0x13);
write_data(0x08);
write_data(0x0b);
write_com(0x14);
write_data(0x59);
write_data(0xcf);
write_com(0x10);
write_data(0x19);
write_data(0x10);
write_com(0x01);
write_data(0x01);
write_data(0x14);
write_com(0x02);
write_data(0x01);
write_data(0x00);
write_com(0x03); //ENTRY MODE
write_data(0x10); //BGR=1,颜色的顺序为BBBBBBGGGGGGRRRRRR;BGR=0,颜色的顺序为RRRRRRGGGGGGBBBBBB
write_data(0x30);
write_com(0x08); //
write_data(0x03);
write_data(0x02);
write_com(0x0b); //FRAME CYCLE CONTROL
write_data(0x00);
write_data(0x00);
write_com(0x0c); //
write_data(0x00);
write_data(0x02);
delay(50);
write_com(0x30); //
write_data(0x00);
write_data(0x00);
write_com(0x31); //
write_data(0x06);
write_data(0x05);
write_com(0x32); //
write_data(0x00);
write_data(0x07);
write_com(0x33); //
write_data(0x06);
write_data(0x00);
write_com(0x34); //
write_data(0x02);
write_data(0x04);
write_com(0x35); //
write_data(0x00);
write_data(0x02);
write_com(0x36); //
write_data(0x07);
write_data(0x07);
write_com(0x36); //
write_data(0x07);
write_data(0x07);
write_com(0x37); //
write_data(0x00);
write_data(0x00);
write_com(0x38); //
write_data(0x0f);
write_data(0x00);
write_com(0x11); //
write_data(0x00);
write_data(0x0f);
write_com(0x40); //
write_data(0x00);
write_data(0x00);
write_com(0x42); //
write_data(0x9f);
write_data(0x00);
write_com(0x43); //
write_data(0x9f);
write_data(0x00);
write_com(0x44); //
write_data(0x7f);
write_data(0x00);
write_com(0x45); //
write_data(0x9f);
write_data(0x00);
没有合适的资源?快使用搜索试试~ 我知道了~
基于51单片机的出租车计费器
共37个文件
zip:4个
lst:4个
obj:4个
需积分: 34 39 下载量 25 浏览量
2015-08-01
11:02:56
上传
评论 5
收藏 352KB ZIP 举报
温馨提示
基于51单片机的出租车计费器,包含了程序代码,电路原理图,论文报告,元件清单
资源推荐
资源详情
资源评论
收起资源包目录
51出租车计费器.zip (37个子文件)
51出租车计费器
电路图——出租车计费器
History
chuzuche.~(5).SchDoc.Zip 22KB
PCB_Project1.~(2).PrjPCB.Zip 4KB
PCB_Project1.~(1).PrjPCB.Zip 4KB
chuzuche.~(1).SchDoc.Zip 1KB
chuzuche.SchDocPreview 49KB
PCB_Project1.PrjPCB 30KB
chuzuche.SchDoc 202KB
Project Logs for PCB_Project1
chuzuche SCH ECO 2013-3-13 16-04-05.LOG 1KB
出租车计费器.docx 149KB
元件清单.xlsx 10KB
程序——出租车计费器
S6D0144_8bit.LST 21KB
main.OBJ 34KB
S6D0144_8bit.OBJ 53KB
ds1302.h 469B
ds1302.OBJ 14KB
chuzuche_jifei_uvopt.bak 10KB
main.c 10KB
chuzuche_jifei.uvproj 13KB
STARTUP.LST 14KB
8x16.h 25KB
main.LST 29KB
chuzuche_jifei.lnp 102B
chuzuche_jifei.plg 206B
GB1616.h 17KB
S6D0144_8bit.h 1KB
chuzuche_jifei.uvgui_zhaojun.bak 68KB
chuzuche_jifei 88KB
S6D0144_8bit.c 11KB
STARTUP.A51 6KB
chuzuche_jifei.uvgui.zhaojun 68KB
ds1302.c 3KB
chuzuche_jifei.uvopt 59KB
chuzuche_jifei.M51 53KB
chuzuche_jifei_uvproj.bak 13KB
STARTUP.OBJ 749B
ds1302.LST 8KB
chuzuche_jifei.hex 23KB
共 37 条
- 1
资源评论
whyalwaysmea
- 粉丝: 167
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功