free性丰满hd毛多多,久久综合给合久久狠狠狠97色69 ,欧美成人乱码一区二区三区,国产美女久久久亚洲综合,7777久久亚洲中文字幕

0
問答首頁 最新問題 熱門問題 等待回答標(biāo)簽廣場(chǎng)
我要提問

怎樣在顯示屏上顯示阿拉伯字母?

我們想做一個(gè)智能電能表,顯示屏上可以顯示漢字又可以顯示阿拉伯字。這個(gè)需要驅(qū)動(dòng)程序和阿拉伯字庫是吧?請(qǐng)高手指點(diǎn)。
提問者:khsahdwu 地點(diǎn):- 瀏覽次數(shù):5096 提問時(shí)間:12-23 09:20
我有更好的答案
提 交
13條回答
dfh0918 12-28 17:34
還需要漢字字庫和一個(gè)電工
BEONEWENHUI 01-01 23:04
頂樓上,哈哈
60user117 12-26 01:04
一級(jí)菜鳥兄
? ? 確實(shí)我寫的不全,不好意思。我看的智能電能表顯示屏是在固定地方顯示字母和數(shù)字,這些都是怎么實(shí)現(xiàn)的?有沒有這方面的材料。謝謝
60user106 12-27 16:54
顯示阿拉伯字母必須有阿拉伯文字字庫,可利用操作系統(tǒng)的字庫剪裁,但前提必須找個(gè)懂阿拉伯文的人。
cmh6 12-29 22:22
樓上真會(huì)講,
daitz 01-01 14:20


用現(xiàn)成模抉做吧

1602液晶顯示模塊的應(yīng)用

