導航:首頁 > 操作系統 > 32單片機檢測io口電平程序

32單片機檢測io口電平程序

發布時間:2022-06-28 22:29:38

① 怎樣用單片機的一個IO口識別三種電平狀態並分別執行不同輸出:(1)高電平 (2)脈沖電平 (3)低電平

缺少條件,信號沒有格式則無法檢測到正確數據。
假設:每個數據周期為2S,自電平變化後開始計時,0.2S采樣一次,5次後記錄電平類型。高電平為1,低電平為0。每兩次采樣為一組,若組數據為11則為高電平,00為低電平,其他為脈沖。
此方法,接收特定數據時會出現錯誤。自己完善吧。

② 單片機IO口輸入電平問題

第一點,按鍵不要和數碼管使用同一個I/O腳,互相影響。按鍵要單獨用一個I/O腳。

第二點,非要這么做(因I/O腳不夠用),關鍵問題是那個按鍵接在什麼位置了,如下圖的接法才行。如果是接在LED和電阻之間了就是你這種結果。

第三點,把那個電阻的阻值加大為300~500毆。

③ 關於單片機IO口電平被拉低,重燒程序後恢復正常,是什麼原因造成的

單片機在上電瞬間,它的IO口和內部各寄存器的狀態,叫做初始態,一般datasheet上都會給出明確說明。大多數單片機的IO口在上電瞬間,為了不影響外部電路工作,一般IO口都是輸入的高阻態。

④ 怎樣用單片機的IO口檢測市電的高低電平

首先,要知道單片機是多大的晶振,然後指令周器是等於多少個機器周期。個樣才能算出一條指令的執行時間。首先,用C寫的,到底他編譯出來的匯編語句是什麼也要搞清楚。
當掃描用戶程序結束後,可編程邏輯控制器就進入輸出刷新階段。在此期間,CPU按照I/O映象區內對應的狀態和數據刷新所有的輸出鎖存電路,再經輸出電路驅動相應的外設。這時,才是可編程邏輯控制器的真正輸出。

⑤ stm32f4單片機 如何讓IO口輸出低電平

STM32代表ARM Cortex-M內核的32位微控制器,具有高性能,實時性強,低功耗,便於低電壓操作等優點,同時還易於開發。
按內核架構分,有STM32F103「增強型」系、STM32F101「基本型」系列、STM32F105、STM32F107「互聯型」系列。其中增強型系列時鍾頻率達到72MHz,是同類產品中性能最高的產品;基本型時鍾頻率為36MHz,以16位產品的價格得到比16位產品大幅提升的性能,是32位產品用戶的最佳選擇。
兩個系列都內置32K到128K的快閃記憶體,不同的是 SRAM的最大容量和外設介面的組合。時鍾頻率72MHz時,從快閃記憶體執行代碼,STM32功耗36mA,是32位市場上功耗最低的產品,相當於0.5mA/MHz。
在STM32F105和STM32F107互連型系列微控制器之前,意法半導體已經推出STM32基本型系列、增強型系列、USB基本型系列、互補型系列;新系列產品沿用增強型系列的72MHz處理頻率。
內存包括64KB到256KB快閃記憶體和 20KB到64KB嵌入式SRAM。新系列採用LQFP64、LQFP100和LFBGA100三種封裝,不同的封裝保持引腳排列一致性,結合STM32平台的設計理念,開發人員通過選擇產品可重新優化功能、以最小的硬體變化來滿足個性化的應用需求。

⑥ 能否使用51單片機檢測I/O口上是否有高電平輸入,如果有就執行中斷,這樣應該怎樣寫程序啊

程序1;檢測io腳電平
如果有 進入程序2
如果沒有 進入程序3
就這樣寫就行了

⑦ 求一個STM32讀取IO口電平的程序

不需要上下拉么?你用萬用表量量管腳電壓是多少,搞不好不是代碼問題。

我的代碼和你幾乎一模一樣

	GPIO_InitStructure.GPIO_Pin=DI_DETECT_PIN;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;
GPIO_Init(DI_CKECK_GPIO,&GPIO_InitStructure);

uint8status=GPIO_ReadInputDataBit(DIDO_CKECK_GPIO,pin);


