① 急求最簡單的單片機4人搶答器c51程序
;以下是以前做的八路搶答器程序,你參考一下。
ORG 0000H
JMP BEGIN
ORG 0030H
TABLE: ; 共陰極數碼管顯示代碼表
DB 3FH,06H,5BH,4FH,66H ;12345
DB 6DH,7DH,07H,7FH ;6789
DELAY: MOV R5,#20
LOOP4: MOV R6,#50H ;延時20X20ms
LOOP5: MOV R7,#100
DJNZ R7,$
DJNZ R6,LOOP5
DJNZ R5,LOOP4
RET
;---------------------------------------
BEGIN: MOV P2,#0FFH ;P2口置高電平,准備接收信號
MOV R4,#0
MOV A,R4 ;R4位標志值送A寄存器
AGAIN: MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P1,A
LOOP1: MOV A,P3 ; 接收p3口的搶答信號
CPL A
JZ LOOP1
LOOP2: RRC A ;有人搶答信號則逐次移動判斷哪一位搶答
INC R4
JNC LOOP2
;********************
MOV A,R4
MOVC A,@A+DPTR ;找到相應位顯示代碼
MOV P1,A
LEDDIS:
MOV A,#0FFH
CLR C
LEDDIS1:
RLC A
DJNZ R4,LEDDIS1
MOV P0,A
LOOP3: JNB P2.2,BEGIN ;若主持人按下復位信號鍵,則轉向主程序
CPL P2.0 ;若沒按復位信號鍵,則通過p2.2口給出高低信號驅動蜂鳴器
LCALL DELAY ;調用延時子程序
SJMP LOOP3 ;p2.2口反復間隔0.4s變化,驅動蜂鳴器
END
② 單片機八人搶答器程序設計
;------------------------------------------
KAI BIT P3.7 ;開始
;------------------------------------------
ORG 0000H
JMP START
START:
;----------------------;下面是清零(復位)
MOV P0, #0C0H ;顯示0
MOV P2, #255 ;熄燈
MOV R4, #0
;----------------------;下面等待按下"開始"鍵
KAISHI:
JB KAI, KAISHI ;沒有按"開始",就循環
CALL DELAY ;延時
JB KAI, KAISHI ;消抖
JNB KAI, $ ;等待釋放
;----------------------
MOV P0, #0CH ;顯示P
WAIT: ;等待搶答
MOV A, P1
CPL A
JZ WAIT ;繼續等待
;----------------------
XS: ;查找選手按鍵的位置
CPL A
MOV P2, A
JNB ACC.0, J0
JNB ACC.1, J1
JNB ACC.2, J2
JNB ACC.3, J3
JNB ACC.4, J4
JNB ACC.5, J5
JNB ACC.6, J6
; JMP J7
J7: INC R4
J6: INC R4
J5: INC R4
J4: INC R4
J3: INC R4
J2: INC R4
J1: INC R4
J0: INC R4
MOV A, R4
MOV DPTR, #D_TAB
MOVC A, @A + DPTR
MOV P0, A
;----------------------;下面等待按下復位鍵
W_FW:
JB KAI, W_FW ;沒有按,則轉
CALL DELAY ;延時
JB KAI, W_FW ;消抖
JNB KAI, $ ;等待釋放
JMP START
;------------------------
D_TAB:
DB 0C0H,0F9H,0A4H,0B0H, 99H ;共陽極0-9
DB 92H, 82H,0F8H, 80H, 90H,0BFH ;-
;------------------------------------------
DELAY: ;延時約10ms
MOV R6, #20
DJNZ R7, $
DJNZ R6, $ - 2
RET
;==========================================
END
;以上程序已經調好。
③ 幫我設計單片機課程設計實驗,用c語言程序寫,題目是:搶答器,要求製作一個四人搶答器,4個燈跑馬循環
#define PlayerKey1_IO (P0.1)
#define PlayerKey2_IO (P0.2)
#define PlayerKey3_IO (P0.3)
#define PlayerKey4_IO (P0.4)
#define PlayerLED1_IO (P1.1)
#define PlayerLED2_IO (P1.2)
#define PlayerLED3_IO (P1.3)
#define PlayerLED4_IO (P1.4)
#define BuzzerEnable_IO (P1.5)
void SysInit(void)
{
//設置Key_io為上拉輸入
//設置LED_io為通用輸出
//設置BuzzerEnable_io為通用輸出
}
unsigned char KeyScan(void)
{
if (PlayerKey1_IO == 0) return 1;
if (PlayerKey2_IO == 0) return 2;
if (PlayerKey3_IO == 0) return 3;
if (PlayerKey4_IO == 0) return 4;
return 0;
}
void Delay_Ms(unsigned char Nms)
{
volatile unsigned short tempcnt;
while (Nms--)
for (tempcnt = 0; tempcnt < 500; tempcnt++);//按照相應的參數配置計數上限,此處設為500
}
void main(void)
{
unsigned char MarqueeStep=0;
unsigned char KeyValue=0;
SysInit();
while (1)
{
Delay_Ms(400);
KeyValue = KeyScan(); //無按鍵去抖
if (KeyValue == 0)
{
MarqueeStep++;
if (MarqueeStep > 4) MarqueeStep = 0;
BuzzerEnable_IO = 0; // 按鍵取消停止蜂鳴器發聲
}
else
{
MarqueeStep = KeyValue;
BuzzerEnable_IO = 1; //蜂鳴器發聲
}
PlayerLED1_IO = 0;
PlayerLED2_IO = 0;
PlayerLED3_IO = 0;
PlayerLED4_IO = 0;
if (MarqueeStep == 0)
PlayerLED1_IO = 1;
else if (MarqueeStep == 1)
PlayerLED2_IO = 1;
else if (MarqueeStep == 2)
PlayerLED3_IO = 1;
else if (MarqueeStep == 3)
PlayerLED4_IO = 1;
}
}
基礎框架是這樣。
④ 用PLC設計4人搶答器,4人搶答按鈕為X0~X3,對應燈為Y0~Y3,主持人按鈕為X4,求畫出梯形圖
設計題目:四路搶答器的PLC控制
設計要求
競賽者若要回答主持人所提問題時,必須先按下桌上的搶答按鈕(SB1—SB4)。
綠色指示燈亮後,須等主持人按下復位按鈕SB5後,指示燈才熄滅;
如果競賽者在主持人打開 SA1開關10s內搶先按下按鈕,電磁線圈將使綵球搖動,以示競賽者得到一次幸運的機會;
如果在主持人打開SA1 開關10s內無人搶答,則必須有聲音警示,同時紅色指示燈亮,以示競賽者放棄該題;
在競賽者搶答成功後應限定一定的時間回答問題,根據題目難易可設定時間(如2 min);
當主持人打開SA2開關後計時開始,如果競賽者在回答問題時超出設定時限,則紅色指示燈亮並伴有聲音提示,競賽者停止回答問題。
設計任務
畫出該搶答系統示意圖(A2) .
畫出PLC的I/O接線圖(A2)
畫出梯形圖(A2)
說明工作原理。
編寫30000字左右的設計說明書。
參考資料
黃凈主編,《電器及PLC控制技術》,機械工業出版社,2002.
廖常初主編,《FX系列PLC編程及應用》,機械工業出版社,2006.
揚長能、林小峰主編,《可編程序控制器例題習題及實驗指導》,重慶大學出版社,2001.
前言
在電氣控制系統中,控制裝置主要有兩類:一類是傳統的由繼電器構成的控制系統;另一類是以微處理器為基礎的可編程式控制制器。但由於可編程式控制制器具有可靠性高、通用性強、程序設計簡單及便於安裝調試等優點。它在工業中的各個領域中得到了廣泛的應用。
可編程式控制制器的機型較多,但其基本結構和工作原理相同,基本指令、控制功能和編程方法類似。本設計書以PLC控制的四路搶答器為例,主要介紹了可編程式控制制器的基礎知識、基本結構、指令系統、程序設計、控制系統等知識。本設計書結合了大量的圖形,使設計一目瞭然。最後給出了主要的流程圖、梯形圖、詳細注釋及助記符語言等。
本設計書參考了眾多可編程序控制器教學用書,結合自己所掌握的知識,並在韓金玲教師的認真幫助下完成。在此真誠的衷心的感謝韓金玲教師的幫助。
由於本人水平有限,錯誤和不妥之處再所難免,敬請各位老師批評指正。
編者
2008.
目錄
畢業設計任務書......................................(1)
一、前言.............................................(2)
二、可編程式控制制器的特點及基本.....................(3)
1、 PLC的特點......................................(2)
2、PLC的基本結構.................................. (5
3、PLC的基本功能..................................()
PLC的特點
可編程式控制制器(PLC)是一種新型的通用自動化控制裝置,它將傳統的繼電器控制技術、計算機技術和通訊技術融為一體,,具有通用性強、控制功能強,可靠性高,使用靈活方便、使用方便、適應面廣、抗干擾能力強、編程簡單等特點。易於擴展等優點而應用越來越廣泛。
為適應工業環境使用,與一般控制裝置相比較,PLC機有以下特點:
1. 可靠性高,抗干擾能力強
工業生產對控制設備的可靠性要求:
①平均故障間隔時間長
②故障修復時間(平均修復時間)短
任何電子設備產生的故障,通常為兩種:
①偶發性故障。由於外界惡劣環境如電磁干擾、超高溫、超低溫、過電壓、欠電壓、振動等引起的故障。這類故障,只要不引起系統部件的損壞,一旦環境條件恢復正常,系統也隨之恢復正常。但對PLC而言,受外界影響後,內部存儲的信息可能被破壞。
②永久性故障。由於元器件不可恢復的破壞而引起的故障。
為了滿足PLC「專為在工業環境下應用設計」的要求,PLC採用了如下硬體和軟體措施:
·硬體措施:
主要模塊均採用大規模或超大規模集成電路,大量開關動作由無觸點的電子存儲器完成,I/O系統設計有完善的通道保護和信號調理電路。
① 屏蔽——對電源變壓器、CPU、編程器等主要部件,採用導電、導磁良好的材料進行屏蔽,以防外界干擾。
② 濾波——對供電系統及輸入線路採用多種形式的濾波,如LC或π型濾波網路,以消除或抑制高頻干擾,也削弱了各種模塊之間的相互影響。
③ 電源調整與保護——對微處理器這個核心部件所需的+5V電源,採用多級濾波,並用集成電壓調整器進行調整,以適應交流電網的波動和過電壓、欠電壓的影響。
④ 隔離——在微處理器與I/O電路之間,採用光電隔離措施,有效地隔離I/O介面與CPU之間電的聯系,減少故障和誤動作;各I/O口之間亦彼此隔離。
⑤ 採用模塊式結構——這種結構有助於在故障情況下短時修復。一旦查出某一模塊出現故障,能迅速更換,使系統恢復正常工作;同時也有助於加快查找故障原因。
·軟體措施:
有極強的自檢及保護功能。
①故障檢測——軟體定期地檢測外界環境,如掉電、欠電壓、鋰電池電壓過低及強干擾信號等。以便及時進行處理。
②信息保護與恢復——當偶發性故障條件出現時,不破壞PLC內部的信息。一旦故障條件消失,就可恢復正常,繼續原來的程序工作。所以,PLC在檢測到故障條件時,立即把現狀態存入存儲器,軟體配合對存儲器進行封閉,禁止對存儲器的任何操作,以防存儲信息被沖掉。
③設置警戒時鍾WDT(看門狗)——如果程序每循環執行時間超過了WDT規定的時間,預示了程序進入死循環,立即報警。
④加強對程序的檢查和校驗——一旦程序有錯,立即報警,並停止執行。
⑤對程序及動態數據進行電池後備——停電後,利用後備電池供電,有關狀態及信息就不會丟失。
PLC的出廠試驗項目中,有一項就是抗干擾試驗。它要求能承受幅值為1000V,上升時間1nS,脈沖寬度為1μS的干擾脈沖。一般,平均故障間隔時間可達幾十萬~上千萬小時;製成系統亦可達4~5萬小時甚至更長時間。
2 .通用性強,控製程序可變,使用方便
PLC品種齊全的各種硬體裝置,可以組成能滿足各種要求的控制系統,用戶不必自己再設計和製作硬體裝置。用戶在硬體確定以後,在生產工藝流程改變或生產設備更新的情況下,不必改變PLC的硬設備,只需改編程序就可以滿足要求。因此,PLC除應用於單機控制外,在工廠自動化中也被大量採用。
3.功能強,適應面廣
現代PLC不僅有邏輯運算、計時、計數、順序控制等功能,還具有數字和模擬量的輸入輸出、功率驅動、通信、人機對話、自檢、記錄顯示等功能。既可控制一台生產機械、一條生產線,又可控制一個生產過程。
4.編程簡單,容易掌握
目前,大多數PLC仍採用繼電控制形式的「梯形圖編程方式」。既繼承了傳統控制線路的清晰直觀,又考慮到大多數工廠企業電氣技術人員的讀圖習慣及編程水平,所以非常容易接受和掌握。梯形圖語言的編程元件的符號和表達方式與繼電器控制電路原理圖相當接近。通過閱讀PLC的用戶手冊或短期培訓,電氣技術人員和技術工很快就能學會用梯形圖編制控製程序。同時還提供了功能圖、語句表等編程語言。
PLC在執行梯形圖程序時,用解釋程序將它翻譯成匯編語言然後執行(PLC內部增加了解釋程序)。與直接執行匯編語言編寫的用戶程序相比,執行梯形圖程序的時間要長一些,但對於大多數機電控制設備來說,是微不足道的,完全可以滿足控制要求。
5.減少了控制系統的設計及施工的工作量
由於PLC採用了軟體來取代繼電器控制系統中大量的中間繼電器、時間繼電器、計數器等器件,控制櫃的設計安裝接線工作量大為減少。同時,PLC的用戶程序可以在實驗室模擬調試,更減少了現場的調試工作量。並且,由於PLC的低故障率及很強的監視功能,模塊化等等,使維修也極為方便。
6.體積小、重量輕、功耗低、維護方便
PLC是將微電子技術應用於工業設備的產品,其結構緊湊,堅固,體積小,重量輕,功耗低。並且由於PLC的強抗干擾能力,易於裝入設備內部,是實現機電一體化的理想控制設備。以三菱公司的F1-40M型PLC為例:其外型尺寸僅為305×110×110mm,重量2.3kg,功耗小於25VA;而且具有很好的抗振、適應環境溫、濕度變化的能力。現在三菱公司又有FX系列PLC,與其超小型品種F1系列相比:面積為47%,體積為36%,在系統的配置上既固定又靈活,輸入輸出可達24~128點。
PLC的基本結構
一般講,PLC分為箱體式和模塊式兩種。但它們的組成是相同的,對箱體式PLC,有一塊CPU板、I/O板、顯示面板、內存塊、電源等,當然按CPU性能分成若干型號,並按I/O點數又有若干規格。對模塊式PLC,有CPU模塊、I/O模塊、內存、電源模塊、底板或機架。無任哪種結構類型的PLC,都屬於匯流排式開放型結構,其I/O能力可按用戶需要進行擴展與組合。PLC的基本結構框圖如下:
接受 驅動
現場信號 受控元件
一、CPU的構成
PLC中的CPU是PLC的核心,起神經中樞的作用,每台PLC至少有一個CPU,它按PLC的系統程序賦予的功能接收並存貯用戶程序和數據,用掃描的方式採集由現場輸入裝置送來的狀態或數據,並存入規定的寄存器中,同時,診斷電源和PLC內部電路的工作狀態和編程過程中的語法錯誤等。進入運行後,從用戶程序存貯器中逐條讀取指令,經分析後再按指令規定的任務產生相應的控制信號,去指揮有關的控制電路,
與通用計算機一樣,主要由運算器、控制器、寄存器及實現它們之間聯系的數據、控制及狀態匯流排構成,還有外圍晶元、匯流排介面及有關電路。它確定了進行控制的規模、工作速度、內存容量等。內存主要用於存儲程序及數據,是PLC不可缺少的組成單元。
CPU的控制器控制CPU工作,由它讀取指令、解釋指令及執行指令。但工作節奏由震盪信號控制。
CPU的運算器用於進行數字或邏輯運算,在控制器指揮下工作。
CPU的寄存器參與運算,並存儲運算的中間結果,它也是在控制器指揮下工作。
CPU雖然劃分為以上幾個部分,但PLC中的CPU晶元實際上就是微處理器,由於電路的高度集成,對CPU內部的詳細分析已無必要,我們只要弄清它在PLC中的功能與性能,能正確地使用它就夠了。
CPU模塊的外部表現就是它的工作狀態的種種顯示、種種介面及設定或控制開關。一般講,CPU模塊總要有相應的狀態指示燈,如電源顯示、運行顯示、故障顯示等。箱體式PLC的主箱體也有這些顯示。它的匯流排介面,用於接I/O模板或底板,有內存介面,用於安裝內存,有外設口,用於接外部設備,有的還有通訊口,用於進行通訊。CPU模塊上還有許多設定開關,用以對PLC作設定,如設定起始工作方式、內存區等。
二、I/O模塊:
PLC的對外功能,主要是通過各種I/O介面模塊與外界聯系的,按I/O點數確定模塊規格及數量,I/O模塊可多可少,但其最大數受CPU所能管理的基本配置的能力,即受最大的底板或機架槽數限制。I/O模塊集成了PLC的I/O電路,其輸入暫存器反映輸入信號狀態,輸出點反映輸出鎖存器狀態。
三、電源模塊:
有些PLC中的電源,是與CPU模塊合二為一的,有些是分開的,其主要用途是為PLC各模塊的集成電路提供工作電源。同時,有的還為輸入電路提供24V的工作電源。電源以其輸入類型有:交流電源,加的為交流220VAC或110VAC,直流電源,加的為直流電壓,常用的為24V。
四、底板或機架:
大多數模塊式PLC使用底板或機架,其作用是:電氣上,實現各模塊間的聯系,使CPU能訪問底板上的所有模塊,機械上,實現各模塊間的連接,使各模塊構成一個整體。
五、PLC 的外部設備
外部設備是PLC系統不可分割的一部分,它有四大類
編程設備:有簡易編程器和智能圖形編程器,用於編程、對系統作一些設定、監控PLC及PLC所控制的系統的工作狀況。編程器是PLC開發應用、監測運行、檢查維護不可缺少的器件,但它不直接參與現場控制運行。
監控設備:有數據監視器和圖形監視器。直接監視數據或通過畫面監視數據。
存儲設備:有存儲卡、存儲磁帶、軟磁碟或只讀存儲器,用於永久性地存儲用戶數據,使用戶程序不丟失,如EPROM、EEPROM寫入器等。
輸入輸出設備:用於接收信號或輸出信號,一般有條碼讀人器,輸入模擬量的電位器,列印機等。
六、PLC的通信聯網
PLC具有通信聯網的功能,它使PLC與PLC 之間、PLC與上位計算機以及其他智能設備之間能夠交換信息,形成一個統一的整體,實現分散集中控制。現在幾乎所有的PLC新產品都有通信聯網功能,它和計算機一樣具有RS-232介面,通過雙絞線、同軸電纜或光纜,可以在幾公里甚至幾十公里的范圍內交換信息。
當然,PLC之間的通訊網路是各廠家專用的,PLC與計算機之間的通訊,一些生產廠家採用工業標准匯流排,並向標准通訊協議靠攏,這將使不同機型的PLC之間、PLC與計算機之間可以方便地進行通訊與聯網。
了解了PLC的基本結構,我們在購買程式控制器時就有了一個基本配置的概念,做到既經濟又合理,盡可能發揮PLC所提供的最佳功能。