http://tech.ddvip.com??


  液晶顯示器以其微功耗、體積小、顯示內(nèi)容豐富、超薄輕巧的諸多優(yōu)點(diǎn),在各類儀表和低功耗系統(tǒng)中得到廣泛的應(yīng)用。
  根據(jù)顯示內(nèi)容可以分為字符型液晶,圖形液晶。根據(jù)顯示容量又可以分為單行16字,2行16字,兩行20字等等。
  這里介紹常用的字16字X2行的字符型液晶模塊的使用方法。這是一種通用模塊。與數(shù)碼管相比該模塊有如下優(yōu)點(diǎn):
  1.位數(shù)多,可顯示32位,32個(gè)數(shù)碼管體積相當(dāng)龐大了
  2.顯示內(nèi)容豐富,可顯示所有數(shù)字和大、小寫字母
  3.程序簡(jiǎn)單,如果用數(shù)碼管動(dòng)態(tài)顯示,會(huì)占用很多時(shí)間來刷新顯示,而1602自動(dòng)完成此功能。

  1602采用標(biāo)準(zhǔn)的16腳接口,其中:(模塊背面有標(biāo)注)
  第1腳:VSS為地電源
  第2腳:VDD接5V正電源
  第3腳:V0為液晶顯示器對(duì)比度調(diào)整端,接正電源時(shí)對(duì)比度最弱,接地電源時(shí)對(duì)比度最高,對(duì)比度過高時(shí)會(huì)產(chǎn)生“鬼影”,使用時(shí)可以通過一個(gè)10K的電位器調(diào)整對(duì)比度(建議接地,弄不好有的模塊會(huì)不顯示)
  第4腳:RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。
  第5腳:RW為讀寫信號(hào)線,高電平時(shí)進(jìn)行讀操作,低電平時(shí)進(jìn)行寫操作。
  第6腳:E端為使能端,當(dāng)E端由高電平跳變成低電平時(shí),液晶模塊執(zhí)行命令。
  第7~14腳:D0~D7為8位雙向數(shù)據(jù)線。
  第15~16腳:空腳(有的用來接背光)
  1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了不同的點(diǎn)陣字符圖形,這些字符有,阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,其中數(shù)字與字母同ASCII碼兼容。
  其內(nèi)部還有自定義字符(CGRAM),可用業(yè)存儲(chǔ)自已定義的字符。

  查看原圖(大圖)
  1602模塊的設(shè)定,讀寫,與光標(biāo)控制都是通過指令來完成,共有11條指令,如下:



  指令   RS  RW  D7  D6  D5  D4  D3  D2  D1  D0  1  清屏   0  0  0  0  0  0  0  0  0  1  2  光標(biāo)返回   0  0  0  0  0  0  0  0  1  *  3  輸入模式   0  0  0  0  0  0  0  1  I/D  S  4  顯示控制   0  0  0  0  0  0  1  D  C  B  5  光標(biāo)/字符移位   0  0  0  0  0  1  S/C  R/L  *  *  6  功能   0  0  0  0  1  DL  N  F  *  *  7  置字符發(fā)生器地址   0  0  0  1
  字符發(fā)生存貯器地址
  8  置數(shù)據(jù)存貯器地址   0  0  1
  顯示數(shù)據(jù)存貯器地址
  9  讀忙標(biāo)志和地址   0  1  BF
  計(jì)數(shù)器地址
  10  寫數(shù)據(jù)到指令7.8所設(shè)地址   1  0
  要寫的數(shù)據(jù)
  11  從指令7.8所設(shè)的地址讀數(shù)據(jù)   1  1
  讀出的數(shù)據(jù)

  指令1:
  清顯示,光標(biāo)復(fù)位到地址00H位置。
  指令2:
  光標(biāo)復(fù)位,光標(biāo)返回到地址00H。
  指令3:
  光標(biāo)和顯示模式設(shè)置 I/D:光標(biāo)移動(dòng)方向,高電平右移,低電平左移,S:屏幕上所有文字是否左移或者右移。高電平表示有效,低電平則無效。
  指令4:
  顯示開關(guān)控制。 D:控制整體顯示的開與關(guān),高電平表示開顯示,低電平表示關(guān)顯示 C:控制光標(biāo)的開與關(guān),高電平表示有光標(biāo),低電平表示無光標(biāo) B:控制光標(biāo)是否閃爍,高電平閃爍,低電平不閃爍。
  指令5:
  光標(biāo)或顯示移位 S/C:高電平時(shí)移動(dòng)顯示的文字,低電平時(shí)移動(dòng)光標(biāo)。R/L,高向左,低向右。
  指令6:
  功能設(shè)置命令 DL:高電平時(shí)為4位總線,低電平時(shí)為8位總線 N:低電平時(shí)為單行顯示,高電平時(shí)雙行顯示 F: 低電平時(shí)顯示5x7的點(diǎn)陣字符,高電平時(shí)顯示5x10的點(diǎn)陣字符。(有些模塊是 DL:高電平時(shí)為8位總線,低電平時(shí)為4位總線)
  指令7:
  字符發(fā)生器RAM地址設(shè)置,地址:字符地址*8+字符行數(shù)。(將一個(gè)字符分成5*8點(diǎn)陣,一次寫入一行,8行就組成一個(gè)字符)
  指令8:
  置顯示地址,第一行為:00H——0FH,第二行為:40H——4FH。
  指令9:
  讀忙信號(hào)和光標(biāo)地址 BF:為忙標(biāo)志位,高電平表示忙,此時(shí)模塊不能接收命令或者數(shù)據(jù),如果為低電平表示不忙。
  指令10:
  寫數(shù)據(jù)。
  指令11:
  讀數(shù)據(jù)。
  以下是在液晶模塊的第二行第一個(gè)字符的位置顯示字母“A”的程序:
  [Keil uVision2編譯通過,AT89S51+12M晶振+JHD 162A模塊成功顯示]
  MCS51單片機(jī)匯編程序
 
    ORG 0000H
    RS EQU P3.7  ;確定具體硬件的連接方式
    RW EQU P3.6  ;確定具體硬件的連接方式
    E EQU P3.5  ;確定具體硬件的連接方式
    MOV P1,#00000001B   ;清屏并光標(biāo)復(fù)位
    ACALL ENABLE ;調(diào)用寫入命令子程序
    MOV P1,#00111000B   ;設(shè)置顯示模式,8位2行5X7點(diǎn)陣
    ACALL ENABLE ;調(diào)用寫入命令子程序
    MOV P1,#00001111B   ;顯示器開、光標(biāo)開、光標(biāo)允許閃爍
    ACALL ENABLE ;調(diào)用寫入命令子程序
    MOV P1,#00000110B   ;文字不動(dòng),光標(biāo)自動(dòng)右移
    ACALL ENABLE ;調(diào)用寫入命令子程序
    MOV P1,#0C0H ;寫入顯示起始地址(第二行第一個(gè)位置)
    ACALL ENABLE ;調(diào)用寫入命令子程序
    MOV P1,#01000001B   ;字母A的代碼
    SETB RS    ;RS=1
    CLR RW    ;RW=0 ;準(zhǔn)備寫入數(shù)據(jù)
    CLR E     ;E=0 ;執(zhí)行顯示命令
    ACALL DELAY  ;判斷液晶模塊是否忙?
    SETB E    ;E=1 ;顯示完成,程序停車
    AJMP $
ENABLE: 
    CLR RS    ;寫入控制命令的子程序
    CLR RW
    CLR E
    ACALL DELAY
    SETB E
    RET
DELAY: 
    MOV P1,#0FFH ;判斷液晶顯示器是否忙的子程序
    CLR RS
    SETB RW
    CLR E
    NOP
    SETB E
    JB P1.7,DELAY ;如果P1.7為高電平表示忙就循環(huán)等待
    RET
    END




http://hi.baidu.com/yuzeshze/blog/item/b0eed4ed1172b8d92e2e211b.html


1602液晶漢字顯示

1602是一款最常用也是最便宜的液晶顯示屏。最多可以顯示兩行標(biāo)準(zhǔn)字符,每行最多可以顯示16個(gè)字符。
1602可以顯示內(nèi)部常用字符(包括阿拉伯?dāng)?shù)字,英文字母大小寫,常用符號(hào)和日文假名等),也可以顯示自定義字符(單或多個(gè)字符組成的簡(jiǎn)單漢字,符號(hào),圖案等,最多可以產(chǎn)生8個(gè)自定義字符)。
顯示操作的過程:
首先確認(rèn)顯示的位置,即在第幾行,第幾個(gè)字符開始顯示。也就是要顯示的地址,如下表所示的顯示地址。

一、顯示常用字符。
1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如下表所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫的英文字母“A”的代碼是41H,顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來,我們就能看到字母“A”。
顯示操作的過程:
首先確認(rèn)顯示的位置,即在第幾行,第幾個(gè)字符開始顯示。也就是要顯示的地址,如下表所示的顯示地址。
[attachment=4688]
第一行的顯示地址是0x80-0x8F,第二行的顯示地址是0xC0-0xCF。例如想要在第2行,第3個(gè)位置顯示一個(gè)字符,那么地址碼就是 0xC2。在編程過程中,通常編寫一個(gè)函數(shù)確定在某行某個(gè)位置顯示數(shù)據(jù)。函數(shù)需要 行參數(shù)(y),和 列參數(shù)(x)來確定顯示位置。程序參考如下


/***************設(shè)置顯示位置**************************/
void LCD_set_xy( unsigned char x, unsigned char y )
{
unsigned char address;
? ? if (0 == y) x |= 0x80; //當(dāng)要顯示第一行時(shí)地址碼+0x80;
? ? else x |= 0xC0; //在第二行顯示是地址碼+0xC0;
? ? Write_com(x); //發(fā)送地址碼 0x80-0x8F 或者0xC0-0xCF
}? ?
以上地址碼,在顯示過程中,可以直接應(yīng)用,至于地址碼的計(jì)算原理,如果想要研究,請(qǐng)參考其它資料,這里不做描述。
其次設(shè)置要顯示的內(nèi)容,即上面提到的CGROM內(nèi)的字符編碼。如顯示“A”,將編碼41H寫入到液晶屏顯示即可。通常設(shè)置地址和顯示內(nèi)容用一個(gè)函數(shù)來完成。代碼參考如下:
[size=+0]//功能:按指定位置顯示一個(gè)字符
//輸入:列顯示地址x(取值范圍0-15) 行顯示地址y(取值范圍0-1), 指定字符
void DisplayOneChar(unsigned char x, unsigned char y, unsigned char Data)
{
? ? if (0 == y) x |= 0x80; //當(dāng)要顯示第一行時(shí)地址碼+0x80;
? ? else x |= 0xC0; //在第二行顯示是地址碼+0xC0;
? ? Write_com(x); //發(fā)送地址碼
? ? Write_dat(Data); //發(fā)送要顯示的字符編碼
}
[size=+0]顯示字符“A”調(diào)用過程如下代碼:
[size=+0]DisplayOneChar(0,0,0x41);//功能:在第1行 第1個(gè)字符 顯示一個(gè)大寫字母A
[size=+0]在C語言操作時(shí),還可以顯示整個(gè)字符串。定義一個(gè)字符串顯示函數(shù),可以通過直接輸入字符方式進(jìn)行顯示
[size=+0]//功能:按指定位置顯示一串字符
//輸入:列顯示地址x(取值范圍0-15) 行顯示地址y(取值范圍0-1), 指定字符串指針*p,要顯示的字符個(gè)數(shù)count (取值范圍1-16)
void Disp_1602(unsigned char x,unsigned char y,unsigned char *p,unsigned char count)
{
unsigned char i;? ?
? ? for(i=0;i? ? {
? ?? ???if (0 == y) x |= 0x80; //當(dāng)要顯示第一行時(shí)地址碼+0x80;
? ?? ???else x |= 0xC0; //在第二行顯示是地址碼+0xC0;
? ?? ???Write_com(x); //發(fā)送地址碼
? ?? ???Write_dat(*p); //發(fā)送要顯示的字符編碼
? ?? ???x++;
? ?? ???p++;
? ? }? ?? ???
}? ?? ?
調(diào)用方法如下:
DisplayListChar(0,0,"hello world",11); //液晶1602第一行顯示
? ? DisplayListChar(0,1,"www.qm999.cn",12);? ? //液晶1602第二行顯示二、顯示自定義字符。
[size=+0]二、顯示自定義字符。
1、首先取得想要的中文或者圖形的字模數(shù)組。通過字模軟件不能直接提取5*8點(diǎn)陣的字模數(shù)據(jù),可以通過手動(dòng)提取的方法。如下圖所示,對(duì)應(yīng)一個(gè)字符顯示區(qū)域。每8個(gè)字節(jié),組成一個(gè)點(diǎn)陣數(shù)組。
[size=+0]
“日”的點(diǎn)陣數(shù)組即為 {0x1f,0x11,0x11,0x1f,0x11,0x11,0x1f,0x00}
2個(gè)點(diǎn)陣組成一個(gè)漢字取模舉例:

“車”字取模數(shù)組為:{0x00,0x0f,0x02,0x04,0x07,0x00,0x0f,0x00,
0x10,0x1e,0x00,0x10,0x1c,0x10,0x1e,0x10}
將生成的點(diǎn)陣數(shù)組保存到CGRAM存儲(chǔ)器中,生成自定義字符。1602內(nèi)部CGRAM用于自定義的字符點(diǎn)陣的存儲(chǔ),總共64字節(jié)。由上一步點(diǎn)陣提取可知,每一個(gè)字符由8個(gè)字節(jié)數(shù)據(jù)組成。所以64字節(jié)CGRAM存儲(chǔ)器,能夠存儲(chǔ)8組自定義字符的點(diǎn)陣數(shù)組。按照CGRAM地址劃分為 0-7為第一組,8-15為第二組,依次類推56-63為第8組數(shù)據(jù)。把自定義字符的數(shù)組按8個(gè)字節(jié)一組存儲(chǔ)到CGRAM中,程代碼參考如下。
//功能:將自定義字符的編碼數(shù)組 寫入到CGRAM中.
//輸入:自定義字符的編碼數(shù)組
void Write_CGRAM(unsigned char *p)
{
unsigned char i,j,kk;
unsigned char tmp=0x40; //操作CGRAM的命令碼
kk=0;
for(j=0;j<8;j++)? ?? ???//64 字節(jié)存儲(chǔ)空間,可以生成 8 個(gè)自定義字符點(diǎn)陣
{
? ? for(i=0;i<8;i++)? ? // 8 個(gè)字節(jié)生成 1 個(gè)字符點(diǎn)陣
? ? {
? ?? ???Write_com(tmp+i);? ? //操作CGRAM的命令碼+寫入CGRAM地址.
? ?? ???Write_dat(p[kk]);? ? //寫入數(shù)據(jù)
? ?? ???kk++;
? ? }
? ? tmp += 8;
}
}? ?
上一步中,自定義字符存儲(chǔ)到CGRAM的任意一組以后,每一個(gè)組(8個(gè)字節(jié))也有一個(gè)顯示編碼。按順序依次為00H-07H 。顯示時(shí),只要調(diào)用每一組的編碼,即可以顯示相應(yīng)的字符。

[size=+0]注:內(nèi)部常用字符顯示時(shí),顯示編碼是從0x20開始的。0x00-0x0f是專門留給自定義字符顯示的。0x00-0x07和0x08-0x0f內(nèi)容是一樣的。例如:調(diào)用0x01 位置和0x09位置,顯示的內(nèi)容是一樣的。
直接按照單個(gè)字符的顯示方式調(diào)用顯示函數(shù),就可以顯示自定義字符了。代碼參考如下:
[size=+0]//在第1行,第7個(gè)位置顯示自定義漢字 “年”
DisplayOneChar(6,0,0);? ? //顯示 "年" //CGRAM 碼 00
說明:此時(shí)“年”的8個(gè)字節(jié)點(diǎn)陣數(shù)組 ,存儲(chǔ)空間為CGRAM的 00-07地址
也就是CGRAM的第1組數(shù)據(jù)存儲(chǔ)區(qū)域,編碼為0。 如果存儲(chǔ)在CGRAM的08-15地址,那么編碼就應(yīng)該是 1了。
[size=+0]很多資料中,都沒有詳細(xì)介紹過CGRAM和CGROM的區(qū)別和用法,在1602調(diào)試過程中經(jīng)常會(huì)被搞混。這里總結(jié)一點(diǎn)小技巧,希望能給需要的人一點(diǎn)幫助。
以下是顯示效果:
常用字符顯示:


單個(gè)和兩個(gè)點(diǎn)陣的漢字顯示:


圖形顯示效果:


xztalk 12-28 14:13


http://hanyu.iciba.com/wiki/69380.shtml



年年二設(shè) 12-30 17:05
8字休閑沙發(fā)

這款椅子的設(shè)計(jì)靈感來自于阿拉伯?dāng)?shù)字“8”,俯瞰就是一個(gè)“8”字,圓弧處則采用了高低起伏的設(shè)計(jì)構(gòu)成了兩個(gè)相互割開的座椅,無論是用在公共場(chǎng)所還是家居裝飾都能夠給人很休閑的感覺。




? 我想這樣的創(chuàng)意最好幾時(shí)做成過場(chǎng)的休息椅,當(dāng)人們從高樓俯視而下時(shí)就是一組數(shù)字或其它圖形!如果可以組成一組有效的電話號(hào)碼,那放在新樓盤的廣場(chǎng)上那真是很能打動(dòng)顧客哦!
c1441424 12-30 03:34
謝謝 TYW!!
? ?? ? 我把這個(gè)資料回去好好看一下。
深圳市先研科技有限公司 12-25 03:56
chunyang
? ?? ? 這樣做可以嘛,主要是以前沒做過
sdgsgsgs 12-28 12:25
阿拉伯文詳細(xì)C語言解決方案與算法請(qǐng)聯(lián)系 扣扣 :916824811
Wu雨雨雨 12-28 07:07
T叔這次看錯(cuò)了……人家要的是阿拉伯文,不僅僅是阿拉伯?dāng)?shù)字。
阿拉伯文除了要有字庫外,還要注意其是從右向左書寫的。

對(duì)于電表類顯示界面而言,應(yīng)當(dāng)只會(huì)顯示固定的幾個(gè)短語或者單詞。建議用位圖方式實(shí)現(xiàn),沒必要封字庫。
小孩子不懂事 12-23 19:37
前提是你的懂阿拉伯文。我想這個(gè)才是前提吧。
撰寫答案
提 交
1 / 3
1 / 3