• 大小: 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个文件信息

评论

共有 条评论

相关资源