⑧ 單片機IO口檢測和輸出控制自動化代替機械按鍵

我們這邊有個芯聖公司的HC18P23xL系列的晶元能滿足你說的功能需求,功能比AT89C51強大,價格更具優勢。代碼如下:
void main()
{
ANSELL=0X01; //1=AD(simulation models)0=I/O(digital models)
ANSELH=0X00; //1=AD(simulation models)0=I/O(digital models)
TRISA=0X03; //1 input,0 output 設置PORTA0 PORTA1為檢測輸入口,PORTA2 PORTA3 PORTA4 PORTA5為輸出口
PORTA=0X02; //1 high , 0 low
WPUA=0XFD; //1 disenable high pull ,0 enable high pull 設置 PORTA1開啟內部上拉電阻
WPDA=0xfE; //1 disenable down pull ,0 enable down pull 設置PORTA0 開啟內部下拉電阻
PORTA2 = 1;
PORTA3 = 0;
PORTA4 = 1;
PORTA5 = 0;
while(1)
{
if (PORTA0 == 1)
{
Delay100ms(50);
PORTA2 = 0;
PORTA3 = 1;
Delay100ms(1);
PORTA2 = 1;
PORTA3 = 0;
}
if (PORTA1 == 0)
{
Delay100ms(50);
PORTA4 = 0;
PORTA5 = 1;
Delay100ms(1);
PORTA4 = 1;
PORTA5 = 0;
}
}
}
void Delay100ms(unsigned char i)
{
int j;
while(i--)
{
for(j = 0;j<2500;j++);
}
}
可購買晶元驗證。就要求所述定義的檢測部分存在現有軟體定義了PORTA0檢測高電平,延時5秒鍾,PORTA2輸出低,PORTA3輸出高,持續100毫秒,恢復PORTA2輸出高,PORTA3輸出低。
PORTA1檢測低電平,延時5秒鍾,PORTA4輸出低,PORTA5輸出高,持續100毫秒,恢復PORTA4輸出高,PORTA5輸出低。

⑨ stm32如何判讀輸入IO口的高低電平

1.先檢查io口初始化內容是不是作輸入了
2.檢查一下這個io口有沒有已經重復初始化了
3.檢查這個高電平是否超出了檢測范圍,看一下stm32晶元的spec

⑩ 單片機三個IO作為輸入,根據三個輸入口檢測到高電平,對應三組LED亮,程序怎樣寫

以AT89S52為例,假如以單片機的P10、P11、P12為輸入口,用於檢測高電平,P20、P21、P22作為LED驅動口。程序如下:
# include 「REG51.H」
sbit IN1=P1^0;
sbit IN2=P1^1;
sbit IN3=P1^2;
sbit LED1=P2^0;
sbit LED2=P2^1;
sbit LED3=P2^2;
mian()
{
char i=0;
while(1)
{
if(IN1=1)
LED1=1;
else
LED1=0;
if(IN2=1)
LED2=1;
else
LED2=0;
if(IN3=1)
LED3=1;
else
LED3=0;
for(i=0;i++;i<255);
}
}

閱讀全文

與32單片機檢測io口電平程序相關的資料

熱點內容
app易語言post怎麼學 瀏覽:963
地梁的箍筋加密區位置 瀏覽:300
二分法排序程序及編譯結果 瀏覽:677
日語命令形和禁止型 瀏覽:283
安裝軟體用管理員解壓 瀏覽:503
編譯原理代碼塊 瀏覽:398
小孩可以用壓縮面膜嗎 瀏覽:12
錐形倒角怎麼計演算法 瀏覽:880
java合並鏈表 瀏覽:505
pic單片機編譯器 瀏覽:803
麗水四軸加工中心編程 瀏覽:689
國產系統怎麼解壓 瀏覽:552
戰雙程序員 瀏覽:483
him觸摸編程軟體 瀏覽:931
植物大戰僵屍存檔怎麼轉移安卓 瀏覽:852
java棧的元素 瀏覽:739
程序員與籃球事件 瀏覽:676
app反編譯不完整 瀏覽:789
電腦上的文件夾怎麼調整 瀏覽:8
伺服器無響應是什麼原因呀 瀏覽:985