《設(shè)計說明書》word版.doc
《《設(shè)計說明書》word版.doc》由會員分享,可在線閱讀,更多相關(guān)《《設(shè)計說明書》word版.doc(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。
電路設(shè)計原理及原理圖 1、 設(shè)計方案 本電路設(shè)計主要是想通過AT89C51單片機的I/O口來給ULN2003A電機驅(qū)動芯片賦值達到控制步進電機(帶動凸輪軸的轉(zhuǎn)動)的正傳啟動,反轉(zhuǎn)啟動,停止等功能。單片機的P1口的低四位作為控制電機的控制輸出,對于輸入我們采用兩種方式,方式一:硬件開關(guān)控制。方式二:上位機(采用vb編程)控制。P0.0,P0.1連接兩路開關(guān),上位機和下位機單片機采用串行通信。 PC機 電平轉(zhuǎn)換 晶振電路 FREQ=12MHZ 復(fù)位電路 步進電機 MOTOR STEPPER 電機驅(qū)動芯片 ULN2003A 正/反轉(zhuǎn)控制開關(guān) 單片機 AT89C51 電機正/反轉(zhuǎn) 單片機AT89C51 電機驅(qū)動器ULN2003A 正/反轉(zhuǎn)開關(guān)閉合 脈沖 系統(tǒng)框圖 系統(tǒng)功能圖 2、硬件選擇以及分析 2.1硬件方案選擇 2.1.1單片機 單片機的選擇 本設(shè)計采用的是AT89C51單片機,AT89C51是一種帶4K字節(jié)閃存可編程可擦除只讀存儲器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低電壓、高性能CMOS 8位微處理器,俗稱單片機。它是一種高效微控制器,因為它更經(jīng)濟實惠,用起來靈活方便,而且習(xí)慣了用這種型號的單片機,所以選擇AT89C51單片機。 單片機的分析 單片機的主要特性 與MCS-51 兼容 4K字節(jié)可編程閃爍存儲器 壽命:1000寫/擦循環(huán) 數(shù)據(jù)保留時間:10年 全靜態(tài)工作:0Hz-24MHz 三級程序存儲器鎖定 1288位內(nèi)部RAM 32可編程I/O線 兩個16位定時器/計數(shù)器 5個中斷源 可編程串行通道 低功耗的閑置和掉電模式 片內(nèi)振蕩器和時鐘電路 單片機AT89C51的引腳說明: 圖3.1 AT89C51的引腳排列 引腳描述: VCC:電源電壓 GND:地 P0口:P0口是一組8位漏極開路雙向I/O口,即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口時,每一個管腳都能夠驅(qū)動8個TTL電路。當(dāng)“1”被寫入P0口時,每個管腳都能夠作為高阻抗輸入端。P0口還能夠在訪問外部數(shù)據(jù)存儲器或程序存儲器時,轉(zhuǎn)換地址和數(shù)據(jù)總線復(fù)用,并在這時激活內(nèi)部的上拉電阻。P0口在閃爍編程時,P0口接收指令,在程序校驗時,輸出指令,需要接電阻。 P1口:P1口一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動4個TTL電路。對端口寫“1”,通過內(nèi)部的電阻把端口拉到高電平,此時可作為輸入口。因為內(nèi)部有電阻,某個引腳被外部信號拉低時輸出一個電流。閃爍編程時和程序校驗時,P1口接收低8位地址。 P2口:P2口是一個內(nèi)部帶有上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動4個TTL電路。對端口寫“1”,通過內(nèi)部的電阻把端口拉到高電平,此時,可作為輸入口。因為內(nèi)部有電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,P2口線上的內(nèi)容在整個運行期間不變。閃爍編程或校驗時,P2口接收高位地址和其它控制信號。 P3口:P3口是一組帶有內(nèi)部電阻的8位雙向I/O口,P3口輸出緩沖故可驅(qū)動4個TTL電路。對P3口寫如“1”時,它們被內(nèi)部電阻拉到高電平并可作為輸入端時,被外部拉低的P3口將用電阻輸出電流。 P3口除了作為一般的I/O口外,更重要的用途是它的第二功能,如下表所示 端口引腳 第二功能 P3.0 RXD P3.1 TXD P3.2 INT0 P3.3 INT1 P3.4 T0 P3.5 T1 P3.6 WR P3.7 RD 表2..1 P3口第二功能 P3口還接收一些用于閃爍存儲器編程和程序校驗的控制信號。 RST: 復(fù)位輸入。當(dāng)震蕩器工作時,RET引腳出現(xiàn)兩個機器周期以上的高電平將使單片機復(fù)位。 ALE/: 當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE以時鐘震蕩頻率的1/16輸出固定的正脈沖信號,因此它可對輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖時,閃爍存儲器編程時,這個引腳還用于輸入編程脈沖。如果必要,可對特殊寄存器區(qū)中的8EH單元的D0位置禁止ALE操作。這個位置后只有一條MOVX和MOVC指令A(yù)LE才會被應(yīng)用。此外,這個引腳會微弱拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。 PSEN:程序儲存允許輸出是外部程序存儲器的讀選通信號,當(dāng)AT89C51由外部程序存儲器讀取指令時,每個機器周期兩次PSEN 有效,即輸出兩個脈沖。在此期間,當(dāng)訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN 信號不出現(xiàn)。 EA/VPP:外部訪問允許。欲使中央處理器僅訪問外部程序存儲器,EA端必須保持低電平。需要注意的是:如果加密位LBI被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平,CPU則執(zhí)行內(nèi)部程序存儲器中的指令。閃爍存儲器編程時,該引腳加上+12V的編程允許電壓VPP,當(dāng)然這必須是該器件是使用12V編程電壓VPP。 XTAL1:震蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。 XTAL2:震蕩器反相放大器的輸出端。 時鐘震蕩器:AT89C51中有一個用于構(gòu)成內(nèi)部震蕩器的高增益反相放大器,引腳XTAL1和XTAL2分別是該放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外石英晶體或陶瓷諧振器一起構(gòu)成自然震蕩器。 外接石英晶體及電容C1,C2接在放大器的反饋回路中構(gòu)成并聯(lián)震蕩電路。對外接電容C1,C2雖然沒有十分嚴(yán)格的要求,但電容容量的大小會輕微影響震蕩頻率的高低、震蕩器工作的穩(wěn)定性、起振的難易程序及溫度穩(wěn)定性。如果使用石英晶體,我們推薦電容使用30PF10PF,而如果使用陶瓷振蕩器建議選擇40PF10PF。用戶也可以采用外部時鐘。采用外部時鐘的電路如圖3.2示。這種情況下,外部時鐘脈沖接到XTAL1端,即內(nèi)部時鐘發(fā)生器的輸入端,XTAL2則懸空。由于外部時鐘信號是通過一個2分頻觸發(fā)器后作為內(nèi)部時鐘信號的,所以對外部時鐘信號的占空比沒有特殊要求,但最小高電平持續(xù)時間和最大的低電平持續(xù)時間應(yīng)符合產(chǎn)品技術(shù)條件的要求。 圖3.2內(nèi)部振蕩電路 2.1.2電平轉(zhuǎn)換 轉(zhuǎn)換芯片的選擇 本設(shè)計采用MAX232芯片進行電平轉(zhuǎn)換,MAX232芯片是美信公司專門為電腦的RS232標(biāo)準(zhǔn)串口設(shè)計的接口電路,使用+5V單電源供電,它的作用就是完成TTL電平與RS232電平的轉(zhuǎn)換。PC機的串行口采用的是標(biāo)準(zhǔn)的RS 232接口,單片機的串行口電平是FTL電平,而TTL電平特性與RS 232的電氣特性不匹配,因此為了使單片機的串行口能與RS 232接口通信,必須將串行口的輸入/輸出電平進行轉(zhuǎn)換。通常用MAX232芯片來完成電平轉(zhuǎn)換。 M32芯片的分析 MAX232芯片是美信公司專門為電腦的RS-232標(biāo)準(zhǔn)串口設(shè)計的接口電路,使用+5v單電源供電。 內(nèi)部結(jié)構(gòu)基本可分三個部分: 第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。 第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。 其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。 8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。 TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DP9插頭;DP9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。 第三部分是供電。15腳DNG、16腳VCC(+5v)。 電平轉(zhuǎn)換電路如下: 2.1.3 計數(shù)器 計數(shù)器的選擇 本設(shè)計采用的計數(shù)器是8253A,由此計數(shù)器來記錄下光柵位移傳感器和光電編碼盤的脈沖信號,達到計數(shù)的功能,然后由它把記錄下得脈沖數(shù)傳輸給單片機,由單片機記錄保存下來。 計數(shù)器的分析 8253A是可編程定時計數(shù)器,它是INTEL公司專為x86系列CPU配置的外圍接口芯片。它在微機系統(tǒng)中可用作定時器和計數(shù)器。定時時間和計數(shù)次數(shù)有用戶事先設(shè)定。 1.8253A內(nèi)部結(jié)構(gòu) 四大部分:數(shù)據(jù)總線緩沖器、讀寫控制邏輯、控制字寄存器以及三個獨立的16位計數(shù)器通道。這三個計數(shù)器分別是計數(shù)器0通道、計數(shù)器1通道和計數(shù)器2通道。 (1)數(shù)據(jù)總線緩沖器:8位的雙向三態(tài)緩沖器。用于暫存數(shù)據(jù),使用在以下幾個方面:①CPU在初始化編程時,向8253寫入控制字。②CPU向某一通道寫計數(shù)初值。③CPU從某一通道讀計數(shù)初值。 (2)讀/寫控制邏輯電路:接受輸入的RD、WR、CS、A1、A0等信號組合產(chǎn)生出對8253要執(zhí)行的操作,見操作表。 (3)控制字寄存器:只能寫入,不能讀出。8初始化編程時,寫入控制字決定通道的工作方式。 (4)3個計數(shù)器:分別是0、1和2,是3個獨立的計數(shù)\定時通道,都可以按照不同的方式工作。每個計數(shù)器內(nèi)部都包含一個16位的預(yù)置初始寄存器。一個可預(yù)置數(shù)減法計數(shù)器和一個鎖存器。 2.1.4 步進電機驅(qū)動芯片 在設(shè)計中我們采用的步進電機驅(qū)動芯片為ULN2003A,此芯片通過將單片機來的控制信號進行功率的放大來驅(qū)動步進電機的轉(zhuǎn)動。 ULN2003A驅(qū)動芯片的分析 ULN2003A是高耐壓、大電流、內(nèi)部由七個硅NPN 達林頓管組成的驅(qū)動芯片。 經(jīng)常在以下電路中使用,作為: 1、顯示驅(qū)動 2、繼電器驅(qū)動 3、照明燈驅(qū)動 4、電磁閥驅(qū)動 5、伺服電機、步進電機驅(qū)動等電路中。 ULN2003A 的每一對達林頓都串聯(lián)一個2.7K 的基極電阻,在5V 的工作電壓下它 能與TTL 和CMOS 電路直接相連,可以直接處理原先需要標(biāo)準(zhǔn)邏輯緩沖器來 處理的數(shù)據(jù)。 ULN2003A 工作電壓高,工作電流大,灌電流可達500mA,并且能夠在關(guān)態(tài)時承受 50V 的電壓,輸出還可以在高負(fù)載電流并行運行。 ULN2003A 的封裝采用DIP—16 或SOP—16 ULN2003A在各種控制電路中常用它作為驅(qū)動繼電器的芯片,其芯片內(nèi)部做了一個消線圈反電動勢的二極管。ULN2003的輸出端允許通過IC 電流200mA,飽和壓降VCE 約1V左右,耐壓BVCEO 約為36V。輸出電流大,故可以直接驅(qū)動繼電器或固體繼電器(SSR)等外接控制器件,也可直接驅(qū)動低壓燈泡。 ULN2003A可以驅(qū)動7個繼電器,具有高電壓輸出特性,并帶有共陰極的續(xù)流二極管使器件可用于開關(guān)型感性負(fù)載。每對達林頓管的額定集電極電流是500mA,達林頓對管還可并聯(lián)使用以達到更高的輸出電流能力。 ULN2003A中每對達林頓管的基極都串聯(lián)有一個2.7kΩ的電阻,可直接與TTL或5V CMOS器件連接 ULN2003可以并聯(lián)使用,在相應(yīng)的OC輸出管腳上串聯(lián)幾個歐姆的均流電阻后再并聯(lián)使用,防止陣列電流不平衡。 2.1.5 其他元器件 此外我們設(shè)計的電路中還采用了細(xì)分電路、復(fù)位電路、晶震電路,這些都用到了與門,非門等基本元器件,不再贅述。 3. 電路原理 AT89C51是集成40個I/O口的單片機,擁有12MHZ的晶振周期,電路擁有可控復(fù)位電路。ULN2003A電機驅(qū)動電路可以實現(xiàn)電機的速度調(diào)整。本電路實現(xiàn)電機調(diào)速主要利用了ULN2003A的引腳的電平控制,讓其電平的高低變化可以根據(jù)單片機的程序來進行調(diào)節(jié)。本電路分別進行了設(shè)置,當(dāng)正轉(zhuǎn)開關(guān)閉合都時,可以控制電機正轉(zhuǎn),當(dāng)反轉(zhuǎn)電機閉合時,可以控制電機反轉(zhuǎn)。 在電路中我們還加了上位機,通過vb編程來實現(xiàn)PC機和單片機的通信,通過vb來給單片機發(fā)送指令,達到控制步進電機的目的,這樣可以減輕單片機的負(fù)擔(dān),單片機就值充當(dāng)了數(shù)據(jù)的采集和指令的傳送。 3.1開關(guān)控制 當(dāng)正轉(zhuǎn)開關(guān)閉合時,電機正轉(zhuǎn);當(dāng)反轉(zhuǎn)開關(guān)閉合時,電機反轉(zhuǎn);當(dāng)兩個開關(guān)都斷開時,電機停止轉(zhuǎn)動。 圖3:開關(guān)控制電路 3.2 晶振電路 為AT89C51提供晶振 圖4:晶振電路 3.3 復(fù)位電路 給單片機提供復(fù)位功能 圖5:復(fù)位電路 3.4 電機驅(qū)動電路 圖6:電機驅(qū)動電路 3.5 串行通信電路 圖7:串行通信電路 3.6計數(shù)電路 圖8:計數(shù)電路 3.7細(xì)分電路 圖9:細(xì)分電路 3.8 電路總圖 4、 軟件設(shè)計 4.1驅(qū)動步進電機轉(zhuǎn)動的程序 步進電機的驅(qū)動編碼是通過時下最流行的KEIL UV ISION3一體化集成編程軟件完成,在KEIL環(huán)境下編寫程序并生成二進制文件。只要是設(shè)置兩個按鍵對電機進行正反轉(zhuǎn)控制,在驅(qū)動程序中設(shè)定每次按鍵的步進值。在軟件設(shè)計部分,首先要進行數(shù)據(jù)初始化,然后進行首要操作判決,執(zhí)行如下語句即可實現(xiàn)對按鍵的掃描,其中每一句為步進電機的初始角度定義,一般定義起始角度為0.POS為正轉(zhuǎn)控制子程序,NEG為反轉(zhuǎn)控制子程序。 WAIT: MOV P1,R0 MOV P0,#0FFH JNB P0.0,POS JNB P0.1,NEG SJMP WAIT 在按鍵判斷完成后,進行數(shù)據(jù)處理,如下為正轉(zhuǎn)子程序,在執(zhí)行以下語句后還要判斷按鍵是否持續(xù),若持續(xù)按鍵,則步進值遞增,對步進電機進行連續(xù)驅(qū)動,否則當(dāng)按鍵松開時按鍵步進電機停止轉(zhuǎn)動。 POS: MOV A,R4 MOVC A,@A+DPTR MOV P1,A ACALL DELAY INC R4 當(dāng)為反轉(zhuǎn)控制時,控制方式同正轉(zhuǎn)相同。下面為反轉(zhuǎn)處理子程序。在此次設(shè)計中將步進設(shè)置為9度。 NEG: MOV R4,#6 MOV A,R4 MOVC A,@A+DPTR MOV P1,A 在初始化中必須包含步進數(shù)據(jù)模型TAB1,在數(shù)據(jù)處理過程中進行不斷查表輸出控制量,從而實現(xiàn)電機的正反轉(zhuǎn)控制。在數(shù)據(jù)處理完成后送出P1口低四位,經(jīng)電機驅(qū)動器驅(qū)動電機運轉(zhuǎn)。 TAB1:DB 02H,06H,04H,0CH DB 08H,09H,01H,03H 4.2上位機(PC機)與下位機(單片機)的通信程序 4.2.1下位機(單片機)的接受指令的框圖和程序 單片機程序接受框圖: 串口中斷 保護出棧 接收完畢? 中斷返回 第一次接收? 中斷返回 送緩沖 保護入棧 清中斷 送緩沖 清第一次 接收標(biāo)志 置第一次接收標(biāo)志 置接收計數(shù)值 清中斷 是接收? N Y Y N Y N 單片機接受程序: ;-------------------------------------------------- ;-------------------------------------------------- ;設(shè)置串行口 波特率9600 ;串行口設(shè)置MODE1,SM1=0,REN=1,SMOD=1 ;晶振11.0592,定時設(shè)置為0FDH ;常用端口設(shè)置參數(shù) ;FD 9600 ;FA 4800 ;F4 2400 ;E8 1200 ;-------------------------------------------------- ;*********************************************************** ORG 00H JMP START ORG 23H JMP UART ORG 30H START: MOV SP,#70H MOV SCON,#50H MOV TMOD,#00100001B ;TIM1在模式2 TIM0在模式1 MOV TH1,#0F4H ;設(shè)置定時時間 SETB TR1 ;啟動定時器1 SETB ES ;允許串口中斷 SETB EA ;允許總中斷 MOV P0,#0 ;P0、P2輸出低電平 MOV P2,#0 JMP $ ;等待狀態(tài) ;***************************************** ;串行口中斷 ;***************************************** UART: PUSH ACC PUSH PSW CLR ES ;關(guān)閉串行口中斷 MOV TH0,#HIGH(65536-65536) MOV TL0,#LOW(65536-65536) SETB TR0 ;開定時器0 MOV 30H,#00 ;同步位 MOV 31H,#00 ;數(shù)據(jù)1 MOV 32H,#00 ;數(shù)據(jù)2 MOV 33H,#00 ;結(jié)束位 MOV R0,#30H REC: jbc tf0,FS ;接收時間是否超時?是則執(zhí)行FS JNB RI,REC ;接收數(shù)據(jù) CLR RI MOV A,SBUF MOV @R0,A INC R0 JMP REC FS: CLR TR0 ;關(guān)定時器0 ;******************************** CALL FUN ;解碼并控制繼電器 SETB ES ;開串行口中斷 POP PSW POP ACC RETI ;中斷子程序返回 ;**************************************** ;解碼并控制繼電器 ;下面的程序可以更簡潔,但為了方便,展開來編制 ;**************************************** FUN: MOV A,#0AH ;判斷第1字節(jié)即同步位 CJNE A,30H,ERR MOV A,#0DH ;判斷第4字節(jié)即結(jié)束位 CJNE A,33H,ERR ;**************************************** ;第2字節(jié)即數(shù)據(jù)位1,代表繼電器J1-8 ;第3字節(jié)即數(shù)據(jù)位2,代表繼電器J9-16 ;**************************************** MOV A,31H MOV P0,A MOV A,32H MOV P2,A RET ;************************************** ; 數(shù)據(jù)錯誤處理 ;************************************** ERR: MOV 30H,#00 ;同步位 MOV 31H,#00 ;數(shù)據(jù)1 MOV 32H,#00 ;數(shù)據(jù)2 MOV 33H,#00 ;結(jié)束位 RET END ;程序結(jié)束 ;-------------------------------------------------- ;-------------------------------------------------- 4.2.2上位機的指令發(fā)送程序和人機界面的設(shè)計 上位機我們用的是vb編的程序,程序如下: Private Sub Command1_Click() Dim outbet(0 To 3) As Byte outbet(0) = &HA outbet(1) = &HFE outbet(2) = &H0 outbet(3) = &HD MSComm1.OutBufferCount = 0 MSComm1.Output = outbet End Sub Private Sub Command2_Click() Dim outbet(0 To 3) As Byte outbet(0) = &HA outbet(1) = &HFD outbet(2) = &H0 outbet(3) = &HD MSComm1.OutBufferCount = 0 MSComm1.Output = outbet End Sub Private Sub Command3_Click() Dim outbet(0 To 3) As Byte outbet(0) = &HA outbet(1) = &HFF outbet(2) = &H0 outbet(3) = &HD MSComm1.OutBufferCount = 0 MSComm1.Output = outbet End Sub Private Sub Form_Load() MSComm1.CommPort = 3 MSComm1.Settings = "9600,n,8,1" MSComm1.PortOpen = True MSComm1.RThreshold = Value End Sub 人機界面的設(shè)計:- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 設(shè)計說明書 設(shè)計 說明書 word
鏈接地址:http://m.appdesigncorp.com/p-9022545.html