/*系统头文件--------------------------------------------------------------------*/
#include <reg52.h> //此文件中定义了单片机的一些特殊功能寄存器
#include "Delay.h" //全局通用延时头文件
#include "19264ks0107ZK.h" //19264屏字库
#include "19264ks0107.h" //19264屏驱动
//#define uchar unsigned char //宏定义无符号字符形数据类型进行声明定义 定义名称uchar 所占位数8位 范围0~255
//#define uint unsigned int //宏定义无符号整形数据类型进行声明定义 定义名称uint 所占位数16位 范围0~65535
/*主函数--------------------------------------------------------------------*/
void main()
{
Init19264LCD(); //19264屏初始化LCD函数
while(1)
{
/************说明*********************/
/*例如:Disp_8x16(0,0,1,ZM_8x16[0]);
括号第1个数指那一列开始
括号第2个数指那一行开始
括号第3个数指 0不反色显示 1反色显示
括号第4个数指 字库要显示的字或符号*/
Disp_8x16(0,0,1,ZM_8x16[0]); //0
Disp_8x16(1,0,1,ZM_8x16[1]); //1
Disp_8x16(2,0,1,ZM_8x16[2]); //2
Disp_8x16(3,0,1,ZM_8x16[3]); //3
Disp_8x16(4,0,1,ZM_8x16[4]); //4
Disp_8x16(5,0,1,ZM_8x16[5]); //5
Disp_8x16(6,0,1,ZM_8x16[6]); //6
Disp_8x16(7,0,1,ZM_8x16[7]); //7
Disp_8x16(8,0,1,ZM_8x16[8]); //8
Disp_8x16(9,0,1,ZM_8x16[9]); //9
Disp_8x16(11,0,0,ZM_8x16[10]); //A
Disp_8x16(12,0,0,ZM_8x16[11]); //B
Disp_8x16(13,0,0,ZM_8x16[12]); //C
Disp_8x16(14,0,0,ZM_8x16[13]); //D
Disp_8x16(15,0,0,ZM_8x16[14]); //E
Disp_8x16(16,0,0,ZM_8x16[15]); //F
Disp_8x16(17,0,0,ZM_8x16[16]); //G
Disp_8x16(18,0,0,ZM_8x16[17]); //H
Disp_8x16(19,0,0,ZM_8x16[18]); //I
Disp_8x16(20,0,0,ZM_8x16[19]); //J
Disp_8x16(21,0,0,ZM_8x16[20]); //K
Disp_8x16(22,0,0,ZM_8x16[21]); //L
Disp_8x16(23,0,0,ZM_8x16[22]); //M
Disp_16x32(0,8,0,ZM_16x32[2]); //2
Disp_16x32(1,8,0,ZM_16x32[0]); //0
Disp_16x32(2,8,0,ZM_16x32[2]); //2
Disp_16x32(3,8,0,ZM_16x32[1]); //1
Disp_32x32(2,2,0,ZM_32x32[0]); //心
Disp_32x32(3,2,0,ZM_32x32[1]); //想
Disp_32x32(4,2,0,ZM_32x32[2]); //事
Disp_32x32(5,2,0,ZM_32x32[3]); //成
Disp_16x16(0,3,0,ZM_16x16[0]); //新
Disp_16x16(1,3,0,ZM_16x16[1]); //年
Disp_16x16(2,3,0,ZM_16x16[2]); //快
Disp_16x16(3,3,0,ZM_16x16[3]); //乐
Disp_16x16(4,3,0,ZM_16x16[4]); //!
Disp_16x16(5,3,1,ZM_16x16[9]); //福
Disp_16x16(7,3,0,ZM_16x16[5]); //身
Disp_16x16(8,3,0,ZM_16x16[6]); //体
Disp_16x16(9,3,0,ZM_16x16[7]); //健
Disp_16x16(10,3,0,ZM_16x16[8]); //康
Disp_16x16(11,3,0,ZM_16x16[4]); //!
}
}后面是我改的STC8H程序
/*系统头文件--------------------------------------------------------------------*/
//#include <stc8x.h> //此文件中定义了单片机的一些特殊功能寄存器
#include "reg51.h"
#include "intrins.h"
#include "Delay.h" //全局通用延时头文件
#include "19264ks0107ZK.h" //19264屏字库
#include "19264ks0107.h" //19264屏驱动
//#define uchar unsigned char //宏定义无符号字符形数据类型进行声明定义 定义名称uchar 所占位数8位 范围0~255
//#define uint unsigned int //宏定义无符号整形数据类型进行声明定义 定义名称uint 所占位数16位 范围0~65535
sfr P0M0 = 0x94;
sfr P0M1 = 0x93;
sfr P1M0 = 0x92;
sfr P1M1 = 0x91;
sfr P2M0 = 0x96;
sfr P2M1 = 0x95;
sfr P3M0 = 0xb2;
sfr P3M1 = 0xb1;
sfr P4M0 = 0xb4;
sfr P4M1 = 0xb3;
sfr P5M0 = 0xca;
sfr P5M1 = 0xc9;
sfr P6M0 = 0xcc;
sfr P6M1 = 0xcb;
sfr P7M0 = 0xe2;
sfr P7M1 = 0xe1;
/*主函数--------------------------------------------------------------------*/
void main()
{
P0M0 = 0x00; //设置P0.0~P0.7为双向口模式
P0M1 = 0x00;
P1M0 = 0xff; //设置P1.0~P1.7为推挽输出模式
P1M1 = 0x00;
P2M0 = 0x00; //设置P2.0~P2.7双向模式
P2M1 = 0x00;
P3M0 = 0xff; //设置P3.0~P3.7为开漏模式
P3M1 = 0xff;
Init19264LCD(); //19264屏初始化LCD函数
while(1)
{
/************说明*********************/
/*例如:Disp_8x16(0,0,1,ZM_8x16[0]);
括号第1个数指那一列开始
括号第2个数指那一行开始
括号第3个数指 0不反色显示 1反色显示
括号第4个数指 字库要显示的字或符号*/
Disp_8x16(0,0,1,ZM_8x16[0]); //0
//Disp_8x16(1,0,1,ZM_8x16[1]); //1
//Disp_8x16(2,0,1,ZM_8x16[2]); //2
//Disp_8x16(3,0,1,ZM_8x16[3]); //3
// Disp_8x16(4,0,1,ZM_8x16[4]); //4
//Disp_8x16(5,0,1,ZM_8x16[5]); //5
//Disp_8x16(6,0,1,ZM_8x16[6]); //6
// Disp_8x16(7,0,1,ZM_8x16[7]); //7
// Disp_8x16(8,0,1,ZM_8x16[8]); //8
//Disp_8x16(9,0,1,ZM_8x16[9]); //9
//Disp_8x16(11,0,0,ZM_8x16[10]); //A
//Disp_8x16(12,0,0,ZM_8x16[11]); //B
//Disp_8x16(13,0,0,ZM_8x16[12]); //C
//Disp_8x16(14,0,0,ZM_8x16[13]); //D
//Disp_8x16(15,0,0,ZM_8x16[14]); //E
//Disp_8x16(16,0,0,ZM_8x16[15]); //F
//Disp_8x16(17,0,0,ZM_8x16[16]); //G
//Disp_8x16(18,0,0,ZM_8x16[17]); //H
//Disp_8x16(19,0,0,ZM_8x16[18]); //I
//Disp_8x16(20,0,0,ZM_8x16[19]); //J
//Disp_8x16(21,0,0,ZM_8x16[20]); //K
//Disp_8x16(22,0,0,ZM_8x16[21]); //L
//Disp_8x16(23,0,0,ZM_8x16[22]); //M
// Disp_16x32(0,8,0,ZM_16x32[2]); //2
//Disp_16x32(1,8,0,ZM_16x32[0]); //0
//Disp_16x32(2,8,0,ZM_16x32[2]); //2
//Disp_16x32(3,8,0,ZM_16x32[1]); //1
//Disp_32x32(2,2,0,ZM_32x32[0]); //心
//Disp_32x32(3,2,0,ZM_32x32[1]); //想
//Disp_32x32(4,2,0,ZM_32x32[2]); //事
//Disp_32x32(5,2,0,ZM_32x32[3]); //成
//Disp_16x16(0,3,0,ZM_16x16[0]); //新
//Disp_16x16(1,3,0,ZM_16x16[1]); //年
//Disp_16x16(2,3,0,ZM_16x16[2]); //快
//Disp_16x16(3,3,0,ZM_16x16[3]); //乐
//Disp_16x16(4,3,0,ZM_16x16[4]); //!
//Disp_16x16(5,3,1,ZM_16x16[9]); //福
//Disp_16x16(7,3,0,ZM_16x16[5]); //身
//Disp_16x16(8,3,0,ZM_16x16[6]); //体
//Disp_16x16(9,3,0,ZM_16x16[7]); //健
//Disp_16x16(10,3,0,ZM_16x16[8]); //康
//Disp_16x16(11,3,0,ZM_16x16[4]); //!
}
}延时库也按照STC8的延时计算
#ifndef __DELAY_H_
#define __DELAY_H_
#define uchar unsigned char //宏定义无符号字符形数据类型进行声明定义 定义名称uchar 所占位数8位 范围0~255
#define uint unsigned int //宏定义无符号整形数据类型进行声明定义 定义名称uint 所占位数16位 范围0~65535
/*延时函数 Delay_ms(1)时大约1ms——————————————————————————————————————————————————————*/
void Delay_ms(uint ms)
//{
//uchar t;
// while(ms--)
//{
// for(t = 110; t > 0; t --);
//}
//}
//void Delay1ms(void) //@11.0592MHz
{
unsigned char data i, j;
_nop_();
i = 2;
j = 199;
do
{
while (--j);
} while (--i);
}
/*延时函数 Delay_us(1)时大约1us——————————————————————————————————————————————————————*/
/*void Delay_us(uint us)
{
while(--us);
}*/
#endif
请教高手如何能在STC8上正确显示,谢谢指教!
|