⑴ 求大神寫一個51單片機程序實現以下功能 感謝
這個你得找專業人士給你下載一下它的功能嗎?
⑵ 多個DS18B20怎麼接與單片機怎麼接請給個圖,非常感謝!
DS18B20是一根匯流排的模式,所以可以在一條線上掛N多個DS18B20,程序區分的方法是靠每個18B20里的ROM激光碼軟體識別。
所以掛N多,就是並聯。所有的18B20並聯在一起,不過不能用寄生供電。
圖我就不傳了,比較慢,根你說一下:
即所有的18B20的VCC與單片機的VCC連接在一起,所有的18B20的GND與單片機的GND連接在一起。
所有的18B20的數據線用一根線連接在一起,連接到單片機的引腳上,單片機的引腳要加上拉電阻。
⑶ 那位行家能給我介紹介紹各種各樣的單片機啊感謝!!
AT89C XXXXXXXX其中,AT是前綴,89CXXXX是型號,XXXX是後綴。
下面分別對這三個部分進行說明,並且對其中有關參數的表示和意義作相應的解釋。
(l)前綴 由字母「AT」組成,表示該器件是ATMEL公司的產品。
(2)型號 由「89CXXXX」或「89LVXXXX」或「89SXXXX」等表示。
「89CXXXX」中,9是表示內部含 Flash存儲器,C表示為 CMOS產品。
「89LVXXXX」中,LV表示低壓產品。
「89SXXXX」中,S表示含有串列下載 Flash存儲器。
在這個部分的「XXXX」表示器件型號數,如51、1051、8252等。
(3)後綴由「XXXX」四個參數組成,每個參數的表示和意義不同。在型號與後綴部分有「—」號隔開。
後綴中的第一個參數 X用於表示速度,它的意義如下:
X=12,表示速度為12 MHz。 X=20,表示速度為20 MHz。
X=16,表示速度為16 MHz。 X=24,表示速度為24 MHz。
後綴中的第二個參數 X用於表示封裝,它的意義如下:
X=D,表示陶瓷封裝。 X=Q,表示 PQFP封裝。』
X=J,表示 PLCC封裝。 X=A,表示 TQFP封裝。
X=P,表示塑料雙列直插 DIP封裝。 X=W,表示裸晶元。
X=S,表示 SOIC封裝。
後綴中第三個參數 X用於表示溫度范圍,它的意義如下:
X=C,表示商業用產品,溫度范圍為0~十 70℃。
X=I,表示工業用產品,溫度范圍為—40~十 85℃。
X=A,表示汽車用產品,溫度范圍為—40~十 125℃。
X=M,表示軍用產品,溫度范圍為—55~十 150℃。
後綴中第四個參數 X用於說明產品的處理情況,它的意義如下:
X為空,表示處理工藝是標准工藝。
X=/883,表示處理工藝採用 MIL—STD—883標准。
例如:有一個單片機型號為「AT89C51—12PI」,則表示意義為該單片機是 ATMEL公司的Flash單片機,內部是 CMOS結構,速度為12 MHz,封裝為塑封 DIP,是工業用產品,按標准處理工藝生產。
⑷ 跪求一單片機C程序,感謝!
#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
//這里用的是AVR mega16,GCC下測試通過,51下稍微改動就可以了。
#define seg_dis PORTD
#define seg_ctrl PORTC
#define key_input PINA
volatile uint8_t time_on=2,time_off,cnt=0;
ISR(TIMER1_OVF_vect) //1s
{
TCNT1H=(65536-3906)/256;
TCNT1L=(65536-3906)%256;
cnt++;
if (cnt==time_on) seg_ctrl=0xff;
else if (cnt==time_off+time_on) {seg_ctrl=0xfe;cnt=0;}
}
void timer1_init(void)
{
TCNT1H=(65536-3906)/256;
TCNT1L=(65536-3906)%256;
TCCR1B=0x04;
TIMSK|=(1<<TOIE1);
}
void time_over(void)
{
TCNT1H=0xff;
TCNT1H=0xf0;
cnt=time_off+time_on-1;
}
void MUC_init(void)
{
DDRA=0X00;
DDRB=0XFF;
DDRC=0XFF;
DDRD=0XFF;
PORTA=0xff;
}
int main(void)
{
MUC_init();
timer1_init();
seg_dis=0x00;
seg_ctrl=0xfe;
time_on=2;
time_off=10;
sei();
while(1)
{
uint8_t key;
key=~(key_input&0xff);
switch(key)
{
case 0x01:
time_off=6;
time_over();
break;
case 0x02:
time_off=8;
time_over();
break;
case 0x04:
time_off=15;
time_over();
break;
case 0x08:
time_off=20;
time_over();
break;
default:
break;
}
}
}
⑸ 尋找師傅教我51單片機編程機器人謝謝!
看你這么喜歡單片機編程,哎不得回想一下當年自己,求學經歷,學習單片機是一件很枯燥的事情,不是一件容易事,單片機開發和嵌入式開發的道路你還沒有了解過,你真心想學習單片機,我給你指出條明路,先去到網上買一塊51學習板,參考小宋老師手把手教你學習單片機視頻和郭天祥老師的十天學會51單片機,講的都非常好,學習一下兩位老師的編程思路,和程序思想。
切記: 我教你學習C51單片機的目的,並不是讓你去學習51單片機,只是51單片機結構比較簡單,用在C語言的教學和學習上,是綽綽有餘,但是很多學生都誤以為大學老師在教大家學習單片機,如果你想以後往研發方面發展,你必須把C語言吃透,否則後面你會吃到苦頭,市場上面單片機種類很多,選擇市場主流單片機ARM,先推存你到網上下載譚浩強C設計第三版,和C語言深度解析,進行學習,買別的書浪費錢。
想把C語言吃透,就要通過單片機把C語言的32個關鍵字、結構體,指針、條件語句等一系列指令能在51單片機上面靈活應用,那你C語言算是入門了,只有通過不斷的實驗去靈活的應用C語言的各大語句,自己多積累經驗,了解C語言的妙用。
先花1年的時間進行了解51單片機,在這里一年裡你要多做實驗多寫程序,進行學了C語言,要練習到,你一拿到別人程序,一眼就能看懂,然後到單片機論壇裡面,去看看別人做的DIY,自己也試著去做,單片機高手都是從論壇裡面爬出來的。
我只介紹學習方法,確不能當你師傅,別人也不會當你師傅的,你也就死了這條心吧,
想學習單片機,必須具備自學能力,如果你沒有自學能力,那我勸你別學習單片機了。
我這里有個單片機交流群,以前大學裡面建的,如果在學習中遇到問題,可以到這里來解決。群:100626882
⑹ 單片機考試試題 急用 謝謝
修改如下:
ORG 0000H
LJMP 1000H
ORG 0003H
LJMP 2000H ;轉到外部中斷0
ORG 001BH
LJMP 3000H ;轉到定時器1中斷程序
ORG 1000H ;主程序
SETB EX0
SETB ET1
SETB EA ;以上開放是中斷
SETB PT1 ;設置定時器1為高級
SJMP $
ORG 2000H ;外部中斷0程序
RETI
ORG 3000H ;定時器1中斷程序
RETI
⑺ 哪位高手能告訴我單片機的學習核心 怎麼才能學好它 謝謝
一是看書。書必須看。不能不看,也不可多看。
二是要動手實踐。如果學校實驗室有條件的話,就去學校實驗室。或者幾個同學一起學。
三是自己買一塊實驗板。這樣學起來也方便。
但是前提是你必須得有一台電腦。實驗板推薦你用鐵牛單片機實驗板,這個高校裡面學生用的最多了。
⑻ 單片機編程 請使用匯編語言編程 不要C語言 最好有注釋 感謝!
TIMES EQU 30H
LED EQU 31H
ORG 0000H
LJMP MAIN:
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
MOV TIMES,#0
MOV LED,#0F0H
MOV P1,LED
SJMP $
T0ISR:
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC TIMES
MOV A,TIMES
CJNE A,#10,T0ISR1
T0ISR1:
JC T0ISRE
MOV A,LED
CPL A
MOV LED,A
MOV P1,A
T0ISRE:
RETI
⑼ 51單片機按位取反的問題.致謝大神!
就是將D1這個變數的位值取反,1變為0,0變為1,假設D1=0,執行D1=~D1後,D1=1。這個處理在定時器0的中斷程序中執行,定時器0周期性中斷,就將D1的位值周期性取反,接於P1.0的燈就閃爍了。
⑽ 單片機大神,這些語句什麼意思,最終實現了什麼功能,謝謝各位
注釋的足夠詳細了,最終的實現的功能就是單片機將AD轉換的結果從串口傳送出去。