微機原理課程設計報告簡易電子廣告牌設計

2021-06-23 07:45:49 字數 4019 閱讀 1904

一選題介紹

題目:簡易電子廣告牌設計

意義: 由於微控制器技術的不斷發展和高亮度led發光管的出現使得大螢幕高亮度led電子廣告屏成為可能,與傳統的霓虹燈廣告在顯示效果以及可修改性上都有著無法比擬的優勢,而且微控制器的日益平民化以及led技術的不斷創新,使得高亮度高畫質晰的led點陣廣告牌與傳統霓虹燈廣告牌的成本日益接近。簡易廣告牌的設計發展在市場又很大的潛力

功能:實驗箱上設有乙個共陽極8×8點陣的紅黃兩色led顯示器。程式設計使led顯示器迴圈顯示一條廣告語,例如:

歡迎光臨。要求:廣告語可以自己任意選擇,但字數不少於3個;廣告語的顏色紅黃交替顯示,例如:

先顯示紅色廣告語,再顯示黃色廣告語,如此交替迴圈;廣告語中每個字元顯示的時間由8253定時器控制,定時時間到顯示下乙個字元,設定每個字元顯示的時間為數秒不等,可以自行設定;若鍵盤輸入「r」則返回dos,結束程式。

設計原理: 實驗箱上是乙個共陽極8×8點陣的紅黃兩色led顯示器該點陣對外引出24條線,其中8條行線,8條紅色列線,8條黃色列線。若使某一種顏色、某乙個led發光,只要將與其相連的行線加高電平,列線加低電平即可。

例如欲顯示漢字「年」,採用逐列迴圈發光。

首先由「年」的點陣輪廓,確定點陣**(如圖所示)根據「年」的點陣**,確定逐列迴圈發光的順序如下:

① 行**輸出 44h; 紅色列**輸 01h;第一列2個紅色led發光。

② 行**輸出 54h; 紅色列**輸 02h;第二列3個紅色led發光。

③ 行**輸出 54h; 紅色列**輸 04h;第三列3個紅色led發光。

④ 行**輸出 7fh; 紅色列**輸 08h;第四列7個紅色led發光。

⑤ 行**輸出 54h; 紅色列**輸 10h;第五列3個紅色led發光。

⑥ 行**輸出 dch; 紅色列**輸 20 h;第六列5個紅色led發光。

⑦ 行**輸出 44h; 紅色列**輸 40 h;第七列2個紅色led發光。

⑧ 行**輸出 24h; 紅色列**輸 80 h;第八列2個紅色led發光。

在步驟①~⑧之間可插入幾ms的延時,重複進行①~⑧即可在led上穩定的顯示出紅色「年」字。若想顯示黃色「年」,只需把紅色列碼改為黃色列碼即可。

電路圖:

二硬體設計:

1.基本工作原理和程式設計方法:

硬體電路連線:

重要晶元功能說明:

8*8led顯示器:

三個片選端,分別為行片選,紅色列片選,黃色列片選。

8253可程式設計定時/計數器:

本實驗中只使用計數器0,並將其設定為工作方式0,16為計數。

8255可程式設計並行介面:

8255有3種工作方式,在8255中有乙個控制字用來選擇工作方式和a、b、c三個埠。

按圖1虛線連線電路,將計數器0設定為方式0,計數器初值為n(n≤0fh),用手動逐個輸入單脈衝,程式設計使計數值在螢幕上顯示,並同時用邏輯筆觀察out0電平變化(當輸入n+1個脈衝後out0變高電平)。

2.8255方式0的工作原理:

(1)三個資料埠a、b、c,每個埠均為8位,可選擇輸入或輸出操作;

(2)a組控制和b組控制:埠a和埠c的高4位構成a組埠b和斷口c的低4位構成b組,分別又a組和b組控制電路控制。兩組控制電路內各有乙個控制暫存器,接受cpu輸出的控制字,決定各埠的工作方式;

(3)資料匯流排緩衝器:這是個三態雙向的8位緩衝器,起著8255a與cpu資料匯流排介面的作用,用來傳送輸入/輸出的資料、cpu發出的控制字及狀態資訊;

實驗電路:

3 實驗系統原理圖及硬體原理說明:

1、用8253的計數器0和計數器1作為1mhz時間的的分頻,使間脈衝變成1hz,由計數器1的out口輸出,並把out口接到8255的pa0埠,目的是讓8255去讀這個埠的值,為程式中的定時,當時間到時就變換字。

