微控制器實驗報告

2021-03-04 02:49:43 字數 4443 閱讀 5467

姓名王文龍

學院機電工程院

班級機械 1102 班

學號0806110402

日期2014.10.30

實驗一定時器實驗

一、實驗目的

1.學習89c51內部計數器的使用和程式設計方法

2.進一步掌握中斷處理程式的編寫方法

二、實驗說明

關於內部計數器的程式設計主要是定時常數的設定和有關控制暫存器的設定。內部計數器在微控制器中主要有定時器和計數器兩個功能。本實驗使用的是定時器,定時為一秒鐘。

cpu運用定時中斷方式,實現每一秒鐘輸出狀態發生一次反轉,即發光管每隔一秒鐘亮一次。

定時器有關的暫存器有工作方式暫存器tmod和控制暫存器tcon。tmod用於設定定時器/計數器的工作方式0-3,並確定用於定時還是用於計數。tcon主要功能是為定時器在溢位時設定標誌位,並控制定時器的執行或停止等。

內部計數器用作定時器時,是對機器週期計數。每個機器週期的長度是12個振盪器週期。因為實驗系統的晶振是12mhz,本程式工作於方式2,即8位自動重灌方式定時器, 定時器100us中斷一次, 所以定時常數的設定可按以下方法計算:

機器週期=12÷12mhz=1us

(256-定時常數)×1us=100us

定時常數=156。然後對100us中斷次數計數10000次,就是1秒鐘。

在本實驗的中斷處理程式中,因為中斷定時常數的設定對中斷程式的執行起到關鍵作用,所以在置數前要先關對應的中斷,置數完之後再開啟相應的中斷。

三、實驗內容及步驟

本實驗需要用到微控制器最小應用系統模組(f1區)和十六位邏輯電平顯示模組(i4區)。

1.使用微控制器最小應用系統模組,用導線將p1.0接到十六位邏輯電平顯示的任意乙隻發光二極體上。

2.用序列資料通訊線連線計算機與**器,把**頭插到模組的微控制器插座中,開啟模組電源,插上**器電源插頭(usb線)。

3.開啟keil uvision2**軟體,首先建立本實驗的專案檔案,接著新增「th10_定時器.a**」源程式,編譯無誤後。

4.全速執行程式,發光二極體隔一秒點亮一次,點亮時間為一秒。

5.也可以把源程式編譯成可執行檔案,把可執行檔案用isp燒錄器燒錄到89s52/89s51晶元中執行。(isp燒錄器的使用檢視附錄二)

四、實驗框圖以及源程式

1.流程圖

2.源程式

tick equ 5000 ; 10000 x 100us = 1s

t100us equ 20 ; 100us時間常數(6m)

c100us equ 5h ; 100us記數單元

ledbuf bit 00h

led bit p1.0

*** 0000h

ljmp start

*** 000bh

ljmp t0int

*** 0100h

t0int:

push psw

mov a, c100us+1

jnz goon

dec c100us

goon:

dec c100us+1

mov a, c100us

orl a, c100us+1

jnz exit100us 記數器不為0, 返回

mov c100us, #high(tick);#high(tick)

mov c100us+1, #low(tick);#low(tick)

cpl ledbuf ; 100us 記數器為0, 重置記數器

取反led

exit:

pop psw

reti

start:

mov tmod, #02h方式2, 定時器

mov th0, #t100us

mov tl0, #t100us

mov ie, #10000010b ; ea=1, it0 = 1

setb tr0開始定時

clr ledbuf

clr p1.0

mov c100us, #high(tick)

mov c100us+1, #low(tick)

loop:

mov c, ledbuf

mov p1.0, c

ljmp loop

end五、電路圖

實驗二序列靜態顯示實驗

一、實驗目的

1.掌握數字、字元轉換成顯示段碼的軟體解碼方法

2.靜態顯示的原理和相關程式的編寫

二、實驗電路

顯示器由8個共陰極led數碼管組成。輸入只有兩個訊號,它們是序列資料線din和移位訊號clk。8個串/並移位暫存器晶元74ls164首尾相連。

每片的並行輸出作為led數碼管的段碼。

74ls164的引腳圖如圖所示;

74ls164為8位串入並出移位暫存器,1、2為序列輸入端,qa~qh為並行輸出端,clk為移位時鐘脈衝,上公升沿移入一位;clr為清零端,低電平時並行輸出為零。

三、實驗內容及步驟

