導航:首頁 > 操作系統 > 單片機p34

單片機p34

發布時間:2022-05-26 19:47:29

A. 為什麼stc89c52單片機的p34口高電平電壓只有0.8v

這個引腳你接大電流的負載了吧,可以把該引腳設置成推挽輸出,理論電流可達20ma。

B. 如何用單片機實現防空警報音

需要找到防空警報的頻率變化范圍,就可以實現。
下面給一個蜂鳴器模擬消防車報警聲;
*****************************************************************************/
#include <reg51.h>
#include <intrins.h>

#define uchar unsigned char
#define uint unsigned int

uchar Count;

sbit Key1 = P3^2 ;
sbit Key3 = P3^3 ;
sbit BEEP = P3^1 ; //蜂鳴器
sbit p34 = P3^4 ;

/********************************************************
延時函數
*********************************************************/
void delay(void)
{
uint k;
for(k=1700;k>0;k--);
}

/********************************************************
鍵控制函數
*********************************************************/
void key_control()
{

if(Key1==0)
{
while(Key1==0);
TR0=1;
}
if(Key3==0)
{
while(Key3==0);
TR0=0;
}
}
/********************************************************
主函數
*********************************************************/
main()
{
p34=0;
P0=0x0;
P1=0xff;
P2=0xff;
Count=0x00;
BEEP=1;

TMOD=0x01;
TH0=0x00;
TL0=0xff;
EA=1; ET0=1;

while(1)
{
do
{
Count++;
key_control();
delay();
}while(Count!=0xff);

do
{
Count--;
key_control();
delay();
}while(Count!=0x00);
}
}

/*********************************************************
Time0中斷函數
**********************************************************/
void Time0(void) interrupt 1 using 0
{
TH0=0xfe;
TL0=Count;
BEEP=~BEEP;
}

/*********************************************************/

C. STC11L02E 單片機 由P34口喚醒問題,懂的人進,哪位大俠能幫幫忙

P3.0 P3.4 P3.5 喚醒功能與 WAKE_CLKO 寄存器有關
WAKE_CLKO.4 =1 ; P3.4 允許喚醒
WAKE_CLKO.5 = 1 ; P3.5 允許喚醒
WAKE_CLKO.6 =1 ; P3.0 允許喚醒
這是數據手冊的測試程序
#include "reg51.h"
#include "intrins.h"
sfr WAKE_CLKO = 0x8f;
//External interrupt0 service routine
void t0int( ) interrupt 1 //T0 inerrrupt, interrupt 1 (location at 000BH)
{
}
void main()
{
WAKE_CLKO = 0x10; //enable ��������P3.4/T0/INT falling edge wakeup MCU
//from power-down mode
//T0_PIN_IE (WAKE_CLKO.4) = 1
//ET0 = 1; //enable T0 interrupt
EA = 1; //open global interrupt switch
while (1)
{
T0 = 1; //ready read T0 port
while (!T0); //check T0
_nop_();
_nop_();
PCON = 0x02; //MCU power down
_nop_();
_nop_();
P1++;
}
}

D. 15單片機怎樣用p34口

是51單片機吧,P3.4是多功能口,一是標準的IO口,可以直接輸入輸出
第二個功能是T0的脈沖輸入口,當T0作為計數器時,可以作為T0的脈沖輸入口使用。

E. 銀行一米線的c程序 晶元AT89C52,語音模塊接單片機的P34,P35埠,激光模塊接單片機的P24,P25埠,語言是

//程序說明--------------------
//程序一直檢測激光模塊介面,
//如果先檢測到裡面的介面,延時一段 時間後,又檢測到外面的介面信號,說明有人往外走,啟動語音「謝謝光臨」
//如果先檢測到外面的介面信號,延時一段時間後,檢測到裡面的介面信號,說明有人走進來,啟動語音「某某銀行竭誠為你服務」
//當有人還在裡面的時候,後續的人進來,提示「請退到一米線外」

#include<AT89X52.H>

//埠定義------------------
sbit WELCOME =P3^4;
sbit BYE =P3^5;
sbit INSIDE =P2^4;
sbit OUTSIDE =P2^5;
// 語音(P3.4和P3.5)和激光模塊(P2.4和P2.5)

unsigned char someone; //有人 為1,無人0

//延時---------------------
void delay()
{
unsigned char i,j,k;
for(i=0;i<200;i++)
for(j=0;j<200;j++)
for(k=0;k<200;k++);
}

//主程序------------------
void main()
{
while(1)
{
if(INSIDE) //出去
{
delay();
if(OUTSIDE)
{
someone=0;
BYE=0;
}
}
if(OUTSIDE) //進來
{
delay();
if(INSIDE)
{
someone=1;
WELCOME=0;
}
}
if(someone)
{
if(OUTSIDE) //後面有人進來
{
delay();
if(INSIDE)
{
//請退到一米線外
}
}
}
}
}

具體還要按 實際 調整

F. 51單片機中用4個開關控制4個發光二極體的C語言程序設計

