91嫩草国产线免费观看_欧美日韩中文字幕在线观看_精品精品国产高清a毛片_六月婷婷网 - 一级一级特黄女人精品毛片

誰能幫我寫一段51單片機程序(有例程應該很快的)?

首頁 > 知識產權2022-06-19 16:51:46

求大神寫一個51單片機程序實現以下功能 感謝?

 

這個你得找專業人士給你下載一下它的功能嗎?
單片機、程序、程序
抱歉,對這方面不了解
不告訴你,,,
要找專業的程序員解答這個疑問。

求一段51單片機的程序

sbit
p1=p1^0;
sbit
p2=p1^0;
void
main()
{
aa=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
//開總中斷
ET0=1;
//開啟T0中斷
TR0=1;
//啟動T0定時器
,
以上是用定時器0.
if(aa==216000)
//10800*50=3個小時
{p1=0;}
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
//開總中斷
ET1=1;
//開啟T1中斷
TR1
=1;
//啟動T2定時器
if
(aa==72000)
//1800*50=半小時
{
p2=1;
}
//以上是用定時器1.
}
void
timer0()
interrupt
1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
void
timer0()
interrupt
3
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
aa++;
}
兄弟程序太大了,,我寫了
主函數。其他外圍你自己填寫就可以了。
另外:得用外接的“
時間芯片
”:1302。開機后,必須對1302進行初始化,然后等待操作者,對1302進行時間設定,然后等待2009-09-24
22:33時刻的到來。然后輸出要求的波形。輸出波形,也要用1302的時間進行控制

我只會前面。
1302
是網上一個朋友說的,我也寫出來了,希望對你有幫助。)

誰給一個簡單的51單片機調速的程序呀?就要加速減速就可以!要c語言的。

需要看你是什么電機,驅動電路是什么。有空詳談!
步行者====電子單片機團
dsaadaaadsadsdad
是 直流電機 還是 步進電機
問題具體點啊

幫忙用C語言寫一段51單片機的程序,晶振12M。

讓P1.1輸出50%空占比的PWM波,頻率為1~20HZ可調,用P3.2為頻率加減,P3.3為頻率減鍵。P1.3為暫停啟動鍵,按下此按鍵程序啟動,松開此案件程序暫停。設定的頻率用兩位數碼管顯示(給數碼管連接的電路圖) (財富值只有這么多了,不然多給你點)謝謝
#include <reg52.h>
/*
本程序功能,輸出方波,頻率1-25ms
[email protected] /12T
*/
sbit Pulse=P1^1; //---方波
sbit Add=P3^2; //---頻率加
sbit Dec=P3^3; //---頻率減
sbit Start = P1^3; //---開關鍵
sbit Display_Ten_Bit = P2^0;
sbit Display_Bit_Bit = P2^1;
code unsigned char TH0_Reload[21] = {
0x00,0x0B,0x0B,0x26,0x0B,0x3C,0x5D,
0x74,0x0B,0x26,0x3C,0x4E,0x5D,0x69,
0x74,0x7D,0x85,0x8D,0x93,0x99,0x9E
};
code unsigned char TL0_Reload[21] = {
0x00,0xDC,0xDC,0xFC,0xDC,0xB0,0x3D,
0x7D,0xDC,0xFC,0xB0,0x71,0x3D,0xC2,
0x7E,0xCB,0xEE,0x1C,0x7E,0x34,0x58
};
code unsigned char Pre_Freq[21] = {255,8,4,3,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1};
#define TH1_RELOAD 0xF4//---定時器1初始值,定時3ms
#define TL1_RELOAD 0x48//---定時器1初始值,定時3ms
data unsigned char Freq = 20; //---頻率值
data unsigned char Fre_Cnt = 0; //---計數值
bit Display_Bits = 0;
//----共陽數碼管-----------------------------------------------------------------------
code unsigned char Seg_Table[10] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//----用于按鍵去抖動的延時-------------------
void Key_Delay(void)
{
unsigned short i = 60000;
while(i++);
}
void main()
{
//----定時器1,定時3ms,用于動態顯示-----------
TH1 = TH1_RELOAD;
TL1 = TL1_RELOAD;
//----用于輸出脈沖波--------
TH0 = TH0_Reload[0];
TL0 = TL0_Reload[0];
//----兩定時器都工作于方式1,且都開中斷--------
TMOD = 0x11;
ET0 = 1;
ET1 = 1;
EA = 1;
//----開啟定時器1,即顯示----------------------
TR1 = 1;
while(1)
{
if(Add == 0) //---如果"頻率+"鍵 按下
{
Key_Delay(); //---按鍵去抖
if(Add == 0)
{
if(Freq<20) Freq++; //----如果頻率值小于20,則加1
while(Add == 0); //---等待按鍵送開
}
}
if(Dec == 0) //---如果"頻率-"鍵 按下
{
Key_Delay();
if(Dec == 0)
{
if(Freq>1) Freq--; //----如果頻率值大于1,則減1
while(Dec == 0); //---等待按鍵送開
}
}
if(Start == 0)//---如果"啟動/暫停"鍵 按下
{
Key_Delay(); //---按鍵去抖
if(Start == 0)TR0 = 1; //---啟動定時器0,輸出方波
}
else
{
TR0 = 0; //---關閉定時器0,暫停輸出
}
}
}
void ISR_Timer0_Pulse () interrupt 1
{
//----定時器0重載-----------------------------------
TH0 = TH0_Reload[Freq];
TL0 = TL0_Reload[Freq];
//----計數值自加------------------------------------
Fre_Cnt++;
//----如果計數值不小于頻率值,翻轉一次---------------
if(Fre_Cnt >= Pre_Freq[Freq])
{
Pulse = ~Pulse;
Fre_Cnt = 0; //---清零計數值--------------------
}
}
void ISR_Timer0_Display() interrupt 3
{
//----定時器1重載-----------------------------------
TH1 = TH1_RELOAD;
TL1 = TL1_RELOAD;
//----決定顯示十位還是個位--------------------------
Display_Bits = ~Display_Bits;
//----數碼管驅動------------------------------------
if(Display_Bits) //----顯示十位
{
Display_Bit_Bit = 1; //---關閉個位的位選
P0 = Seg_Table[Freq/10]; //---送十位的段碼
Display_Ten_Bit = 0; //---打開十位位選
}
else //----顯示個位
{
Display_Ten_Bit = 1; //---關閉十位的位選
P0 = Seg_Table[Freq%10]; //---送個位的段碼
Display_Bit_Bit = 0; //---打開個位的位選
}
}

有不明白的歡迎追問
根據按鍵,更改定時器的設定值,定時時間到,翻轉P1.1口即可

相關推薦:

專利申請日如何確定(2023專利法規定專利申請日怎樣確定的)

商標的國外注冊途徑(如何在國外注冊商標)

申請專利需要哪些資料(申請專利要準備什么材料)

編輯作品著作權歸屬規定(百度百科的著作權歸屬問題)

商標終止有那些類型(商標權終止情形主要有哪些)