/*系統頭文件--------------------------------------------------------------------*/
#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上正確顯示,謝謝指教!
|