Ⅰ 高分懸賞基於51單片機的模擬八層電梯C語言編寫
http://..com/question/419086416.html?oldq=1
4層電梯需求分析,
單片機程序的移植性很差和底層硬體有關系。你用模擬那不一樣了。
Ⅱ 單片機LED點陣模仿電梯樓層數字流動顯示c語言程序及電路圖
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit d1=P3^2;
sbit wr=P2^5;
uchar code table1[]={
0x01,0x02,0x04,0x08,
0x10,0x20,0x40,0x80
};
uchar code table2[]={
0xc3,0xdf,0xc3,0xfb,0xc3
};
uchar code table3[]={
0xef,0xef,0xef,
0xef,0xef,0xef
};
void delay(uint z);
uchar tt,num,numm;
void main()
{
tt=0;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1; while(1)
{
for(num=1,numm=0;num<6;num++,numm++)
{
P0=table1[num];
P1=table3[numm];
delay(2);
}
P0=0x00;
delay(500);
for(num=1,numm=0;numm<5;numm++,num++)
{
P0=table1[num];
P1=table2[numm];
delay(2);
}
P0=0x00;
delay(500);
}
}
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=200;y>0;y--);
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
Ⅲ 用c52單片機如何控制兩層電梯運行和開關門
stc89c52單片機的確就有一個串口,當然可以在外部加一個模擬開關來擴展兩個串口,但是兩個串口是分時工作的,就是不能同時收發。其實,選擇STC12C5A60S2,就完全解決了這個問題嗎,它就有兩個獨立串口,價格上不比stc89c52高多少,還有STC現在推出了最新的STC15系列的單片機,都是有兩個獨立串口的,價格更低了,還完全可以省掉外部復位電路和時鍾電路的晶振,非常方便,為什麼不選擇這款昵?何苦還用stc89c52,還不能解決兩個串口的問題,換個思路問題就全解決了。
Ⅳ 單片機:模擬電梯,LED燈和樓層按鍵怎麼一起接,我想省個介面,
本身設計會不會就有問題啊?
開關按下去不自動彈上來,那到某樓後,人間還要按鍵啊,不談起來怎麼按?
開關有矩陣按鍵(自動彈起來),撥碼開關(手動進行0和1狀態的轉換),單刀單擲,單刀雙擲等·····
點亮是按鍵接通的信號,我覺得應該要給led信號才能滅掉啊···看那個信號是用按鍵來給還是電梯動靜的信號來給,
一般電梯是用PLC控制的,那個就很簡單了··LED控制和按鍵只是裡面簡單的邏輯部分而已!呵呵···
Ⅳ 怎麼用單片機實現電梯控制系統
隨著社會經濟建設的發展,人們生活水平的提高,電梯產品需求的數量化、個性化和多樣化也提到議事日程上來了。電梯是現代建築物的組成部分,在現代化的生活和工作當中人們已經離不開電梯了,而且對電梯的需求量也在不斷的增長,我國已經成為全球最大的電梯市場。為了掌握好現在電梯的發展方向,了解電梯技術的發展,也為了讓所學專業知識得到綜合應用,筆者經過多方查閱資料,制定了一套自己的電梯控制模型系統設計方案。
Ⅵ 怎麼用單片機實現電梯控制系統
:我們知道,一個電路總是由元器件通過電線連接而成的,在模擬電路中,連線並不成為一個問題,因為各器件間一般是串列關系,各器件之間的連線並不很多,但計算機電路卻不一樣,它是以微處理器為核心,各器件都要與微處理器相連,各器件之間的工作必須相互協調,所以就需要的連線就很多了,如果仍如同模擬電路一樣,在各微處理器和各器件間單獨連線,則線的數量將多得驚人,所以在微處理機中引入了匯流排的概念,各個器件共同享用連線,所有器件的8根數據線全部接到8根公用的線上,即相當於各個器件並聯起來,但僅這樣還不行,如果有兩個器件同時送出數據,一個為0,一個為1,那麼,接收方接收到的究竟是什麼呢?這種情況是不允許的,所以要通過控制線進行控制,使器件分時工作,任何時候只能有一個器件發送數據(可以有多個器件同時接收)。器件的數據線也就被稱為數據匯流排,器件所有的控制線被稱為控制匯流排。在單片機內部或者外部存儲器及其它器件中有存儲單元,這些存儲單元要被分配地址,才能使用,分配地址當然也是以電信號的形式給出的,由於存儲單元比較多,所以,用於地址分配的線也較多,這些線被稱為地址匯流排。
二、數據、地址、指令:之所以將這三者放在一起,是因為這三者的本質都是一樣的——數字,或者說都是一串『0』和『1』組成的序列。換言之,地址、指令也都是數據。指令:由單片機晶元的設計者規定的一種數字,它與我們常用的指令助記符有著嚴格的一一對應關系,不可以由單片機的開發者更改。地址:是尋找單片機內部、外部的存儲單元、輸入輸出口的依據,內部單元的地址值已由晶元設計者規定好,不可更改,外部的單元可以由單片機開發者自行決定,但有一些地址單元是一定要有的(詳見程序的執行過程)。數據:這是由微處理機處理的對象,在各種不同的應用電路中各不相同,一般而言,被處理的數據可能有這么幾種情況:
1�6�1地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。
2�6�1方式字或控制字(如MOV TMOD,#3),3即是控制字。
3�6�1常數(如MOV TH0,#10H)10H即定時常數。
4�6�1實際輸出值(如P1口接彩燈,要燈全亮,則執行指令:MOV P1,#0FFH,要燈全暗,則執行指令:MOV P1,#00H)這里0FFH和00H都是實際輸出值。又如用於LED的字形碼,也是實際輸出的值。
理解了地址、指令的本質,就不難理解程序運行過程中為什麼會跑飛,會把數據當成指令來執行了。
三、P0口、P2口和P3的第二功能用法:初學時往往對P0口、P2口和P3口的第二功能用法迷惑不解,認為第二功能和原功能之間要有一個切換的過程,或者說要有一條指令,事實上,各埠的第二功能完全是自動的,不需要用指令來轉換。如P3.6、P3.7分別是WR、RD信號,當微片理機外接RAM或有外部I/O口時,它們被用作第二功能,不能作為通用I/O口使用,只要一微處理機一執行到MOVX指令,就會有相應的信號從P3.6或P3.7送出,不需要事先用指令說明。事實上『不能作為通用I/O口使用』也並不是『不能』而是(使用者)『不會』將其作為通用I/O口使用。你完全可以在指令中按排一條SETB P3.7的指令,並且當單片機執行到這條指令時,也會使P3.7變為高電平,但使用者不會這么去做,因為這通常這會導致系統的崩潰。
四、程序的執行過程: 單片機在通電復位後8051內的程序計數器(PC)中的值為『0000』,所以程序總是從『0000』單元開始執行,也就是說:在系統的ROM中一定要存在『0000』這個單元,並且在『0000』單元中存放的一定是一條指令。
五、堆棧: 堆棧是一個區域,是用來存放數據的,這個區域本身沒有任何特殊之處,就是內部RAM的一部份,特殊的是它存放和取用數據的方式,即所謂的『先進後出,後進先出』,並且堆棧有特殊的數據傳輸指令,即『PUSH』和『POP』,有一個特殊的專為其服務的單元,即堆棧指針SP,每當執一次PUSH指令時,SP就(在原來值的基礎上)自動加1,每當執行一次POP指令,SP就(在原來值的基礎上)自動減1。由於SP中的值可以用指令加以改變,所以只要在程序開始階段更改了SP的值,就可以把堆棧設置在規定的內存單元中,如在程序開始時,用一條MOV SP,#5FH指令,就時把堆棧設置在從內存單元60H開始的單元中。一般程序的開頭總有這么一條設置堆棧指針的指令,因為開機時,SP的初始值為07H,這樣就使堆棧從08H單元開始往後,而08H到1FH這個區域正是8031的第二、三、四工作寄存器區,經常要被使用,這會造成數據的渾亂。不同作者編寫程序時,初始化堆棧指令也不完全相同,這是作者的習慣問題。當設置好堆棧區後,並不意味著該區域成為一種專用內存,它還是可以象普通內存區域一樣使用,只是一般情況下編程者不會把它當成普通內存用了。
六、單片機的開發過程: 這里所說的開發過程並不是一般書中所說的從任務分析開始,我們假設已設計並製作好硬體,下面就是編寫軟體的工作。在編寫軟體之前,首先要確定一些常數、地址,事實上這些常數、地址在設計階段已被直接或間接地確定下來了。如當某器件的連線設計好後,其地址也就被確定了,當器件的功能被確定下來後,其控制字也就被確定了。然後用文本編輯器(如EDIT、CCED等)編寫軟體,編寫好後,用編譯器對源程序文件編譯,查錯,直到沒有語法錯誤,除了極簡單的程序外,一般應用模擬機對軟體進行調試,直到程序運行正確為止。運行正確後,就可以寫片(將程序固化在EPROM中)。在源程序被編譯後,生成了擴展名為HEX的目標文件,一般編程器能夠識別這種格式的文件,只要將此文件調入即可寫片。在此,為使大家對整個過程有個認識,舉一例說明:
ORG 0000H
LJMP START
ORG 040H
START:
MOV SP,#5FH ;設堆棧
LOOP:
NOP
LJMP LOOP ;循環
END ;結束
Ⅶ 基於51單片機的四層電梯c語言獨立按鍵的四層電梯模擬
4層電梯,按鍵和感測器的基本設置:
1、電梯內部至少6個按鍵,4個樓層加兩個門的控制,定義為:4層樓 PB1,PB2,PB3,PB4,門開,門關,PB5,PB6.
2、樓梯外部每層基本2個按鍵:1層:上PC1,2層上PC2,下PC3,3層上PC4,下PC5.4層,下PC6.對應4和1層最少使用一個就能完成乘坐的基本要求。
3、電梯位置,每層一個,PA1,PB2,PB3,PB4。
4、電梯狀態,停止PD1,向上運動PD2,向下運動PD3. 門打開PD4,門閉合PD5.
5、電梯控制輸出,向上運動DE1,向下運動DE2,停止運動DE3,開門DE4,關門DE5.
6、另外一些指示燈的輸出,最簡單的指示每個按鍵上一個,內外部顯示一個LED點陣指示,
做練習就是編寫按鍵掃描和控制輸出,LED顯示,基本的程序控制,硬體模型就是指示燈和按鍵。
真的做項目,那是兩碼事,一般電梯控制用PLC控制可以直接連接跟電機控制器連接,應用單機也就做個項目中的LED顯示,為了安全軟體和硬體都要加沉余設計。為了好看清晰可以增加更多的顯示和指示。
Ⅷ 我要做個模擬電梯的東西,需要很多LED和按鍵,可是單片機的IO口不夠用怎麼辦
可在每個樓層,用一個單片機,控制按鍵和顯示。
在電梯上,用一個單片機當做主機,控制梯內按鍵和電機。
主機與各個分機,採用串列通信方式即可。
Ⅸ 怎麼用單片機實現電梯控制系統
能把具體要求給我嗎?我給你解題思路!
Ⅹ 單片機C51一個模擬三層電梯的小程序問題
void
init()
{
tmod=0x01;
th0=(65536-50000)/256;
tl0=(65536-50000)%256;
et0=1;
ea=1;
tr0=1;
}
----------中間程序----------------
void
timer0interrupt(
void
)
interrupt
1
using
1
{
uchar
aa;
th0=(65536-50000)/256;
tl0=(65536-50000)%256;
aa++;
if(aa==20)
//精確到1秒
intensity++;
if(intensity==60)
{
intensity=0;
time.min++;
}
if(time.min==0)
time.min
=0;
}
請你說出你具體的是不是要製作一個時鍾還是怎樣~這樣我只能給出這些了