久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

基于STC12C5410AD的字庫型12864的使用

作者:佚名   來源:本站原創   點擊數:  更新時間:2011年11月01日   【字體:

   12864和1602還是有一些相似之處的,但是論功能來看,12864還是強大很多的!
    12864的操作方式有兩種----(串行和并行),就我個人而言是比較傾向于串行的,雖然程序稍微麻煩一點,但是很節省GPIO的資源,這是很重要的,12864也可以實現繪制各種圖形的功能,和1602相似,個人認為還是弄一個比較好用的取模軟件比較好,生成代碼后就可以顯示自己想要的圖形了(1602的使用里是有介紹的^_^)!
    STC12C5410AD這款單片機和51單片機是十分相似的,相對比51而言,它更有了推挽輸出功能,AD轉換功能等;它內部鎖相環也照比51強大的多,最高工作頻率可達30+M。它的基本操作方法和51是一樣的。
    我來簡單的介紹一下12864的顯示問題:

    1、字符產生ROM(CGROM)

    里面提供了8192(213)個漢字GB2132宋體

    2、顯示數據RAM(DDRAM)

    內部提供64*2位空間,最多可控制4行16字,也就是16個中文字型顯示,當寫入顯示數據RAM時,可分別顯示CGROM和CGRAM的字型,可以用來顯示三種字型:半角英文數字型、CGRAM字型和CGROM的中文字型,三種字型的選擇,由在DDRAM總寫入的編碼選擇,在0000H—0006H的編碼中(其代碼分別為0000、0002、0004、0006共四個)將選擇CGRAM的自定義字型,02H—7FH的編碼中將顯示半角英文數字型的字型(也就是ASCII碼,大小為16*8),至于A1以上的編碼將自動結合下一個位元組,組成兩個位元組的編碼,從而形成一個中文字型的編碼,也就是說顯示一個漢字要兩個ASCII碼顯示的位置,即大小為16*16。BIG(A140—D75F),GB(A1A0—F7FF)。

    下面我來寫一個顯示古詩《涼州詞》的程序,這個實現起來比較簡單,可以參照數據手冊來看,無論什么時候,數據手冊都是十分重要的,其實就是一款產品的說明書,所以學會自己閱讀數據手冊是很必要的哦^_^!
由于篇幅有限本文只列出了部分代碼,完整的源代碼下載地址:http://www.zg4o1577.cn/f/1286452.rar  以下是部分代碼
=======================================================================================

#include <stc12c5410ad.h>

#include <intrins.h>

sbit E_CLK =P1^2;   //時鐘使能 

sbit RW_SID=P1^1;//串行數據輸入、輸出端   

sbit RS_CS =P1^0;//片選端   


//宏定義

#define uint unsigned int

#define uchar unsigned char



//下面是數組定義  

uchar code ts[]={"黃河遠上白云間"};

uchar code tw[]={"一片孤城萬仞山"};

uchar code ta[]={"羌笛何須怨楊柳"};

uchar code tb[]={"春風不度玉門關"};


//延時子函數 

void delay(unsigned int xms) 

{

unsigned int i,j;

for(i=0; i<xms; i++)

for(j=0;j<110;j++) 

{};

}

//串行發送一字節數據  

void Send_Byte(unsigned char dat)

{

     unsigned char i;

     for(i=0;i<8;i++)

           {

      delay(1);

      P1M0=0;

          P1M1=1;

               E_CLK=0; //時鐘線拉低 

               if(dat&0x80)

  RW_SID=1;

  else 

  RW_SID=0;

               E_CLK=1;

               dat=dat<<1;

            }

}

   

//控制命令    

void Send_command(unsigned char dat)

{

     P1M0=0;

P1M1=1;

     RS_CS=1;

     Send_Byte(0xF8);//11111,00,0 RW=0,RS=0   同步標志  

     Send_Byte(dat&0xF0);//高四位 

     Send_Byte((dat&0x0F)<<4);//低四位  

     RS_CS=0;    

}

//顯示數據或單字節字符  

void Send_Dat(unsigned char dat)

{

     RS_CS=1;

     Send_Byte(0xFA);//11111,01,0 RW=0,RS=1

     Send_Byte(dat&0xF0);//高四位

     Send_Byte((dat&0x0F)<<4);//低四位

     RS_CS=0;

}      


void display_1()

{

     uchar a;

     Send_command(0x80);

for(a=0;a<14;a++)

{

Send_Dat(ts[a]);

}

}


void display_2()

{

uchar b;

Send_command(0x90);

for(b=0;b<14;b++)

{

Send_Dat(tw[b]);

}

}

void display_3()

{

uchar c;

Send_command(0x88);

for(c=0;c<14;c++)

{

Send_Dat(ta[c]);

}

}

void display_4()

{

uchar d;

Send_command(0x98);

for(d=0;d<14;d++)

{

Send_Dat(tb[d]);

}

}


//初始化 LCD

void init(void)

{

     P1M0=0;

P1M1=1;

     RS_CS=0;

     delay(1);

     Send_command(0x30);//功能設置,一次送8位數據,基本指令集  

     Send_command(0x0c);//0000,1100 整體顯示,游標on,游標位置on   

     Send_command(0x01);//0000,0001 清DDRAM  

     Send_command(0x02);//0000,0010 DDRAM地址歸位  

     Send_command(0x80);//1000,0000 設定DDRAM 7位地址000,0000到地址計數器AC 

}


void main(void)

{

     init();

     delay(1);

     display_1();

     display_2();

display_3();

display_4();       

while(1);

}

=========================================================================

程序到這里結束,如果有什么想法或者建議請給我留言!
關閉窗口

相關文章

主站蜘蛛池模板: 亚洲精品在线国产 | 欧美5区 | 精品国产一二三区 | 国产亚洲精品a | 岛国av在线免费观看 | 成人国产精品久久久 | 综合欧美亚洲 | 亚洲精品一区中文字幕乱码 | 国产精品一区二区三区久久久 | 天天躁日日躁狠狠的躁天龙影院 | 欧美一区二区三区在线 | 在线视频一区二区 | 日本在线视频一区二区 | 亚洲精彩免费视频 | 久久精品在线播放 | 狠狠久久久 | 久久久久久蜜桃一区二区 | 日韩视频成人 | 一级片免费观看 | 亚洲电影第三页 | 精品成人 | 中文字幕一区在线 | 欧美激情免费在线 | 91资源在线 | 黄色香蕉视频在线观看 | 国产激情三区 | 精品久久久久久久久久久久 | h片在线免费看 | 久久男女视频 | 正在播放国产精品 | 中文字幕免费在线 | 91精品国模一区二区三区 | 亚洲综合小视频 | 久久不射网| 一级欧美一级日韩片免费观看 | 国产欧美在线播放 | 国产视频1区2区 | 欧洲一区二区视频 | 日韩视频观看 | 2019天天干夜夜操 | 激情网五月天 |