-
大小: 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個文件信息
評論
共有 條評論