#include "reg51.h"
#include "stdio.h"
#define uchar unsigned char
//==============================================================//
sbit CS =P2^2;
sbit RS =P2^4;
sbit Rw =P2^5;
sbit Rd =P2^6;
sbit RST=P2^1;
sbit PAUSE=P1^4;
sbit key1=P3^0;
sbit key2=P3^1;
sbit key=P3^2;
unsigned int cursor_on;
//=====================================================================//
void Delayms(int) ;//廷时子程序
void WriteDAT(unsigned char a,unsigned char b);
void WriteCOM(unsigned char b);
void WriteDAT1(unsigned char b);
void Ini_ILI9163(void);
unsigned char code pic[];
void show_photo(void);
void pause(void);
void SleepOut(void);
void SleepIn(void);
void display_hb(void);
void Put_pixel(uchar x,uchar y,unsigned int color);
void Line(uchar X0,uchar Y0, uchar X1,uchar Y1, unsigned int color);
void Rectangle( uchar left,uchar top,uchar right,uchar bottom,unsigned int color);
void grayscale(void);
void displayshow(void);
void display_dot(unsigned char d1,unsigned char d2);
void Bar(uchar left,uchar top,uchar right,uchar bottom,unsigned int color);
//=======================延时程序========================//
void Delayms(int count) // x 10ms
{
int i,j;
for(i=0;i<count;i++)
for(j=0;j<500;j++);
}
//======================== 按键测试 ======================//
void pause()
{
while(PAUSE);
}
//=========================写寄存器ID的子程序===========================//
void WriteCOM(unsigned char b)
{
RS=0;
CS=0;
Rd=1;
P0=0x00;
Rw=0;
Rw=1;
P0=b;
Rw=0;
Rw=1;
RS=1;
CS=1;
}
//==========================写数据的子程序==============================//
void WriteDAT(unsigned char a,unsigned char b)
{
RS=1;
CS=0;
Rd=1;
P0=a;
Rw=0;
Rw=1;
P0=b;
Rw=0;
Rw=1;
RS=0;
CS=1;
}
void WriteDAT1(unsigned char b)
{
RS=1;
CS=0;
Rd=1;
P0=b;
Rw=0;
Rw=1;
RS=0;
CS=1;
}
void Write_Data_U16(unsigned int y)
{
unsigned char m,n;
m=y>>8;
n=y;
WriteDAT(m,n);
}
//=========================== IC ILI9163初始化=======================================//
void Ini_ILI9163(void)
{
RST=1;
Delayms(10);
RST=0;
Delayms(10);
RST=1;
Delayms(10);
WriteCOM(0x11);//退出睡眠模式
Delayms(10);
WriteCOM(0x26);// Gammut format 伽马曲线设置
WriteDAT1(0x04);// 04h GC3 Gammut 2.2
// 01h GC1 Gammut 1.0 , 02h GC2 gammut 1.8, 08h GC3 Gammut 2.5
Delayms(10);
WriteCOM(0xB1); //帧频控制
WriteDAT1(0x06);
WriteDAT1(0x08);
WriteDAT1(0x09);
WriteCOM(0xC0); //电源控制
WriteDAT1(0x04);
WriteDAT1(0x00);
WriteCOM(0xC1); //电源控制
WriteDAT1(0x07);
WriteCOM(0xC5); //偏压控制
WriteDAT1(0x4c); //vcom control 0x48,0x24 34 //2b
WriteDAT1(0x38); //vcom control 0x48,0x24 50 //47
WriteCOM(0xC7); //偏压控制
WriteDAT1(0x40); //C4
Delayms(10);
WriteCOM(0x3A);// Interface Pixel mode
WriteDAT1(0x05);// 05 16 bit/Pixel RGB 53-35 Twice per pixel for 80-8bits parallel
// 06 18 bit/Pixel RGB 6-6-6 Three times per pixel for 80-8bits parallel
WriteCOM(0x36); //扫描方向控制
WriteDAT1(0xA8); //
WriteCOM(0xB7);
WriteDAT1(0x00); //
WriteCOM(0xF2);
WriteDAT1(0x01);
Delayms(10);
// t Gamma
WriteCOM(0xE0);// Positive 05
WriteDAT1(0x09);//1
WriteDAT1(0x16);//2
WriteDAT1(0x09);//3
WriteDAT1(0x27);//4
WriteDAT1(0x2e);//5
WriteDAT1(0x25);//6
WriteDAT1(0x1c);//7
WriteDAT1(0x20);//8
WriteDAT1(0x1e);//9
WriteDAT1(0x1a);//10
WriteDAT1(0x24);//11
WriteDAT1(0x2d);//12
WriteDAT1(0x04);//13
WriteDAT1(0x05);//14
WriteDAT1(0x02);//15
WriteDAT1(0x0e);//16
WriteCOM(0xE1); // Negative
WriteDAT1(0x0b);//1
WriteDAT1(0x14);//2
WriteDAT1(0x09);//3
WriteDAT1(0x26);//4
WriteDAT1(0x27);//5
WriteDAT1(0x22);//6
WriteDAT1(0x1c);//7
WriteDAT1(0x20);//8
WriteDAT1(0x1d);//9
WriteDAT1(0x1a);//10
WriteDAT1(0x25);//11
WriteDAT1(0x2d);//12
WriteDAT1(0x06);//13
WriteDAT1(0x06);//14
WriteDAT1(0x02);//15 //////
WriteDAT1(0x0f);//16
WriteCOM(0x29); //Display on
Delayms(10);
WriteCOM(0x2C); //write to RAM
}
//=======================================写地址====================================//
void addr(void)
{
WriteCOM(0x2a); //Colulm addRSTs set
WriteDAT1(0x00);
WriteDAT1(0x00);
WriteDAT1(0x00);
WriteDAT1(159);
WriteCOM(0x2b); //Colulm addRSTs set
WriteDAT1(0x00);
WriteDAT1(0x00);
WriteDAT1(0x00);
WriteDAT1(128);
WriteCOM(0x2C); //Write Data to GRAM
}
static void LCD_SetPos(unsigned int x0,unsigned int x1,unsigned int y0,unsigned int y1)
{
WriteCOM(0x2A); //Colulm addRSTs set
WriteDAT1(x0>>8);
WriteDAT1(x0);
WriteDAT1(x1>>8);
WriteDAT1(x1);
WriteCOM(0x2B); //Colulm addRSTs set
WriteDAT1(y0>>8);
WriteDAT1(y0);
WriteDAT1(y1>>8);
WriteDAT1(y1);
WriteCOM(0x2C); //Write Data to GRAM
}
//=======================灰度===========================================//
void grayscale(void)
{
unsigned char data c,s;
addr();
for(c=0;c<80;c++)//128/2个点=64
{
for(s=0;s<8;s++){WriteDAT(0xff,0xff);}
for(s=0;s<8;s++){WriteDAT(0xef,0x7d);}
for(s=0;s<8;s++){WriteDAT(0xd6,0x9a);}
for(s=0;s<8;s++){WriteDAT(0xc6,0x18);}
for(s=0;s<8;s++){WriteDAT(0xb5,0x96);}
for(s=0;s<8;s++){WriteDAT(0xa5,0x14);}
for(s=0;s<8;s++){WriteDAT(0x94,0x92);}
for(s=0;s<8;s++){WriteDAT(0x84,0x10);}
for(s=0;s<8;s++){WriteDAT(0x73,0x8e);}
for(s=0;s<8;s++){WriteDAT(0x63,0x0c);}
for(s=0;s<8;s++){WriteDAT(0x52,0x8a);}
for(s=0;s<8;s++){WriteDAT(0x42,0x08);}
for(s=0;s<8;s++){WriteDAT(0x31,0x86);}
for(s=0;s<8;s++){WriteDAT(0x21,0x04);}
for(s=0;s<8;s++){WriteDAT(0x10,0x82);}
for(s=0;s<8;s++){WriteDAT(0x00,0x00);}
}
for(c=0;c<20;c++)
{
for(s=0;s<64;s++){WriteDAT(0xff,0xff);}
for(s=0;s<64;s++){WriteDAT(0x00,0x00);}
}
for(c=0;c<40;c++)
{
for(s=0;s<16;s++) {WriteDAT(0xff,0xff);}
for(s=0;s<32;s++) {WriteDAT(0xd6,0x9a);}
for(s=0;s<16;s++) {WriteDAT(0xff,0xff);}
for(s=0;s<16;s++) {WriteDAT(0x00,0x00);}
for(s=0;s<32;s++) {WriteDAT(0x21,0x04);}
for(s=0;s<16;s++) {WriteDAT(0x00,0x00);}
}
for(c=0;c<20;c++)
{
for(s=0;s<64;s++){WriteDAT(0xff,0xff);}
for(s=0;s<64;s++){WriteDAT(0x00,0x00);}
}
Delayms(200);//廷时大约2S
}
//======================================显示===================================//
void displayshow(void)
{
unsigned char data i,c,s;
addr( );
for(i=0;i<80;i++)
{
for(c=0;c<1;c++)
{
for(s=0;s<64;s++) {WriteDAT(0x00,0x00); WriteDAT(0xff,0xff);}
}
for(c=0;c<1;c++)
{
for(s=0;s<64;s++) {WriteDAT(0xff,0xff);WriteDAT(0x00,0x00);}
}
}
Delayms(200);//廷时大约2S
}
//===============================显示点=======================================//
void display_dot(unsigned char d1,unsigned char d2)
{
unsigned int c,s;
addr();
for(c=0;c<128;c++)
{for(s=0;s<160;s++)
{
WriteDAT(d1,d2);
}
}
Delayms(200);//廷时大约2S
}
/*-----------------------------------------------------------------
* 函数名:Put_pixel
* 功能:在屏幕上画点
* 输入参数:坐标x,y
* color颜色
* 输出参数:无
----------------------------------------------------------------*/
void Put_p
没有合适的资源?快使用搜索试试~ 我知道了~
stc89c54rd.rar_STC89C54RD
共235个文件
lst:30个
bak:30个
obj:29个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 89 浏览量
2022-09-14
18:03:41
上传
评论
收藏 488KB RAR 举报
温馨提示
stc89c54rd单片机的基本编程实验,所有程序为原创,均通过验证。
资源详情
资源评论
资源推荐
收起资源包目录
stc89c54rd.rar_STC89C54RD (235个子文件)
1 7KB
1 6KB
1 5KB
1 2KB
1 2KB
1 2KB
1 2KB
1 2KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
STARTUP.A51 5KB
ILI9163_Opt.Bak 2KB
ILI9163_Uv2.Bak 2KB
1_Uv2.Bak 2KB
ILI9163_Uv2.Bak 2KB
ILI9163_Uv2.Bak 2KB
ILI9163_Uv2.Bak 2KB
PWM调光_Uv2.Bak 2KB
1_Opt.Bak 1KB
PWM调光_Opt.Bak 1KB
ILI9163_Opt.Bak 1KB
ILI9163_Opt.Bak 1KB
1_Opt.Bak 1KB
1_Opt.Bak 1KB
蜂鸣器_Opt.Bak 1KB
蜂鸣器_Opt.Bak 1KB
1_Opt.Bak 1KB
1_Opt.Bak 1KB
1_Opt.Bak 1KB
1_Opt.Bak 1KB
ILI9163_Opt.Bak 1KB
开机次数记忆_Opt.Bak 1014B
1_Uv2.Bak 0B
1_Uv2.Bak 0B
1_Uv2.Bak 0B
1_Uv2.Bak 0B
开机次数记忆_Uv2.Bak 0B
1_Uv2.Bak 0B
1_Uv2.Bak 0B
1_Uv2.Bak 0B
1_Uv2.Bak 0B
ILI9163.C 14KB
ILI9163.C 11KB
ILI9163.C 9KB
ILI9163.C 9KB
开机次数.c 5KB
1.c 3KB
PWM.c 2KB
蜂鸣器.c 2KB
1.c 1KB
1.c 1KB
蜂鸣器.c 1KB
1.c 1013B
1.c 437B
1.c 424B
1.c 381B
1.c 359B
1.c 240B
pic.h 205KB
pic.h 205KB
pic.h 205KB
pic.h 205KB
8x16.h 44KB
8x16.h 44KB
8x16.h 44KB
8x8h.h 44KB
8x8h.h 44KB
8x8h.h 44KB
GB1616.h 7KB
GB1616.h 7KB
GB1616.h 7KB
gb1616.h 7KB
8x16.h 2B
ILI9163.hex 16KB
ILI9163.hex 14KB
ILI9163.hex 13KB
ILI9163.hex 5KB
开机次数记忆.hex 1KB
1.hex 1KB
1.hex 1KB
1.hex 845B
蜂鸣器.hex 686B
1.hex 677B
蜂鸣器.hex 611B
PWM调光.hex 418B
1.hex 412B
1.hex 349B
1.hex 306B
1.hex 221B
1.hex 153B
共 235 条
- 1
- 2
- 3
weixin_42651887
- 粉丝: 80
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Dock项目硬件DRB.pptx
- bootstrap安装好后的安装包,可以进行安装
- JAVAWML信息查询与后端信息发布系统实现-WML信息查询设计(源代码+论文)
- 6回路比赛抢答器PLC程序.opt
- 最终结果-信贷可得性.xlsx
- 基于python和模拟退火算法的拆装流水线问题解决方案(免费提供源码)
- 使用 SSM(Spring MVC + Spring + MyBatis)框架实现申报项目信息管理系统实验报告
- 这本书深入探讨了MySQL数据库系统的内部工作原理,特别适合高级用户、数据库管理员和开发者,希望了解MySQL在低层次上如何运行
- 停车场车位自动检测系统电路图
- 所有指定格式的Excel文件的工作表合并到一个新的Excel文件中
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0