-
大小: 1.15MB文件类型: .rar金币: 2下载: 0 次发布日期: 2024-01-26
- 语言: 其他
- 标签: TX-1CProteus
资源简介
一共有三个版本,还有一些配套的例程。其中有两个版本是集合版,一个是分块版。
一共有三个版本,还有一些配套的例程。其中有两个版本是集合版,一个是分块版。
一共有三个版本,还有一些配套的例程。其中有两个版本是集合版,一个是分块版。
代码片段和文件信息
#include
#include
#include“ZK.h“
#define uchar unsigned char
#define uint unsigned int
#define LCD_databus P0//Lcd12864的8位数据口
sbit RS = P3^5;//RS为0--命令,1--数据
sbit RW = P3^6;//RW为1--读,0--写
sbit EN = P3^4;//使能端
sbit CS1 = P2^4;//片选1低电平有效,控制左半屏
sbit CS2 = P2^0;//片选1低电平有效,控制右半屏
void delay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
void Read_busy()//读“忙”函数--数据线的最高位的DB71则busy
{
P0 = 0x00;
RS = 0;
RW = 1;
EN = 1;
while(P0 & 0x00);
EN = 0;
}
void write_LCD_command(uchar value)//写命令函数
{
Read_busy();//对LCD的每次读写都要读忙
RS = 0;//选择命令
RW = 0;//写操作
EN = 1;//EN由1--0锁存有效数据
LCD_databus = value;
EN = 0;
RW = 1;
}
void write_LCD_data(uchar value)//写数据函数
{
Read_busy();
RS = 1;//选择数据
RW = 0;
EN = 1;
LCD_databus = value;
EN = 0;
RW = 1;
}
void Set_page(uchar page)//设置“页”LCD23875共8页
{
page = 0xb8 | page;//页的首地址0xB8
write_LCD_command(page);
}
//void Set_line(uchar startline)//设置显示的起始行
//{
// startline = 0xc0 | startline;//起始行地址为0xc0
// write_LCD_command(startline);//设置从哪行开始
//}
void Set_column(uchar column)//设置显示的列
{
column = column & 0x3f;//列的最大值为64
column = 0x40 | column;//列的首地址为0x40
write_LCD_command(column);//规定显示的列的位置
}
void SetOnOff(uchar onoff)//显示开关函数,0x3E是关显示,0x3F是开显示
{
onoff = 0x3e | onoff;//0011 111xonoff只能为0或者1
write_LCD_command(onoff);
}
void SelectScreen(uchar screen)//选择屏幕
{
switch(screen)
{
case 0: CS1 = 0;CS2 = 0;break;//全屏
case 1: CS1 = 0;CS2 = 1;break;//左半屏
case 2: CS1 = 1;CS2 = 0;break;//右半屏
default:break;
}
}
void ClearScreen(uchar screen)//清屏函数
{
uchar ij;
SelectScreen(screen);//0--全屏,1--左半屏,2--右半屏
for(i = 0;i < 8;i ++)//控制页数0-7,共8页
{
Set_page(i);
Set_column(0);
for(j = 0;j < 64;j ++)//控制列数0-63,共64列
{
write_LCD_data(0x00);//写入0,地址指针自加1
}
}
}
void InitLCD()//LCD的初始化
{
Read_busy();
// SelectScreen(0);
// SetOnOff(0);//关显示
// SelectScreen(0);
SetOnOff(1);//开显示
// SelectScreen(0);//选全屏
ClearScreen(0);//清屏
// Set_line(0);//开始行:0
}
void Display(uchar ssuchar pageuchar columnuchar p[])
{
uchar i;
SelectScreen(ss);
Set_page(page);//写上半页
Set_column(column);//控制列
for(i = 0;i < 16;i ++)
{
write_LCD_data(p[i]);//汉字的上半部分
}
Set_page(page + 1);//写下半页
Set_column(column);//控制列
for(i = 0;i < 16;i ++)//控制16列的数据输出
{
write_LCD_data(p[i + 16]);//汉字的下半部分
}
}
void Display_BMP(uchar img[][64])//显示图形
{
uchar ij;
for(j = 0;j < 4;j ++)
{
SelectScreen(1);
Set_page(j + 4);
Set_column(0);
for(i = 0;i < 64;i ++)//显示左屏
{
write_LCD_data(img[2 * j][i]);//每隔一行取一次数组中的数据(0页为左半屏,1页为右半屏,依此类推)
}
SelectScreen(2);
Set_page(j + 4);
Set_column(0);
for(i = 0;i < 64;i ++)//显示右屏
{
write_LCD_data(img[2 * j + 1][i]);//每隔一行取一次数组中的数据
}
}
}
uchar Read_Data()
{
// uchar Temp;
// Read_busy();
// LCD_databus = 0xff;
RS=1;
RW=1;
EN=1;
// Temp=LCD_
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 711 2017-12-14 23:34 例程\lesson6_1
文件 110 2017-12-14 20:28 例程\lesson6_1.c
文件 199 2017-12-14 23:34 例程\lesson6_1.hex
文件 50 2017-12-14 23:34 例程\lesson6_1.lnp
文件 987 2017-12-14 20:28 例程\lesson6_1.LST
文件 3028 2017-12-14 23:34 例程\lesson6_1.M51
文件 1060 2017-12-14 20:28 例程\lesson6_1.OBJ
....... 966 2017-12-14 20:28 例程\lesson6_1.opt.bak
文件 458 2017-12-14 23:35 例程\lesson6_1.plg
....... 1660 2017-12-14 20:28 例程\lesson6_1.Uv2.bak
....... 55829 2017-12-14 23:35 例程\lesson6_1.uvopt
....... 13197 2017-12-14 23:33 例程\lesson6_1.uvproj
....... 55829 2017-12-14 23:33 例程\lesson6_1_uvopt.bak
文件 264 2017-12-14 23:34 例程\lesson6_2.c
文件 1390 2017-12-14 23:34 例程\lesson6_2.LST
文件 734 2017-12-14 23:34 例程\lesson6_2.OBJ
文件 440242 2012-02-27 23:50 TX-1C Proteus仿真板\Last Loaded TX-1C.DBK
文件 8208 2012-02-12 23:33 TX-1C Proteus仿真板\LCD12864.c
文件 4897 2012-02-27 23:25 TX-1C Proteus仿真板\LCD12864.hex
文件 5018 2012-02-27 18:51 TX-1C Proteus仿真板\temperature.c
文件 4020 2012-02-27 18:51 TX-1C Proteus仿真板\temperature.hex
文件 440227 2012-02-28 12:21 TX-1C Proteus仿真板\TX-1C.DSN
文件 1510 2017-12-14 23:33 TX-1C Proteus仿真板\TX-1C.PWI
文件 6171 2012-02-07 23:15 TX-1C Proteus仿真板\ZK.h
文件 1977 2015-07-01 17:14 TX-1C Proteus仿真板\鲁大师装机必备.lnk
文件 57372 2009-06-10 16:53 开发板+Proteus\DS12887.DLL
文件 742 2010-10-11 14:19 开发板+Proteus\Lesson10_电子钟\1602.PWI
文件 97342 2010-10-11 14:16 开发板+Proteus\Lesson10_电子钟\Last Loaded 1602.DBK
文件 9777 2010-10-13 17:05 开发板+Proteus\Lesson10_电子钟\例程\LESSON10
文件 3315 2010-10-11 14:19 开发板+Proteus\Lesson10_电子钟\例程\lesson10.c
............此处省略358个文件信息
评论
共有 条评论