微控制器的p3.0作資料序列輸出,p3.1作移位脈衝輸出。本實驗需要用到微控制器最小應用系統(f1區)和序列靜態顯示模組(i3區)。

1.使用微控制器最小應用系統模組,用導線將連線p3.0(rxd)、p3.1(txd)連線到序列靜態顯示模組的din、clk端。

2.用序列資料通訊線連線計算機與**器,把**頭插到模組的微控制器鎖緊插座中,開啟模組電源,插上**器電源插頭(usb線)。

3.開啟keil uvision2**軟體,首先建立本實驗的專案檔案,接著新增 「th31_8位序列靜態顯示.a**」源程式,編譯無誤後,全速執行程式。

8led顯示「89c52」。程式停止執行時,顯示不變,說明靜態顯示模組具有資料鎖存功能。

4.可把源程式編譯成可執行檔案,燒錄到89s51/89s52晶元中。(isp燒錄見附錄二)

四、實驗參考程式

dbuf0 equ 30h

temp equ 40h

din bit p3.0

clk bit p3.1

*** 0000h

ljmp start

*** 0100h

start : mov 30h,#10h

mov 31h,#10h

mov 32h,#10h

mov 33h,#8

mov 34h,#9

mov 35h,#0ch

mov 36h,#5

mov 37h,#2

disp:mov r0, #dbuf0

mov r1, #temp

mov r2, #8

dp10:mov dptr,#segtab

mov a, @r0

movc a, @a+dptr

mov @r1, a

inc r0

inc r1

djnz r2, dp10

mov r0, #temp

mov r1, #8

dp12:mov r2, #8

mov a, @r0

dp13:rlc a

mov din, c

clr clk

setb clk

djnz r2, dp13

inc r0

djnz r1, dp12

ok: sjmp ok

segtab: db 3fh,06h,5bh,4fh,66h,6dh

db 7dh,07h,7fh,6fh,77h,7ch

db 39h,5eh,7bh,71h,00h,40h

end五、電路原理圖

實驗三序列a/d轉換實驗

一、實驗目的

1. 掌握微控制器i/o模擬i2c匯流排的程式設計方法

2. 掌握16位序列a/d轉換晶元ads1100使用方法

二、實驗說明

ads1100是美國ti(texas instruments incorporated)公司生產的全差分輸入、16位解析度、sot23-6封裝、有自校準功能的精密a/d轉換器,該晶元的內建自校準系統對於使用者是透明的。ads1100使用i2c序列介面以電源電壓作用參考電壓,片內可程式設計增益放大器(pga)可提供最大的為8的增益,因此,即使在高分辨情況下也能取樣到小訊號,在單次轉換模式下,ads1100在一次轉換結束後可自動關閉自身電源,因而可減少系統在空閒週期的電流消耗,由於ads1100的易用性,故可以大大降低精密測量裝置工作的工作量,ads1100主要應用在空間和功耗方面要求比較嚴格的高解析度取樣測量電路中,其典型應用包括便攜裝置、工業過程控制和智慧型發射機等。ads1100以其獨特的精度特性可廣泛應用便攜裝置、工業過程控制器、智慧型發射器、消費類產品、工廠自動化裝置和溫度測量等系統之中。

微控制器實驗報告

1福建農林大學計算機與資訊學院 資訊工程類 實驗報告 2013 年 10 月 28 日 實驗專案列表 福建農林大學計算機與資訊學院資訊工程類實驗報告 系 電子資訊工程專業 電子資訊工程年級 2011級 姓名 詹緩輝學號 3116004094實驗課程 微控制器技術 實驗室號 田c513實驗時間 10....

微控制器實驗報告

一 實驗題目 試編寫一段程式,其功能為將21h單元的內容8位分別依次存放到從22h開始的8單元中。二 keil 0000h jmp start 0100h start mov 21h,8 mov a 21h 取出21中的數 mov r0,22h 初始化 mov r1,7h 迴圈次數為7 loop r...

微控制器實驗報告

學校 合肥工業大學 班級 電腦科學與技術 學號 姓名 實驗1 系統認識實驗 1 實驗目的 1 了解zy15mcu12bc2微控制器實驗開發裝置的接線與安排。掌握實驗箱內撥位開關kf,kc的使用方法。2 通過例項程式的編輯 編譯 鏈結及除錯,熟悉keilc51軟體的使用方法和基本操作。3 教育學生愛撫...