微機原理專案七
姓名:李守燁
班級:08級機電2班
指導老師:史豔國
學號:080101010398
時間:2011/5/21
目錄1題目及要求 2
2過程示意圖 2
3總體設計思路 3
3.1步進電機的模擬 3
3.2控制系統的啟停控制 3
3.3指示燈的控制 3
3.4數碼管靜態顯示 3
4系統流程框圖 4
5系統接線示意圖 5
6程式部分 6
7實驗結果及分析 12
7.1實驗結果 12
7.2實驗分析 12
8結論 12
9感想 12
瓶裝飲料生產線傳送控制系統某廠生產瓶裝保健品飲品,每10瓶裝一箱,要求箱滿時,啟動送箱裝置,先送走滿箱到位(延時一定時間),再送來空箱到位(延時一定時間),滿箱和空箱分別在兩個不同的傳送帶上傳送。能人為控制生產線的啟動和停止(比如鍵盤上,按某一鍵啟動,啟動後按任意鍵停止)。能在數碼管上顯示當時已裝滿送出的箱數。
圖2. 1
用步進電機的正反轉來模擬送來空箱和送走滿箱。用8255的pc0~pc3作為輸出給步進電機a~d口,選用單雙八拍工作方式(a->ab->b->bc->c->cd->d->da->a)。
步進電機的驅動原理是通過它每相線圈的電流的順序切換來使電機作步進式旋轉,驅動電路由脈衝來控制,所以調節脈衝的頻率便可改變步進電機的轉速,微控制器最適合控制步進電機。
用8255的pc7和pc6作為輸入採集開關訊號控制系統的啟停。首先設定8255的工作方式為0方式,c口的高4位設為輸入,然後把pc7和pc6和開關相連。系統通過採集開關訊號來判別是否啟動和暫停系統。
用8255的a口作為輸出來控制指示燈。綠燈代表送來空箱子,黃燈代表裝箱過程,紅燈代表送走滿箱。
選用8279連線數碼管來靜態顯示所記錄的箱數。8279自身有重新整理數碼管的頻率,較之8255能更穩定地顯示數字。
圖4. 1
圖5. 1
stac segment stack
db 1024 dup(0)
stac ends
data segment
;定義資料段
z8279 equ 0bf01h ;8279命令字、狀態字位址8279連cs5
d8279 equ 0bf00h ;8279讀寫資料口的位址
led db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,080h,90h ;段碼
counter dw 0
num db 10
temporary db ?
data ends
code segment 'code'
assume cs:code,ds:data,ss:stac
start: mov ax,data
mov ds,ax
start1: mov al,10000010b對8255進行初始化
mov dx,0f003h
out dx,al
mov dx,0f001h
in al,dx
and al,80h
cmp al,0
jnz start1
jz start2
start2: call init82798279寫入方式控制字,初始化
call lightoff系統剛啟動指示燈全滅
call leddisp系統剛啟動數碼管顯示為0
call delay
;主程式
start3: call step_motor1電動機正轉,送來空箱
call delay延時一段時間
call yellowlight裝箱過程,黃燈亮
call delay延時
call step_motor2電動機反轉 ,送走滿箱,且計數並顯示
call delay
call stop檢測是否按下停止鍵
jmp start3如果沒按停止鍵,則程式系統繼續工作
mov ax,4c00h
int 21h
;8279初始化
init8279 proc
mov dx,z8279cmd_8279為寫命令位址、讀狀位址
mov al,34h
out dx,al可程式設計時鐘設定,設定分頻係數(20分頻
mov al,08*8字元顯示,左邊輸入,外部解碼鍵掃瞄方式
out dx,al
mov al,0a0h顯示禁止/熄滅命令
out dx,al
call init8279_1
retinit8279 endp
init8279_1 proc
call clear
mov al,90h從第乙個數碼管開始移位顯示
out dx,al
retinit8279_1 endp
;清除命令
clear proc
mov dx,z8279
mov al,0deh
out dx,al
wait1: in al,dx
test al,80h
jnz wait1顯示ram清除完畢嗎?
retclear endp
;段碼編寫
write proc
div numcx=ax,把計數值除十,取出餘數存入ah商存入al,顯示餘數
mov temporary,al 商暫存在temporary
mov al,ah餘數存入al
mov bx,offset led
xlat換碼即al=ds:[bx+al]
out dx,al輸出段碼
mov ah,0ax高位復0
mov al,temporary把商又賦給al,即商存入到ax裡,為下一次
除法做準備
retwrite endp
leddisp proc顯示子程式
mov dx,d8279
mov ax,counter
push cx
mov cx,8往8279裡面寫8次
again: call write
loop again
pop cx
retleddisp endp
delay proc延時子程式
push bx
push cx
mov bx,8
delay1:mov cx,0
delay2:loop delay2
dec bx
jnz delay1
pop cx
pop bxret
微機原理專案報告修改
生產線控制系統的計算機控制技術的實現 班級 學號 姓名 課程名稱 微機原理 指導教師 2011年5月23日 目錄1.專案說明3 1.1專案題目3 1.2方案預想3 2.專案實驗過程5 2.1所用實驗儀器及連線方式 5 2.2 專案所用程式6 3.模擬實驗結果12 4.專案結論12 5.專案心得12 ...
微機原理實習報告
微機實習報計科091班 2組 告2010年6月10日 表基於tdn md88的交通燈 1 設計目的 利用tdn微機原理試驗箱及單元電路,實現對一道路交通燈的控制。二 小組成員及主要分工 三 技術要求 1 設計完成交通燈的電路 2 採用tdn試驗箱上的8255 8259 8088完成 3 程式設計中採...
微機原理實驗報告
一 實驗綜述 實驗目的 1 熟悉debug環境,在debug中輸入程式。2 掌握基本指令的用法。3 分析程式執行結果。4 會按要求編寫基本程式,完成基本功能。二 實驗過程 實驗步驟 資料記錄 實驗3.57 若ax 1001h,dx 20ffh,當執行add ax,dx指令以後,請列出和數及標誌暫存器...