5微控制器廣告燈 利用取表方式 實驗

2021-06-27 11:01:37 字數 1323 閱讀 1631

1. 實驗任務

利用取表的方法,使埠p1做單一燈的變化:左移2次,右移2次,閃爍2次(延時的時間0.2秒)。

2. 電路原理圖

圖4.5.1

3. 系統板上硬體連線

把「微控制器系統」區域中的p1.0-p1.7用8芯排線連線到「八路發光二極體指示模組」區域中的l1-l8埠上,要求:

p1.0對應著l1,p1.1對應著l2,……,p1.

7對應著l8。

4. 程式設計內容

在用**進行程式設計的時候,要用以下的指令來完成

(1). 利用mov dptr,#data16的指令來使資料指標暫存器指到表的開頭。

(2). 利用movc a,@a+dptr的指令,根據累加器的值再加上dptr的值,就可以使程式計數器pc指到**內所要取出的資料。

因此,只要把控制碼建成乙個表,而利用movc 工,@a+dptr做取碼的操作,就可方便地處理一些複雜的控制動作,取表過程如下圖所示:

5. 程式框圖

圖4.5.2

6. 彙編源程式

org 0

start: mov dptr,#table

loop: clr a

movc a,@a+dptr

cjne a,#01h,loop1

jmp start

loop1: mov p1,a

mov r3,#20

lcall delay

inc dptr

jmp loop

delay: mov r4,#20

d1: mov r5,#248

djnz r5,$

djnz r4,d1

djnz r3,delay

rettable: db 0feh,0fdh,0fbh,0f7h

db 0efh,0dfh,0bfh,07fh

db 0feh,0fdh,0fbh,0f7h

db 0efh,0dfh,0bfh,07fh

db 07fh,0bfh,0dfh,0efh

db 0f7h,0fbh,0fdh,0feh

db 07fh,0bfh,0dfh,0efh

db 0f7h,0fbh,0fdh,0feh

db 00h, 0ffh,00h, 0ffh

db 01h

end7. c語言源程式

#include

unsigned char code table=;

unsigned char i;

void delay(void)

void main(void) }

廣告燈 利用取表方式

1 實驗任務 利用取表的方法,使埠p1做單一燈的變化 左移2次,右移2次,閃爍2次 延時的時間0.2秒 2 電路原理圖 圖4.5.1 3 系統板上硬體連線 把 微控制器系統 區域中的p1.0 p1.7用8芯排線連線到 八路發光二極體指示模組 區域中的l1 l8埠上,要求 p1.0對應著l1,p1.1...

第四章5廣告燈 利用取表方式

1 實驗任務 利用取表的方法,使埠p1做單一燈的變化 左移2次,右移2次,閃爍2次 延時的時間0.2秒 2 電路原理圖 圖4.5.1 3 系統板上硬體連線 把 微控制器系統 區域中的p1.0 p1.7用8芯排線連線到 八路發光二極體指示模組 區域中的l1 l8埠上,要求 p1.0對應著l1,p1.1...

微控制器實驗 廣告燈的左移右移

1 實驗任務 做單一燈的左移右移,硬體電路如圖4.4.1所示,八個發光二極體l1 l8分別接在微控制器的p1.0 p1.7介面上,輸出 0 時,發光二極體亮,開始時p1.0 p1.1 p1.2 p1.3 p1.7 p1.6 p1.0亮,重複迴圈。2 電路原理圖 圖4.4.1 3 系統板上硬體連線 把...