?? gaoding.c
字號(hào):
#include <C8051F020.h> // Register definition file.
#include <stdio.h>
#define SYSCLK 22118400 //定義系統(tǒng)時(shí)鐘22.1184MHz
typedef unsigned int uint;
typedef unsigned char uchar;
typedef unsigned long ulong;
/*=======基本指令集=========*/
#define Base_Module 0x30 /*基本指令集*/
#define Clear_Display 0x01 /*清除顯示器,清除DDRAM*/
#define Go_Origin 0x02 /*光標(biāo)返回到原點(diǎn),AC=0,DDRAM不變*/
#define Right_ACAdd 0x06 //設(shè)定光標(biāo)移動(dòng)方向,光標(biāo)右移 AC+1
#define Left_ACDec 0x04 //設(shè)定光標(biāo)移動(dòng)方向,光標(biāo)左移,AC-1
#define Clear_Screen 0x08 /*顯示器關(guān)閉*/
#define On_Screen 0x0c /*顯示器打開*/
#define Off_Cursor 0x0d /*光標(biāo)顯示關(guān)*/
#define On_Cursor 0x0e /*光標(biāo)顯示開*/
#define Reverse_Current 0x0f /*光標(biāo)位置顯示取反*/
#define LeftShift_Cursor 0x10 /*光標(biāo)左移,AC-1*/
#define RightShift_All 0x18 /*畫面整體左移*/
#define RightShift_Cursor 0x14 /*光標(biāo)右移,AC+1*/
#define LeftShift_All 0x1c /*畫面整體右移*/
/*=======擴(kuò)充指令集=========*/
#define Expand_Module 0x34 /*擴(kuò)充指令集*/
//#define Wait_Module 0x01 //進(jìn)入待命模式,執(zhí)行任何其他指令都可
//終止待命模式,只保留COM33顯示
#define Enable_ICGRAMBitAddr 0x02 /*允許輸入IRAM,CGRAM位址*/
#define Enable_UprightnessBitAddr 0x03 /*允許輸入垂直滾動(dòng)位址*/
#define Reverse_WhiteOne 0x04 /*選擇4行中的一行反白*/
#define Reverse_WhiteSecond 0x05 /*選擇4行中的二行反白*/
#define On_ Sleep 0x08 /*進(jìn)入睡眠模式*/
#define Off_Sleep 0x0c /*脫離睡眠模式*/
#define On_Plot 0x36 /*繪圖顯示開*/
#define Off_Plot 0x34 /*繪圖顯示關(guān)*/
//接口定義////////////////////////////////////
sbit LCDRS = P3^0; // H---DATA, L---INSTRUCT
sbit LCDRW = P3^1; // H---READ, L---WRITE
sbit LCDE = P3^2; // 下降沿---寫數(shù)據(jù), 高---讀數(shù)據(jù), 低或上升沿?zé)o動(dòng)作
sbit LCDPSB = P3^3; // 1--并行,0--串行
#define LCDDB = P7; // DATA
//LCD寄存器定義//////////////////////////////
data LCD_DAT;
data LCD_COM;
//外部晶振初始化/////////////////////////////
void SYSCLK_Init ()
{
int i; // 延時(shí)計(jì)數(shù)器
OSCXCN = 0x67; // 開啟外部振蕩器22.1184MHz晶體
for (i=0; i < 256; i++) ; // 等待振蕩器啟振
while (!(OSCXCN & 0x80)); // 等待晶體振蕩器穩(wěn)定
OSCICN = 0x88; // 選擇外部振蕩器為系統(tǒng)時(shí)鐘源并允許丟失時(shí)鐘檢測(cè)器
}
// 交叉開關(guān)配置,管腳輸入輸出配置
void XBR_Init()
{
XBR0 = 0x00; //不配置特殊功能
XBR1 = 0x00;
XBR2 = 0x40; //使能交叉開關(guān),并且總體弱上拉
}
//發(fā)送控制命令到LCD
void LCDWRT_COM(unsigned char COM)
{
unsigned char temp;
unsigned int i;
LCDPSB=1;
//讀取并判斷busy
LCDRS=0;
for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDRW=1;
for (i=0;i<255;i++);
for (i=0;i<255;i++);
P7=0xff;
for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDE=1;
for (i=0;i<255;i++);
for (i=0;i<255;i++);
temp=P7;
for (i=0;i<255;i++);
LCDE=0;
while(temp>=0x80);
for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDRW=0;
for (i=0;i<255;i++);
for (i=0;i<255;i++);
P7=COM;
for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDE=1;
for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDE=0;
for (i=0;i<255;i++);
for (i=0;i<255;i++);
}
//發(fā)送數(shù)據(jù)到LCD
void LCDWRT_DAT(unsigned char DAT)
{
unsigned int i;
unsigned char temp;
LCDPSB=1;
//讀取并判斷busy
LCDRS=0;
// for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDRW=1;
// for (i=0;i<255;i++);
for (i=0;i<255;i++);
P7=0xff;
// for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDE=1;
// for (i=0;i<255;i++);
for (i=0;i<255;i++);
temp=P7;
for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDE=0;
while(temp>=0x80);
for (i=0;i<255;i++);
LCDRS=1;
// for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDRW=0;
// for (i=0;i<255;i++);
for (i=0;i<255;i++);
P7=DAT;
// for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDE=1;
// for (i=0;i<255;i++);
for (i=0;i<255;i++);
LCDE=0;
// for (i=0;i<255;i++);
for (i=0;i<255;i++);
}
void main()
{
unsigned int i,j;
/*-- 文字: 0 --*/
/*-- Verdana22; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=21x35 --*/
/*-- 寬度不是8的倍數(shù),現(xiàn)調(diào)整為:寬度x高度=24x35 --
xdata unsigned char PNumber0[64]={
/*-- 文字: 0 --*/
/*-- Impact18; 此字體下對(duì)應(yīng)的點(diǎn)陣為:寬x高=16x37
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x07,0xE0,
0x0F,0xF0,0x1F,0xF8,0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,
0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,
0x3E,0x7C,0x3E,0x7C,0x3E,0x7C,0x1E,0x7C,0x1F,0xF8,0x0F,0xF0,0x07,0xE0,0x00,0x00,
0x00,0x00,0x00,0x00};--*/
xdata unsigned int date[64][16]={0x55,0x55,0x4A,0xA5,0x52,0x55,0x4A,0x94,0xA5,0x49,0x4A,0xAA,0x95,0x55,0x55,0x52,
0x80,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x80,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x01,0x20,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -