12864顯示屏4*4鍵盤實(shí)驗(yàn)輸出結(jié)果:獲得鍵值通過發(fā)光二極管顯示?????????????
#include?
unsigned?char?code?IC_DAT[];
sbit?RS=P3^6;?????//RS="H",表示DB7--DB0為顯示數(shù)據(jù),?
??????????????????//RS="L",表示DB7--DB0為顯示指令數(shù)據(jù)?
sbit?WRD?=?P2^5;??//R/W="H",E="H",數(shù)據(jù)被讀到DB7--DB0?
???????????????????//R/W="L",E="H→L",?DB7--DB0的數(shù)據(jù)被寫到IR或DR?
sbit?E?=?P2^6;????//使能信號(hào)?
sbit?PSB?=?P2^3;??//H:并口方式?L:串口方式?
void????TransferData(char?data1,bit?DI);?//傳送數(shù)據(jù)或者地址命令(data),?
?????????????????????????????????????????//當(dāng)DI=0是,傳送命令,當(dāng)DI=1,傳送數(shù)據(jù).?
void????display(void);?
void????display_grapic(void);?
void????delay1(unsigned?int?t);?
void????delay(unsigned?int?m);?
void????delayms(unsigned?int?n);?
void????DisplayLine(unsigned?char?line1,unsigned?char?line2);?
void????DisplayGraphic(unsigned?char?code?*adder);?
void????LCD_mesg(unsigned?char?code?*adder1);?
Key_return(char?keyvalue);?
keysCAN();?
/***************屏幕顯示結(jié)果*********************/?
unsigned?char?code?IC_DAT[]={?
"天華杯老師培訓(xùn)班"?
"******????******"?
"????按鍵鍵值????"?
"地點(diǎn):35號(hào)樓?505"?
};?
unsigned?char?data1[]={"0123456789ABCDEF?"};?
/***************LCD字庫初始化程序*********************/?
void?initinal(void)??????????
??????????{?
???????????delay(40);???????????????//大于40MS的延時(shí)程序?
???????????PSB=1;???????????????????//設(shè)置為8BIT并口工作模式?
???????????delay(1);????????????????//延時(shí)?
??????????//?RES=0;?????????????????//復(fù)位?
??????????//?delay(1);??????????????//延時(shí)?
??????????//?RES=1;?????????????????//復(fù)位置高?
???????????delay(10);?
???????????TransferData(0x30,0);??//Extended?Function?Set?:8BIT設(shè)置,RE=0:?basic?instruction?set,?G=0?:graphic?display?OFF?
???????????delay(100);????????????//大于100uS的延時(shí)程序?
???????????TransferData(0x30,0);??//Function?Set?
???????????delay(37);?????????????////大于37uS的延時(shí)程序?
???????????TransferData(0x08,0);??//Display?on?Control?
???????????delay(100);????????????//大于100uS的延時(shí)程序?
???????????TransferData(0x10,0);??//Cursor?Display?Control光標(biāo)設(shè)置?
???????????delay(100);????????????//大于100uS的延時(shí)程序?
???????????TransferData(0x0C,0);??//Display?Control,D=1,顯示開?
???????????delay(100);????????????//大于100uS的延時(shí)程序?
???????????TransferData(0x01,0);??//Display?Clear????清屏?
???????????delay(10);?????????????//大于10mS的延時(shí)程序?
???????????TransferData(0x06,0);??//Enry?Mode?Set,光標(biāo)從右向左加1位移動(dòng)?
???????????delay(100);????????????//大于100uS的延時(shí)程序?
??????????}?
//*************顯示函數(shù)******************************?
void?lcd_mesg(unsigned?char?code?*adder1)?
{?
????unsigned?char?i;?
????????TransferData(0x80,0);????//Set?Graphic?Display?RAM?Address?傳地址指令?
????????delay(100);?
????for(i=0;i<32;i++)?
????????{?
??????????????TransferData(*adder1,1);?
???????????????adder1++;?
????????}?
????????TransferData(0x90,0);????//Set?Graphic?Display?RAM?Address?
????????delay(100);?
????for(i=0;i<32;i++)?
????????{?
??????????????TransferData(*adder1,1);?
???????????????adder1++;?
????????}?
}?
//*************位置顯示函數(shù)******************************?
void?lcd_wxs1(unsigned?int?adder2)?
{?
????????TransferData(0x8C,0);????//Set?Graphic?Display?RAM?Address?傳地址指令?
????????delay(100);?????
??????????TransferData(adder2,1);?
????????TransferData(data1[16],1);?
}?
/***************鍵盤掃描子程序*************/?
keyscan()???
{?????
????char?sCCode,recode,tcode,i,keyvalue,temp;?
????P1=0xf0;??//發(fā)全“0”行掃描,列線輸入?
????if((P1&0xf0)!=0xf0)?//有鍵按下?
????????{??
????????????delay1(10);???//延時(shí)去抖動(dòng)?
????????????tcode=0x01;?
???????????if((P1&0xf0)!=0xf0)?
????????????????{?
????????????????????for(i=0;i<4;i++)?
??????????????????????{?
????????????????????????sccode=~tcode;??//掃描初始值?
???????????????????????P1=sccode;?????//輸出行掃描碼?
???????????????????????if((P1&0XF0)!=0XF0)??//本行有鍵按下?
????????????????????????????{?
??????????????????????????????recode=P1&0xf0;?
??????????????????????????????//recode=recode>>4;?
??????????????????????????????recode=recode+0x0f;?
??????????????????????????????temp=((~sccode)+(~recode));?
??????????????????????????????keyvalue=Key_return(temp);??//返回特征碼?
??????????????????????????????return?keyvalue;?
????????????????????????????}?
?????????????????????????else?
????????????????????????tcode=tcode<<1;??//行掃描碼左移一位?
?????????????????????????}?
????????????????}?
????????????}?
????else?
????return?keyvalue;??//無鍵按下,返回0?
}?
/***************查鍵值子程序*************/?
Key_return(char?keyvalue)?
{?
????unsigned?int?Key_num;?
??//keyword=keyvalue;?
?????switch(keyvalue)?
???????????{?
???????????case(0x11):?
??????????????????????{?
??????????????????????Key_num=0x00;?
??????????????????????}break;?
???????????case(0x12):?
??????????????????????{?
??????????????????????Key_num=0x04;?
??????????????????????}break;?
???????????case(0x14):?
??????????????????????{?
??????????????????????Key_num=0x08;?
??????????????????????}break;?
???????????case(0x18):?
??????????????????????{?
??????????????????????Key_num=0x0c;?
??????????????????????}break;?
???????????case(0x21):?
??????????????????????{?
??????????????????????Key_num=0x01;?
??????????????????????}break;?
???????????case(0x22):?
??????????????????????{?
??????????????????????Key_num=0x05;?
??????????????????????}break;?
???????????case(0x24):?
??????????????????????{?
??????????????????????Key_num=0x09;?
??????????????????????}break;?
???????????case(0x28):?
??????????????????????{?
??????????????????????Key_num=0x0d;?
??????????????????????}break;?
???????????case(0x41):?
??????????????????????{?
??????????????????????Key_num=0x02;?
??????????????????????}break;?
???????????case(0x42):?
??????????????????????{?
??????????????????????Key_num=0x06;?
??????????????????????}break;?
???????????case(0x44):?
??????????????????????{?
??????????????????????Key_num=0x0a;?
??????????????????????}break;?
???????????case(0x48):?
??????????????????????{?
??????????????????????Key_num=0x0e;?
??????????????????????}break;?
???????????case(0x81):?
??????????????????????{?
??????????????????????Key_num=0x03;?
??????????????????????}break;?
???????????case(0x82):?
???????????????????????{?
???????????????????????Key_num=0x07;?
???????????????????????}break;?
???????????case(0x84):?
???????????????????????{?
???????????????????????Key_num=0x0b;?
???????????????????????}break;?
???????????case(0x88):?
??????????????????????{?
??????????????????????Key_num=0x0f;?
??????????????????????}break;?
???????????default:break;?
???????????}?
???????????return?Key_num;?
}?
//********寫命令/數(shù)據(jù)*******************************?
void????TransferData(char?data1,bit?DI)??//傳送數(shù)據(jù)或者命令,當(dāng)DI=0是,傳送命令,?
??????????{?????????????????????????????????//當(dāng)DI=1,傳送數(shù)據(jù).?
????????????WRD=0;????//R/W="H",E="H",數(shù)據(jù)被讀到DB7--DB0,R/W="L",E="H→L",?DB7--DB0的數(shù)據(jù)被寫到IR或DR?
????????????RS=DI;????//RS="H",表示DB7--DB0為顯示數(shù)據(jù),?RS="L",表示DB7--DB0為顯示指令數(shù)據(jù)?
????????????delay(1);?
????????????P0=data1;?
????????????E=1;?
????????????delay(1);?
????????????E=0;?
???????????}?
//************延 時(shí)*******************************************?
void??delayms(unsigned?int?n)????????????//延時(shí)10×n毫秒程序?
???????????????????{?
??????????????????????unsigned?int?i,j;?
??????????????????????for(i=0;i
???????????????????}?
void??delay(unsigned?int?m)??????????????//延時(shí)程序?
???????????????????{?
??????????????????????unsigned?int?i,j;?
??????????????????????for(i=0;i
???????????????????}?
void?delay1(unsigned?int?t)?
{?
unsigned?int?i;?
for(i=0;i
;?
}?
//************主函數(shù)**************************************?
void?main(void)?
?????{?
?????unsigned?int?e;??
?????initinal();?//調(diào)用LCD字庫初始化程序??
?????delay(10);????????????//大于100uS的延時(shí)程序?
?????lcd_mesg(IC_DAT);??????//顯示中文漢字1?????
?????????while(1)?
????????{?
??????????e=keyscan();???//鍵盤掃描值?
??????????lcd_wxs1(data1[e]);?
????????}?
??????}?
//************結(jié) 束******************************************?
上一篇:DAC7611控制數(shù)/模轉(zhuǎn)換器程序
下一篇:交通燈模擬實(shí)驗(yàn)程序
推薦閱讀
史海拾趣
隨著市場(chǎng)競(jìng)爭(zhēng)的加劇,Datatronic公司意識(shí)到單純依靠技術(shù)創(chuàng)新已不足以保持競(jìng)爭(zhēng)優(yōu)勢(shì)。于是,公司開始調(diào)整市場(chǎng)策略,注重與客戶的溝通和合作。通過深入了解客戶需求,公司能夠提供更符合市場(chǎng)需求的定制化產(chǎn)品和服務(wù)。同時(shí),公司還加強(qiáng)了與上下游企業(yè)的合作,形成了穩(wěn)定的供應(yīng)鏈體系。
AMD(Advanced Micro Devices)在半導(dǎo)體行業(yè)中的發(fā)展經(jīng)歷了一個(gè)從追趕到逆襲的過程。在英特爾的強(qiáng)大市場(chǎng)壓力下,AMD通過不斷創(chuàng)新和技術(shù)提升,逐漸在處理器市場(chǎng)上獲得了一席之地。尤其是在游戲和高端計(jì)算領(lǐng)域,AMD的處理器憑借其出色的性能和性價(jià)比贏得了眾多消費(fèi)者的青睞。
三星(Samsung)原本是一家以家電和電子產(chǎn)品為主的綜合性企業(yè)。然而,在半導(dǎo)體行業(yè)快速發(fā)展的背景下,三星決定加大在半導(dǎo)體領(lǐng)域的投入。經(jīng)過數(shù)十年的努力,三星不僅在存儲(chǔ)芯片領(lǐng)域取得了顯著成就,還在邏輯芯片和代工業(yè)務(wù)方面取得了重要進(jìn)展。如今,三星已成為全球領(lǐng)先的半導(dǎo)體企業(yè)之一。
面對(duì)國內(nèi)市場(chǎng)的飽和,BOOKHAM公司決定實(shí)施國際化戰(zhàn)略,拓展海外市場(chǎng)。公司先后在多個(gè)國家和地區(qū)設(shè)立了分支機(jī)構(gòu),積極參加國際電子展會(huì)和交流活動(dòng),與國際同行建立起了廣泛的合作關(guān)系。通過不斷的努力,BOOKHAM公司的產(chǎn)品逐漸打入國際市場(chǎng),公司的知名度和影響力也得到了顯著提升。
隨著國內(nèi)市場(chǎng)的逐漸飽和,Able Systems公司開始將目光投向國際市場(chǎng)。通過參加國際展覽、建立海外銷售渠道等方式,公司成功將產(chǎn)品推向了全球范圍。同時(shí),公司還積極與國際知名企業(yè)合作,共同開發(fā)新產(chǎn)品,進(jìn)一步提升了公司在國際市場(chǎng)的競(jìng)爭(zhēng)力。
酷派有一個(gè)API, int YLMsgBox(TCHAR *content, TCHAR *caption, int iType) 請(qǐng)問這個(gè)MessageBox是什么樣子呢?跟他自己的UI是一個(gè)風(fēng)格還是?? 還有就是返回值是什么含義?要是是MessageBox的話,用戶點(diǎn)擊不同的Button,返回值應(yīng)該不一樣吧? 還有,這 ...… 查看全部問答∨ |
|
因?yàn)橛袝r(shí)候用戶可能翻頁的速度很快 我必須速度準(zhǔn)備好圖片,但是有時(shí)候圖片實(shí)在太大了 需要等待很久(比如說一秒) 目前IPHONE 在滑動(dòng)過快的時(shí)候 是顯示一張比較模糊的圖片,不曉得是怎么實(shí)現(xiàn)的 大家有什么好方法 進(jìn)來talk talk… 查看全部問答∨ |
為滿足各大企業(yè)及研發(fā)機(jī)構(gòu)對(duì)嵌入式操作系統(tǒng)VxWorks人才需求,順應(yīng)廣大學(xué)員學(xué)習(xí)嵌入式操作系統(tǒng)、獲得國際認(rèn)證證書、增強(qiáng)就業(yè)競(jìng)爭(zhēng)力、取得高薪職位的要求,上海雙實(shí)科技與上海張江信息技術(shù)專修學(xué)院繼續(xù)合作舉辦VxWorks嵌 ...… 查看全部問答∨ |
boot.hv是放在HIVE BOOT SECTION ;END BOOT SECTION之間的,在系統(tǒng)啟動(dòng)的時(shí)候?qū)崿F(xiàn)加載! 那么,在注冊(cè)表中的其它部分是怎么確認(rèn)分別歸屬于default.hv和user.hv的, 是不是有什么標(biāo)簽? … 查看全部問答∨ |
電路說明:1,電路對(duì)R265,R256,R232加熱。2,U88用來監(jiān)測(cè)MOS管的電流。問題:U87:A所起的作用是什么?幾個(gè)電阻DNS了,看不懂,希望有人能夠提供幫助… 查看全部問答∨ |
-------首先要謝謝EEWorld和SEED對(duì)我的信任,給了我這個(gè)難得試用的機(jī)會(huì)。對(duì)于規(guī)模較小的公司來說,設(shè)計(jì)完整,做工精煉的開發(fā)板都是一項(xiàng)不小的開銷,何況是對(duì)于工程師個(gè)人。所以EEWorld和SEED能提供這樣的試用機(jī)會(huì),我十分高興也很興奮。第二,說說 ...… 查看全部問答∨ |
我用STM207,寫EEPROM時(shí)會(huì)導(dǎo)致CPU復(fù)位,,不知是何故,, 只要把串口通訊線接上, 一寫EEPROM就會(huì)死機(jī)復(fù)位,,,. 拔掉好像不死,,,,怎么會(huì)這樣,,,,哪位高人請(qǐng)指點(diǎn)指點(diǎn)… 查看全部問答∨ |
我*,杭州電子市場(chǎng)jlinkV8的仿真器很便宜!我現(xiàn)在用的V6的當(dāng)初還要了1K多,剛才問了一下開增值發(fā)票才160,本人做技術(shù),不是做廣告,所以不說地址,只是讓大家買的時(shí)候有個(gè)心里價(jià)位。 我用的是jlinkV6.0(自已當(dāng)時(shí)在網(wǎng)上下來做的板子 )的SWD調(diào) ...… 查看全部問答∨ |
自己做的板子,把板子連到路由器上,然后用PC機(jī)訪問板子, 如果PC機(jī)是用網(wǎng)線和路由器連接的,那么可以正常訪問,但是如果用無線連的就訪問不了,糾結(jié)了, 哪位高人指點(diǎn)一下… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 神經(jīng)形態(tài)芯片可能是革新機(jī)器人實(shí)時(shí)電機(jī)控制的未來
- 從三個(gè)方面理解ARM嵌入式系統(tǒng)
- 自動(dòng)報(bào)警 基于MCU的家庭防盜報(bào)警系統(tǒng)的設(shè)計(jì)
- 存儲(chǔ)控制器及其訪問外設(shè)的原理
- 基于51系列單片機(jī)的智能照明控制系統(tǒng)設(shè)計(jì)方案
- 基于STM32的四旋翼飛行器控制系統(tǒng)
- 單片機(jī)應(yīng)用編程技巧解析
- 基于89C52的教室智能節(jié)能照明系統(tǒng)設(shè)計(jì)
- 一種新型的雨量光照傳感器的設(shè)計(jì)
- OMNIMATE® 4.0鼠籠式板載連接器
- 呼朋喚友,傳播電源設(shè)計(jì)的秘密!
- EEworld獨(dú)家原創(chuàng)視頻:大話TI CC2650,邀你來看!
- 免費(fèi)申請(qǐng)|Maxim 高性能模擬工具包(內(nèi)含78個(gè)器件)
- VISHAY工業(yè)電源主題月 幸運(yùn)闖關(guān)贏大獎(jiǎng)!
- Microchip 有獎(jiǎng)直播 | 解鎖 SAM M0+、M23 和 M4 ARM® 單片機(jī)架構(gòu)和強(qiáng)大的外設(shè)功能
- 金秋十月,我們跟金爾雅老師學(xué)MSP432
- Vicor 更好的供電方式,更高的性能、功能性及可靠性
- 快速獲取TI 工業(yè)電機(jī)驅(qū)動(dòng)資源 答題贏好禮
- 有獎(jiǎng)直播:安森美電感式位置傳感器接口 NCS32100
- 詳解數(shù)控車床機(jī)器人
- 未來多功能機(jī)器人將是工業(yè)領(lǐng)域主流
- 激光機(jī)器人步入規(guī)?;瘧?yīng)用將解決以下問題
- 解析仿生機(jī)器人為了發(fā)展方向及趨勢(shì)
- 解析環(huán)保機(jī)器人未來如何發(fā)展
- atmega128 bootloader程序在IAR-AVR下 linker文件的配置及原因
- 使用eclipse Arduino IDE開發(fā) AVR程序
- AVR開發(fā) Arduino方法(附二) 故障排除:燒錄引導(dǎo)程序
- AVR開發(fā) Arduino方法(七) 嵌入式操作系統(tǒng)FreeRTOS
- AVR開發(fā) Arduino方法(六) 內(nèi)存子系統(tǒng)