2、8253的兩個計數器用工作方式2(分頻器)和工作方式3(方波發生器),8255採用工作方式0,輸出口為a口的第乙個口pa0。

3、顯示塊的三個片選埠分別接的是實驗板上i/o口位址的298h(行顯示),288h(紅色列顯示線),290h(黃色列顯示線)

4、接通電源,執行測試程式,由8253計時,8255檢測8253out口的電平值,直到低電平就顯示下乙個字,並且中間有一定的器件延時。

四軟體設計

流程圖:

**ioport equ 0c400h-0280h ;實驗箱的埠位址

proth equ ioport+280h ;行片選訊號cs1埠位址

protlr equ ioport+288h ;紅列片選訊號 cs2埠位址

protly equ ioport+290h ;黃列片選訊號 cs3埠位址

io8253a equ ioport+29bh ;8253控制字埠位址

io8253b equ ioport+298h ;計數器0埠位址

io8253c equ ioport+299h ;計數器1埠位址

io8255a equ ioport+2a3h ;8255控制字埠位址

io8255b equ ioport+2a0h ;8255 p0口位址

data segment

mess db 'strike the "r" key ,return to dos!',0ah,0dh,'$' ;執行介面資訊提示

min1 db 00h,01h,02h,03h,04h,05h,06h,07h

count2 db定義計字變數

buff dw定義行碼位址變數

buff1 db 43h,21h,11h,0ffh,00h,0ffh,24h,22h北」字

buff2 db 00h,41h,07ah,68h,0efh,69h,7ah,41h ;「京」字

buff3 db 0c2h,84h,0ffh,85h,42h,80h,7fh,20h ;「你」字

buff4 db 48h,68h,5fh,49h,3dh,0e2h,3dh,20h好」 字

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov dx,offset mess

mov ah,09

int 21h顯示提示資訊

mov dx,io8255a設8255a口輸入

mov al,9bh

out dx,al

mov al,16h設定8253通道0為工作方式3,二進位制計數

mov dx,io8253a

out dx,al

mov al,70h設定8253通道1為工作方式0,先低後高,二進位制計數

mov dx,io8253a

out dx,al

mov dx,io8253b計數器0的埠位址

mov al,0fh寫低8位計數值

out dx,al

agn: mov count2,04h ;賦值給計字變數

mov bx,offset buff1

mov buff,bx給行賦初值

c2: mov dx,io8253c計數器1的埠位址

mov al,0ffh先寫低8位計數值

out dx,al

mov al,0ffh再寫高8位計數值

out dx,al

d2: mov ah,01h列初值

mov cx,0008h列迴圈次數

mov si,offset min1

next: mov dh,count2 ;判斷字變數是否已經為0

cmp dh,00h

jz agn1是,轉向agn1顯示黃色字

d4: mov al,[si]

mov bx, buff

xlat得到第一行碼

mov dx,proth

out dx,al顯示第一行碼

mov al,ah

mov dx,protlr

out dx,al顯示第一列,紅色字

shl ah,01左移1位

inc si

push cx

微機原理課程設計報告

第一章微機應用系統課程設計的目的意義 1.1 課程設計的目的意義 學習和掌握計算機中常用介面電路的應用和設計技術,充分認識理論知識對應用技術的指導性作用,進一步加強理論知識與應用相結合的實踐和鍛鍊。通過這次設計實踐能夠進一步加深對專業知識和理論知識學習的認識和理解,使自己的設計水平和對所學的知識的應...

微機原理課程設計

學號0814206 微型計算機原理與接 術 課程設計 2008級本科 題目 交通燈控制系統 系 部 院 物理與機電工程學院 專業電氣工程及其自動化 作者姓名 董光鵬 指導教師 張靜職稱 副教授 完成日期 2011 年 6 月 30 日 課程設計任務書 2011 年秋季學期 前言隨著計算機科學技術的不...

微機原理課程設計報告 時鐘設計

微機原理及組合語言 課程設計報告 內容提要 本課程設計報告重點闡述了課程設計的原理,過程實現,以及 闡述,流程圖表示以及在實驗中遇到的問題,實驗過程等等。本報告旨在總結微機課程設計中的收穫以及完成的過程。微機課程設計是我們本學期進行的難度最大且最具有實踐性的課程設計。對於我們剛剛學完微機理論基礎的同...