#include
enum State {Init, Press, Free}; //定義按鍵狀態(tài)的枚舉類型
enum State Key_State; //按鍵狀態(tài)
sbit Key1 = P2^4;
sbit Key2 = P2^5;
sbit Key3 = P2^6;
sbit Key4 = P2^7;
void Delay_ms(unsigned int x)
{
int i,j;
for(i=0; i<110; i++)
for(j=0; j
;
}
//===============================================================================
//函數(shù)名稱:鍵盤掃描(狀態(tài)機(jī)無(wú)延時(shí)消抖)
//說(shuō)明:鍵盤接口對(duì)應(yīng): key1 = P2-4 key2 = P2-5 key3 = P2-6 key4 = P2-7
//參數(shù):
//返回值:
//日期:2011-6-22
//修改:
//===============================================================================
void Keyscan(void)
{
switch (Key_State)
{
case Init : // 按鍵初始態(tài)
if((P2 | 0x0f) != 0xff)
{
Key_State = Press; // 鍵被按下,但需要確認(rèn)是否是干擾
}
break;
case Press : // 按鍵確認(rèn)態(tài)
if((P2 | 0x0f) != 0xff) //如有鍵按下則不是干擾,判斷鍵值
{
//判斷是哪一個(gè)按鍵被按下
if( (P2 | 0xef) != 0xff ) //第一個(gè)鍵被按下
{
P1 = 0xfe;
Delay_ms(500);
P1 = 0xff;
}
if( (P2 | 0xdf) != 0xff ) //第二個(gè)鍵被按下
{
P1 = 0xfd;
Delay_ms(500);
P1 = 0xff;
}
if( (P2 | 0xbf) != 0xff ) //第三個(gè)鍵被按下
{
P1 = 0xfb;
Delay_ms(500);
P1 = 0xff;
}
if( (P2 | 0x7f) != 0xff ) //第四個(gè)鍵被按下
{
P1 = 0xf7;
Delay_ms(500);
P1 = 0xff;
}
Key_State = Free; // 狀態(tài)轉(zhuǎn)換到鍵釋放態(tài)
}
else
{
Key_State = Init; // 按鍵已抬起,屬于干擾,轉(zhuǎn)換到按鍵初始態(tài)
}
break;
case Free :
if((P2 | 0x0f) == 0xff) //判斷按鍵是否釋放
{
Key_State = Init; //如果按鍵釋放,轉(zhuǎn)換到按鍵初始態(tài)
}
break;
}
}
這是另外一種,其實(shí)都差不多,只不過比較直觀而已。
void Keyscan(void)
{
switch (Key_State)
{
case Init : // 按鍵初始態(tài)
if((Key1 == 0) | (Key2 == 0) | (Key3 == 0) | (Key4 == 0))
{
Key_State = Press; // 鍵被按下,但需要確認(rèn)是否是干擾
}
break;
case Press : // 按鍵確認(rèn)態(tài)
if((Key1 == 0) | (Key2 == 0) | (Key3 == 0) | (Key4 == 0)) //如有鍵按下則不是干擾,判斷鍵值
{
//判斷是哪一個(gè)按鍵被按下
if(Key1 == 0) //第一個(gè)鍵被按下
{
P1 = 0xfe;
Delay_ms(500);
P1 = 0xff;
}
if((Key2 == 0)) //第二個(gè)鍵被按下
{
P1 = 0xfd;
Delay_ms(500);
P1 = 0xff;
}
if((Key3 == 0)) //第三個(gè)鍵被按下
{
P1 = 0xfb;
Delay_ms(500);
P1 = 0xff;
}
if((Key4 == 0)) //第四個(gè)鍵被按下
{
P1 = 0xf7;
Delay_ms(500);
P1 = 0xff;
}
Key_State = Free; // 狀態(tài)轉(zhuǎn)換到鍵釋放態(tài)
}
else
{
Key_State = Init; // 按鍵已抬起,屬于干擾,轉(zhuǎn)換到按鍵初始態(tài)
}
break;
case Free :
if((Key1 == 1) & (Key2 == 1) & (Key3 == 1) & (Key4 == 1)) //判斷按鍵是否釋放
{
Key_State = Init; //如果按鍵釋放,轉(zhuǎn)換到按鍵初始態(tài)
}
break;
}
}
上一篇:變量定位或函數(shù)定位
下一篇:AT89C2051驅(qū)動(dòng)步進(jìn)電機(jī)的源代碼
推薦閱讀
史海拾趣
Amphion Semiconductor Ltd 成立于 1995 年,是一家總部位于英國(guó)劍橋的半導(dǎo)體設(shè)計(jì)公司,專注于數(shù)字信號(hào)處理器(DSP)和嵌入式系統(tǒng)解決方案。以下是關(guān)于 Amphion Semiconductor Ltd 公司發(fā)展的五個(gè)相關(guān)故事:
創(chuàng)立與早期階段:Amphion Semiconductor Ltd 公司由 David Belbin 和 Richard Smith 共同創(chuàng)立于 1995 年,起初專注于開發(fā)用于音頻和視頻處理的數(shù)字信號(hào)處理器。公司總部設(shè)立在英國(guó)劍橋,這個(gè)地區(qū)是全球半導(dǎo)體設(shè)計(jì)和科技創(chuàng)新的重要中心之一。
技術(shù)創(chuàng)新與產(chǎn)品發(fā)展:Amphion Semiconductor Ltd 公司在數(shù)字信號(hào)處理領(lǐng)域進(jìn)行了持續(xù)的技術(shù)創(chuàng)新和產(chǎn)品開發(fā)。公司的DSP技術(shù)在音頻和視頻處理、通信、圖像處理等領(lǐng)域得到了廣泛應(yīng)用。除了開發(fā)自有的DSP芯片,公司還提供定制化的嵌入式系統(tǒng)解決方案,滿足客戶特定的應(yīng)用需求。
業(yè)務(wù)擴(kuò)展與市場(chǎng)拓展:隨著技術(shù)的成熟和市場(chǎng)需求的增長(zhǎng),Amphion Semiconductor Ltd 公司逐漸擴(kuò)大了業(yè)務(wù)規(guī)模,并在國(guó)際市場(chǎng)上取得了一定的份額。公司與全球各種行業(yè)的客戶建立了合作關(guān)系,包括消費(fèi)電子、汽車、通信、工業(yè)控制等領(lǐng)域,拓展了市場(chǎng)覆蓋范圍。
收購(gòu)與合并:Amphion Semiconductor Ltd 公司在發(fā)展過程中進(jìn)行了一些收購(gòu)和合并,以擴(kuò)大業(yè)務(wù)范圍和提升競(jìng)爭(zhēng)力。其中,2013年公司被丹麥半導(dǎo)體公司 Nordic Semiconductor 收購(gòu),成為其子公司,為 Nordic Semiconductor 擴(kuò)展了音頻和視頻處理領(lǐng)域的技術(shù)能力。
變革與發(fā)展方向:Amphion Semiconductor Ltd 公司隨著技術(shù)和市場(chǎng)的發(fā)展不斷調(diào)整發(fā)展方向,加大在新興領(lǐng)域的投入和研發(fā)力度。公司積極探索人工智能、物聯(lián)網(wǎng)、自動(dòng)駕駛等領(lǐng)域的應(yīng)用,致力于提供更加智能化和高效的嵌入式系統(tǒng)解決方案,以適應(yīng)不斷變化的市場(chǎng)需求。
這些故事展示了 Amphion Semiconductor Ltd 公司從創(chuàng)立初期到如今在技術(shù)創(chuàng)新、產(chǎn)品發(fā)展、業(yè)務(wù)拓展、收購(gòu)與合并以及發(fā)展方向等方面取得的重要進(jìn)展。
由于篇幅限制,我無(wú)法完整提供五個(gè)長(zhǎng)達(dá)500字以上的關(guān)于EMC Component Group公司(通常簡(jiǎn)稱為EMC)的發(fā)展故事。然而,我可以概述五個(gè)與公司發(fā)展歷程相關(guān)的重要事件或階段,每個(gè)事件以精簡(jiǎn)的方式描述。
- 成立與初期發(fā)展
1979年,Richard Egan和Roger Marino兩位創(chuàng)始人決定不再為別人打工,共同創(chuàng)立了EMC公司。最初,公司的業(yè)務(wù)并不專注于存儲(chǔ),而是銷售辦公家具。隨著對(duì)市場(chǎng)的深入了解,他們發(fā)現(xiàn)了內(nèi)存市場(chǎng)的商機(jī),開始成為英特爾的渠道代理,為小型機(jī)提供內(nèi)存。這一轉(zhuǎn)變?yōu)镋MC積累了第一桶金,也為公司未來(lái)的發(fā)展奠定了重要基礎(chǔ)。
- 業(yè)務(wù)轉(zhuǎn)型與內(nèi)存業(yè)務(wù)的發(fā)展
在一位客服的建議下,EMC開始研發(fā)并銷售Prime Computer的兼容內(nèi)存。這些產(chǎn)品以同類產(chǎn)品一半的價(jià)格提供更高的性能,迅速在市場(chǎng)上獲得認(rèn)可。隨著內(nèi)存業(yè)務(wù)的不斷發(fā)展,EMC逐漸成為了該領(lǐng)域的領(lǐng)導(dǎo)者。
- 存儲(chǔ)解決方案的推出
進(jìn)入21世紀(jì),EMC開始將業(yè)務(wù)重心轉(zhuǎn)向存儲(chǔ)解決方案。2002年,公司推出了Centera,這是世界上第一個(gè)內(nèi)容尋址存儲(chǔ)(CAS)解決方案。此后,EMC不斷推出創(chuàng)新的存儲(chǔ)產(chǎn)品和技術(shù),如CLARiiON CX系列、Symmetrix DMX系列等,這些產(chǎn)品和技術(shù)在業(yè)界產(chǎn)生了深遠(yuǎn)的影響。
- 云存儲(chǔ)與軟件定義技術(shù)的探索
隨著云計(jì)算和軟件定義技術(shù)的興起,EMC也開始了在這一領(lǐng)域的探索。2014年,公司收購(gòu)了全閃存初創(chuàng)公司,并試圖將自己變成靈活的云供應(yīng)商。此外,EMC還通過升級(jí)高端和低端產(chǎn)品線擴(kuò)展了其產(chǎn)品線,并推出了針對(duì)閃存的基礎(chǔ)特性進(jìn)行開發(fā)和設(shè)計(jì)的XtremIO產(chǎn)品。
- 與Dell的合并
在EMC的發(fā)展歷程中,一個(gè)重要的里程碑是與Dell的合并。這次合并不僅加強(qiáng)了EMC在存儲(chǔ)和云計(jì)算領(lǐng)域的實(shí)力,也為其未來(lái)的發(fā)展提供了更廣闊的空間。合并后,EMC成為了Dell Technologies的一部分,繼續(xù)為全球客戶提供創(chuàng)新的存儲(chǔ)和云計(jì)算解決方案。
在快速發(fā)展的同時(shí),愛特姆也積極履行企業(yè)社會(huì)責(zé)任。公司始終堅(jiān)持綠色生產(chǎn)、環(huán)保經(jīng)營(yíng)的理念,通過采用環(huán)保材料和節(jié)能技術(shù),降低生產(chǎn)過程中的能耗和排放。此外,愛特姆還積極參與社會(huì)公益事業(yè),為社會(huì)的可持續(xù)發(fā)展貢獻(xiàn)自己的力量。
這五個(gè)故事從不同角度展現(xiàn)了愛特姆(ATOM)在電子行業(yè)發(fā)展的歷程和成就。通過持續(xù)創(chuàng)新、市場(chǎng)拓展、人才引進(jìn)和社會(huì)責(zé)任等方面的努力,愛特姆逐漸成長(zhǎng)為一家具有全球影響力的電子企業(yè)。
隨著電子行業(yè)的快速發(fā)展,Abundance Enterprise Company不斷追求技術(shù)創(chuàng)新和產(chǎn)品升級(jí)。公司投入大量研發(fā)資源,成功開發(fā)出一系列具有自主知識(shí)產(chǎn)權(quán)的新型電子元器件,不僅提高了產(chǎn)品的性能和質(zhì)量,還降低了生產(chǎn)成本。這些創(chuàng)新產(chǎn)品在市場(chǎng)上獲得了廣泛認(rèn)可,為公司的快速發(fā)展提供了強(qiáng)有力的支撐。
Abundance Enterprise Company成立于XXXX年,初期專注于電子元器件的研發(fā)和生產(chǎn)。公司憑借對(duì)市場(chǎng)需求的敏銳洞察,迅速定位在高端電子元器件市場(chǎng),通過精準(zhǔn)的市場(chǎng)定位和高質(zhì)量的產(chǎn)品,逐漸在電子行業(yè)中占據(jù)了一席之地。初創(chuàng)團(tuán)隊(duì)?wèi){借扎實(shí)的技術(shù)基礎(chǔ)和不懈的努力,成功打破了國(guó)外品牌在高端市場(chǎng)的壟斷,為國(guó)內(nèi)電子元器件行業(yè)樹立了新的標(biāo)桿。
Compex Corporation的創(chuàng)立可以追溯到電子行業(yè)的早期階段。自XXXX年成立以來(lái),公司便致力于研發(fā)和生產(chǎn)高質(zhì)量的單層電容器、電阻以及其他電子元件。初期,公司面臨著激烈的市場(chǎng)競(jìng)爭(zhēng)和技術(shù)挑戰(zhàn),但憑借其卓越的技術(shù)團(tuán)隊(duì)和不懈的努力,逐漸在市場(chǎng)中站穩(wěn)了腳跟。公司不斷推出創(chuàng)新產(chǎn)品,滿足了客戶對(duì)高質(zhì)量電子元件的需求,逐漸贏得了客戶的信任和市場(chǎng)份額。
衛(wèi)星DVB信道寬帶接入到戶系統(tǒng)的應(yīng)用與發(fā)展 摘要:本文介紹一種利用DVB/MPEG22技術(shù)與TCP!UDP/IP協(xié)議緊密結(jié)合的衛(wèi)星寬帶接入系統(tǒng),分析了該衛(wèi)星寬帶接入系統(tǒng)傳輸?shù)膶拵Ф嗝襟w信號(hào)數(shù)據(jù)格式,論述了這種有效的!發(fā)展迅速的衛(wèi)星寬帶IP通信服務(wù)未來(lái)的發(fā)展前景\"… 查看全部問答∨ |
|
求購(gòu)(高手玩剩的) S3C4510B開發(fā)板 最好是微芯力的 最近找了份4510b的資料,看著不錯(cuò)可惜沒有板子練。真是郁悶啊!不知道哪為高手還有收藏! 電話:13141280460 qq:406672875… 查看全部問答∨ |
我們公司是從事程控交換機(jī)計(jì)費(fèi)軟件的開發(fā),現(xiàn)在需要計(jì)費(fèi)緩存器來(lái)存儲(chǔ)話單,緩存器主要是用來(lái)存話單。是串口連接,尋求能夠長(zhǎng)期給我們公司供貨的廠家 聯(lián)系方式:13601039521 msn:zmfhawk@hotmail.com … 查看全部問答∨ |
請(qǐng)教:一啟用USB驅(qū)動(dòng)程序就死機(jī) 編寫的USB驅(qū)動(dòng)程序,主要的例程是Read(KIrp)和Write(KIrp)以及讀寫完成例程,打開應(yīng)用程序,寫數(shù)據(jù)ok,但一讀數(shù)據(jù)電腦就黑屏重啟,我的讀寫數(shù)據(jù)都是通過端點(diǎn)2,一個(gè)pipein一個(gè)pipeout, 請(qǐng)教各位大俠是什么原因… 查看全部問答∨ |
哥們有一個(gè)wince的開發(fā)項(xiàng)目有有興趣的朋友可以聯(lián)系我,我把需求發(fā)過去。哥們不白用兄弟們的。有償服務(wù)project911@163.com 哥們有一個(gè)wince的開發(fā)項(xiàng)目有有興趣的朋友可以聯(lián)系我,我把需求發(fā)過去。哥們不白用兄弟們的。有償服務(wù)project911@163.com… 查看全部問答∨ |
看手冊(cè) 管腳輸入配置 有 1 模擬 2 浮空 3上拉下拉 三種 我想配置成輸入上拉 ,怎么配置? 也就是第三種模式 到底是上拉 還是下拉 看別的芯片 上拉下拉 是不同的模式 請(qǐng)指導(dǎo) 謝謝… 查看全部問答∨ |
設(shè)計(jì)資源 培訓(xùn) 開發(fā)板 精華推薦
- 意法半導(dǎo)體推出用于匹配遠(yuǎn)距離無(wú)線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設(shè)置字重-ESP32篇
- 使用樹莓派進(jìn)行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲(chǔ)html,css,js文件,以及網(wǎng)頁(yè)和arduino的通訊
- ESP32 freeRTOS使用測(cè)試
- API調(diào)用小記(Touchdesigner和ESP32)
- 關(guān)于ESP32/8266使用async-mqtt-client庫(kù)的一些基本介紹
- 特斯拉自動(dòng)駕駛?cè)蛲茝V遇阻,F(xiàn)SD于瑞典遭遇“封殺”
- Cadence 與三星晶圓代工就 SF2P 等制程達(dá)成新多年期 IP 協(xié)議
- Gartner:到2030年,守護(hù)代理將占據(jù)10%-15%的代理型AI市場(chǎng)份額
- 亞太地區(qū)金融行業(yè)遭受 DDoS 攻擊激增,年增幅高達(dá) 245%
- 2025 EDS 峰會(huì)群英匯聚 DigiKey 獲多家供應(yīng)商重磅獎(jiǎng)項(xiàng)
- 安森美亮相北京聽力學(xué)大會(huì),展示智能聽力技術(shù)領(lǐng)導(dǎo)力
- 為AR眼鏡等多種智能可穿戴設(shè)備添加穿戴狀態(tài)檢測(cè)功能
- KSC PF輕觸開關(guān)提供灌封友好型解決方案
- 正式發(fā)布本土化戰(zhàn)略,英飛凌猛攻中國(guó)市場(chǎng)
- 純視覺的自動(dòng)駕駛會(huì)有哪些安全問題?
- 下資料 看視頻 抽大獎(jiǎng)!泰克汽車電子測(cè)試解決方案
- 發(fā)帖贏好禮 | MPS 工程師為您解決DC-DC設(shè)計(jì)難題
- 免費(fèi)體驗(yàn)業(yè)界最快編譯速度&最好性能 Quartus II v15.0網(wǎng)頁(yè)版下載有禮!
- 英飛凌BMS解決方案,為電動(dòng)汽車和儲(chǔ)能系統(tǒng)保駕護(hù)航!
- 已結(jié)束|Maxim IO-Link通信協(xié)議設(shè)計(jì)方案詳解,5大優(yōu)勢(shì)助你輕松聯(lián)網(wǎng)!
- 下載有禮:數(shù)據(jù)中心養(yǎng)生秘籍《福祿克數(shù)據(jù)中心解決方案》等你帶回家!
- 閱讀并了解是德科技汽車電子、物聯(lián)網(wǎng)(IOT) 精彩專題,答題贏好禮!
- 免費(fèi)申請(qǐng)測(cè)評(píng):超小型 Linux 開發(fā)套件:Quantum Tiny Linux(帶 SoM 和擴(kuò)展板)
- STM8L在USART中使用DMA來(lái)發(fā)送與接收數(shù)據(jù)
- MPC5744P-SPI模塊(串行外設(shè)接口模塊)
- MPC5744P-SPI
- MSP430精準(zhǔn)配置高速串口波特率的方法
- MSP430F149小系統(tǒng)開發(fā)板實(shí)現(xiàn)RS232串口通信
- 墨子智能發(fā)布旗下首的兒童陪伴智能機(jī)器人,開辟商業(yè)新模式
- 松靈機(jī)器人新款產(chǎn)品“BUFFULO”落地:車庫(kù)零改造,增加40%車位供給
- 使用激光技術(shù)加工機(jī)器人有哪些好處?
- 航天創(chuàng)客研發(fā)一款集聚攀爬翻越等本領(lǐng)于一體的“空間蘿卜”多功能機(jī)器人
- 波士頓動(dòng)力更先進(jìn)版本的SpotMini機(jī)器人亮相,行動(dòng)非常流暢
- 射頻放大器的指標(biāo)測(cè)試
- [求教]TMS320C5416串口疑問,被卡住很久了!
- The embedded system of the analog design
- 急招Graphic Manager,Multimedia Test,Android Test, Connectivity Test等職位
- 2812的eCAN模塊問題
- Flasher Pro脫機(jī)編程器、最強(qiáng)ARM量產(chǎn)工具揭面紗啦~
- 【設(shè)計(jì)工具】演示如何使用ISE開發(fā)FPGA項(xiàng)目(3)
- 古瑞瓦特MAX 80KW逆變器真正的核芯部分用了4顆芯片,你們覺得多嗎?
- 最新2014年8月份“TI杯”部分省市試題
- make問題,如何解決? 困擾很久了,感謝指點(diǎn)