#include<reg51.h>
sbitkey1=P1^0;
sbitkey2=P1^1;
sbitkey3=P1^2;
sbitkey4=P1^3;
sbitled1=P1^4;
sbitled2=P1^5;
sbitled3=P1^6;
sbitled4=P1^7;
main()
{
while(1)
{
led1=key1;
led2=key2;
led3=key3;
led4=key4;
}
}

G. 51單片機中這是什麼意思 我是小白,初學者(特別是P3^4那一類的)

這些是位定義,意思相當於用另外的字母去表示這個位。你可以理解為換了個名字,比如sbit Key1=P3^4,以後對Key1進行操作其實就是對P3.4進行操作。

H. 51單片機3鍵鍵盤電路圖[只有三個按鍵,鏈接pc的]

同學你好,我來幫你,你可以使用串口啊,比如:1:給你一個從PC發給單片機數據後,單片機再原樣發給PC的參考代碼:2:將51某一個(引腳)按鍵0,1狀態,發給PC;

1::::::::::::::
#include <REG52.H>
bit Flag;
unsigned int R_D,S_D;
unsigned char i;
void usart_init(void); ///串口初始化

void main (void) {
usart_init(void); ///串口初始化

while(1)
{
if (Flag==1)
{
SBUF = S_D; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
Flag=0;
}
}
}

}

void ser_int (void) interrupt 4 using 1
{
if(RI == 1) //RI接受中斷標志
{
RI = 0; //清除RI接受中斷標志
R_D = SBUF; //SUBF接受/發送緩沖器
S_D=R_D;///////返回PC發送
Flag=1;
}
}
void usart_init(void)///串口初始化
{
SCON = 0x50; //REN=1允許串列接受狀態,串口工作模式1
TMOD|= 0x20; //定時器工作方式2
PCON|= 0x80;
TH1 = 0xF3;// //baud*2 /* 波特率4800、數據位8、停止位1。效驗位無 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //開串口中斷
EA = 1; // 開總中斷
}
2:::::::::::::

#include <REG52.H>

sbit p34=P3^4;////////定義一個按鍵

bit Flag=1;

unsigned int S_D;
unsigned char i;
void usart_init(void); ///串口初始化
void delay (unsigned int Z) ; //延時程序 Z倍 MS

void key_p34(void) ; /////按鍵檢

void main (void) {
usart_init(void); ///串口初始化
key_p34(void) ; ////上電後檢測一次按鍵的狀態
if (Flag==1)//上電後發送一次按鍵的狀態
{
SBUF =1; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
else
{
SBUF =0; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}

while(1)
{

key_p34(void) ;
if (Flag==1)
{
SBUF =1; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}
else
{
SBUF =0; //SUBF接受/發送緩沖器(又叫串列通信特殊功能寄存器)
while(!TI);// 等特數據傳送(TI發送中斷標志)
TI = 0;// 清除數據傳送標志
}

}

}

void usart_init(void)///串口初始化
{
SCON = 0x50; //REN=1允許串列接受狀態,串口工作模式1
TMOD|= 0x20; //定時器工作方式2
PCON|= 0x80;
TH1 = 0xF3;// //baud*2 /* 波特率4800、數據位8、停止位1。效驗位無 (12M)
TL1 = 0xF3;
TR1 = 1;
ES = 1; //開串口中斷
EA = 1; // 開總中斷
}
void delay (unsigned int Z)//延時程序 Z倍 MS
{
unsigned int x,y;
for(x=Z;x>0;x--)
for(y=110;y>0;y--) ;
}
void key_p34(void) /////按鍵檢測
{
if(p34==0)
{ delay(10);
if(p34==0)
{
while(!p34) ;/////等待按鍵鬆手
Flag=0;
}
}

}

I. 用單片機處理問題時有這么一個語句if(p32==1&&p33==1&&p34==1&&p35==1&&p36==0),這個語句能簡化嗎

可以,以我常用的avr
為例。
比如p32------p36是pb口,
我讀入pb口狀態用pinb語句。
unsigned char a;
a=PINB;
a=a&0b01111100;//屏蔽第0位第1位和第七位
if a==0x3c //0011 1100
{ 加入條件為真的執行語句 }
以後讀入pb口狀態後付給a,判斷a就行了。

閱讀全文

與單片機p34相關的資料

熱點內容
移動端微信商城源碼 瀏覽:438
編程貓下一個背景在哪裡 瀏覽:352
javaclasstype 瀏覽:232
樂高編程和樂高課的延伸 瀏覽:350
蘋果手機怎麼切換app美國賬號 瀏覽:861
編譯程序輸入一個字元串 瀏覽:407
圓命令畫法 瀏覽:308
如果給電腦e盤文件加密 瀏覽:801
javaswing項目 瀏覽:778
androidsdksetup 瀏覽:1005
pdf怎麼設置中文 瀏覽:128
安卓手機用什麼軟體看倫敦金 瀏覽:966
魅族文件夾無名稱 瀏覽:791
蘇黎世無人機演算法 瀏覽:876
核桃編程和小碼王的融資 瀏覽:686
微積分教材pdf 瀏覽:727
寫python給微信好友發消息 瀏覽:338
蚊帳自營米加密 瀏覽:422
學校推薦核桃編程 瀏覽:805
湖南農信app怎麼導明細 瀏覽:475