實例目的
實例目的:掌握Proteus軟件的使用及調試方法,學習IO編程。
實例內容:
? 學習使用Proteus、ADS、Keil for ARM軟件,掌握繪制原理及編譯程序。
? 鍵盤輸入,當檢測到有按鍵輸入時,對發光二極管進行取反控制。使用
I/O口輸入方式對按鍵進行掃描。
實例步驟:
? 在Proteus中繪制原理圖。
? 在Keil for ARM中輸入程序,并編譯通過。
? 加載ELF程序,觀察仿真結果。
? 采用KEIL for ARM與PROTEUS的整合方式聯調。
知識點概括
LPC2000系列作為 “微控制器”,其GPIO特性就顯得很重要。它具有如下的特性:
①可以獨立控制每個GPIO口的方向(輸入/輸出模式);
②可以獨立設置每個GPIO的輸出狀態(高/低電平);
③所有GPIO口在復位后默認為輸入狀態。
LPC2114/2124微控制器具有兩個端口--P0和P1,可以作為GPIO使用的引腳數為46個。
LPC2210/2212/2214微控制器還包含另外兩個端口--P2和P3,這個兩個端口與外部存儲器總線復用,當它們全部作為GPIO使用時,GPIO引腳數多達112個
GPIO與控制寄存器的關系
相關寄存器描述
GPIO引腳值寄存器-IOxPIN
GPIO方向控制寄存器-IOxDIR:
GPIO輸出置位寄存器-IOxSET:
GPIO輸出清零寄存器-IOxCLR:
注意
①引腳設置為輸出方式時,輸出狀態由IOxSET和IOxCLR中最后操作的寄存器決定;
②大部分GPIO輸出為推挽方式(個別引腳為開漏輸出),正常拉出/灌入電流均為4mA(短時間極限值40mA);
③復位后默認所有GPIO為輸入模式。。
實例描述
功能:鍵盤輸入.當檢測到有按鍵輸入時,對發光二極管進行取反控制 使用I/O口輸入方式對按鍵進行掃描
平臺:NXP-LPC2124
環境:Keil4 + Proteus7
要求如圖
/******************************************************************************/
/* This file is part of the uVision/ARM development tools */
/* Copyright KEIL ELEKTRONIK GmbH 2002-2004 */
/*******************************************************************************
*File:Main.c
*功能: 鍵盤輸入.當檢測到有按鍵輸入時,對發光二極管進行取反控制
* 使用I/O口輸入方式對按鍵進行掃描
*******************************************************************************/
#include "config.h"
#define LEDCON 0x00000200 // P0.9引腳控制LED,低電平點亮
#define KEY 0x00008000 // P0.15引腳連接按鍵
/*******************************************************************************
*名稱:WaitKey()
*功能:等待一個有效按鍵.本函數有去抖功能
*******************************************************************************/
void WaitKey(void)
{
uint32 i;
while(1)
{
// 當按下P0.15以后會輸出低電平, P0.15位為0
while((IO0PIN & KEY) != 0); // 等待按鍵按下, IO0PIN & KEY) != 0表示IO0PIN的P0.15不是0, 標識沒有按下
for(i = 0; i < 50000; i++); // 延時消抖
// 電路中的脈沖可能不穩定, 也就是說可能出現, 電平瞬時反轉的情況
// 而且按下的過程, 由于兩塊電極有一定的抖動, 這段時間電平不穩定,
// 因此應該寫程序消除電極抖動產生的影響
//
// 我們開始先判斷電極P0.15是不是按下了, 如果按下了, 就延時一定時間再判斷P0.15是不是按下了[p0.15 == 0]
// 如果兩次檢測都P0.15 == 0我們才認為是一個有效的按下事件
if((IO0PIN & KEY) == 0) // 如果IO0PIN的P0.15位引腳為0, 說明按下了P0.15
{
break; // 停止等的閃爍
}
}
// 只有當用戶松開以后, LED燈才應該亮
while((IO0PIN & KEY) == 0); // 等待按鍵放開
}
/*******************************************************************************
*名稱:main()
*功能:讀取按鍵,控制LED閃爍
*******************************************************************************/
int main(void)
{
PINSEL0 = 0x00000000; // 設置所有引腳連接GPI0[功能選擇]
PINSEL1 = 0x00000000; //
IO0DIR |= LEDCON; // 設置LED控制口為輸出,其它I/O為輸入[將P0.9置1, P0.9用于輸出]
while( 1 )
{
IO0SET |= LEDCON; // 將P0.9引腳設置為輸出高電平 = 1[LED燈暗]
WaitKey( );
// 將P0.9引腳設置為輸出低電平 = 0[LED燈亮]
IO0CLR = LEDCON;
WaitKey( );
}
}
上一篇:LPC1788的spi使用
下一篇:ARM7嵌入式LPC21XX系列LED燈
推薦閱讀
史海拾趣
隨著觸控技術的興起,Azoteq在2004年增加了第二條產品線,以應對新興的電容式觸摸和接近感應產品市場。這一舉措使得Azoteq能夠緊跟市場趨勢,為客戶提供更多樣化的產品選擇。通過不斷的技術創新和市場拓展,Azoteq在這一領域逐漸取得了領先地位。
在電子行業的快速發展中,Conexcon Group以其前瞻性的技術視野,成功研發出一款新型智能芯片,這款芯片不僅性能卓越,而且功耗極低,迅速贏得了市場的青睞。公司憑借這一技術突破,逐步擴大了在國內外市場的份額,成為了行業內技術創新的領軍者。隨著產品線的不斷豐富,Conexcon Group逐漸形成了從芯片設計到整機制造的完整產業鏈,進一步鞏固了其在電子行業的領先地位。
BLT Circuit Services公司自創立之初,便專注于電子電路技術的研發與創新。在電子制造行業快速發展的背景下,公司投入大量資源進行技術研發,成功開發出一系列具有市場競爭力的電路板制造技術。這些技術的引入不僅提高了生產效率,還降低了生產成本,使得BLT Circuit Services的產品在市場上脫穎而出。
DSMI Electronics SA公司非常重視企業文化的建設和團隊建設。公司倡導開放、協作、創新、務實的企業文化,鼓勵員工積極參與技術創新和市場競爭。同時,DSMI還注重人才培養和引進,通過內部培訓、外部招聘等方式,不斷提升員工的素質和能力。這些努力為公司的持續發展提供了有力的人才保障。
面對激烈的市場競爭,DSMI Electronics SA公司始終堅持創新驅動的發展戰略。公司投入大量資源進行技術研發和產品創新,不斷推出具有更高性能、更低功耗、更小體積的新產品。這些創新產品不僅滿足了市場的多樣化需求,還引領了行業的技術發展方向。同時,DSMI還積極申請專利保護,保護自己的創新成果。
隨著公司的發展,Epic Games開始通過收購和投資來擴展其業務范圍。2007年8月20日,Epic Games收購了一家位于波蘭的游戲開發商People Can Fly,并成為其第一大股東。這次收購不僅為Epic Games帶來了更多的開發資源,也使其在游戲開發領域的實力得到了進一步提升。此外,Epic Games還積極投資其他有潛力的游戲開發商和團隊,以推動整個游戲行業的創新和發展。
誰用74HC245做過s51的下載線......希望大蝦們關注一下哈.......(急) 我用74HC245做的S51并行下載線, 怎么用聶忠強寫的那軟件燒寫時,檢測不到器件...... 如果有那位大俠用過,希望大蝦能把郵箱留下 。。。 哈哈......小弟一點點要求........謝謝.... 希望大蝦幫幫忙.....小弟....先謝了..... [ 本帖最后由 wang ...… 查看全部問答∨ |
如題。直接接在普通開關兩端的延時開關電路,不用改變目前的布線方式直接接與開關兩端, 可用原開關兩端引出兩個線作為一個控制信號,也可以加上聲控,光控功能, 下圖這個電路當可控硅導通時5,8兩端的電壓最多只有2V,怎么解決后面電路的供電問 ...… 查看全部問答∨ |
疊拓(原迪易通)信息技術有限公司 (Tieto),成立于1968年,是一家北歐的從事軟件解決方案的全外資集團公司,分別在赫爾辛基和斯德哥爾摩證券交易所掛牌。是綜合實力北歐地區第一,歐洲前三的IT業務供應商。 請將簡歷發送到 xiaoli.yang@tieto.co ...… 查看全部問答∨ |
|
如題 中興通訊 西安研究所 月薪:4500-7000,面談 如有興趣, 請電話聯系:029-88723851 郵件:bi.zehongxa@zte.com.cn 崗位要求: 嵌入式開發。 設備驅動開發。 要求:熟悉c ...… 查看全部問答∨ |
|
畢業設計 單片機控制的路燈系統 這幾天讓老師整的想哭的心情都有 那位前輩有 給小弟一份 謝謝 [ 本帖最后由 liutianyu 于 2012-2-10 10:05 編輯 ]… 查看全部問答∨ |
顯示三維圖像的LED吊燈 這是一家名為NOVA的公司為瑞士蘇黎世理工學院150年校慶設計的一盞超華麗的吊燈,5米見方,厚1米,重達3.3噸,一共用了300000顆LED,12顆為一組,球形燈泡封裝,能顯示1600萬種顏色~而最厲害的地方在于,由于它厚達1米,LED ...… 查看全部問答∨ |
有8個數碼管,每4個為一組,使用動態掃描來實現方法一:使用兩個浮點變量作為參數 void show(float digitron1,float digitron0); 在函數里面分別去digitron1、digitron0的各個位的數值,然后通 ...… 查看全部問答∨ |
今天發張單片機連接 4x3 數字鍵盤的電路,作者是美國電工羅伯辛海。很多應用中,都需要接一個用單片機控制的數字鍵盤,傳統方法是用很多I/O引腳,例如接一個數字快輸盤就要7個I/O腳。在這個電路中,只需要2個I/O 引腳就可以了。 大多數時鐘I/O都 ...… 查看全部問答∨ |