微控制器秒錶課程設計急求

時間 2021-12-19 13:47:54

1樓:

原理圖如下,

程式如下:

;暫存器分配定義

led_buf equ 50h ;顯示資料首址

counter_int equ 3bh ;中斷計數器

second     equ 3dh     ;秒單元

;常數定義

cn_count_int  equ  100     ;10ms * 100 = 1s

set_model equ 0ffh ;完全譯碼模式

set_bright equ 04h ;佔空比為15/32;顯示亮度;

set_limit equ 01h ;2位顯示方式;

set_normal equ 01h ;測試模式

set_start equ 01h ;進入啟動工作方式?

;管腳分配定義

m7219_din bit p3.0

m7219_load bit p3.1

m7219_clk bit p3.2

keystart bit p1.0

keyreset bit p1.1

;模擬主程式

org 0000h

ajmp main

org 000bh

ljmp timer0interrupt

org 0030h

main:

mov sp,#70h

lcall init_m7219

lcall inittimer0

; mov second,#95h  ;test

loop:

call disp

key_reset:

setb keyreset

jb keyreset,key_start

; delay

nopnop

nopjb keyreset,key_start

jnb keyreset,$

clr  tr0

mov a,#0

mov second,a

mov led_buf,a

mov led_buf+1,a

jmp key_scan_end

key_start:

setb keystart

jb keystart,key_scan_end

; delay

nopnop

nopjb keystart,key_scan_end

jnb keystart,$

setb  tr0

key_scan_end:

jmp loop

inittimer0:;10ms一次中斷

mov tmod,#01h

mov th0,#0d8h

mov tl0,#0f0h

setb ea

setb et0

rettimer0interrupt:

push dph

push dpl

push acc

mov th0,#0d8h

mov tl0,#0f0h

inc counter_int

mov  a,counter_int        ;10ms 計數值加1

cjne  a,#cn_count_int,timer0interrupt_exit

mov  counter_int,#0

mov a,second

cjne  a,#99h,timer0int_sec

clr tr0;關閉計時

jmp timer0interrupt_exit

timer0int_sec:

add a,#01     ;秒加1

da a

mov  second,a

swap a

anl a,#0fh

mov led_buf,a

mov a,second

anl a,#0fh

mov led_buf+1,a

timer0interrupt_exit:

pop acc

pop dpl

pop dph

reti

; function:init_m7219 ;初始化max719

; input: ------------

; output: ----------

; usage: a,b

init_m7219:   ;初始化max7219

mov a,#0bh  ;設定掃描界限

mov b,#set_limit ;設定位數

lcall w_7219

mov a,#09h  ;設定譯碼模式

mov b,#set_model ;00h非譯碼模式;ffh為bcd譯碼模式

lcall w_7219

mov a,#0ah  ;設定亮度

mov b,#set_bright ;15/32亮度

lcall w_7219

mov a,#0fh  ;設定工作方式

mov b,#set_normal ;正常工作方式

lcall w_7219

mov a,#0ch  ;進入啟動工作方式

mov b,#set_start

lcall  w_7219

ret; function:disp  ;顯示子程式

; input: r0

; output: -----------

; usage: r0,r3,r4,a,b

disp:

mov r0,#led_buf

mov r4,#01h

mov r3,#set_limit

inc r3

disp1:

mov a,@r0

mov b,a

mov a,r4

lcall w_7219

inc r0

inc r4

djnz r3,disp1

ret; function:w_7219 ;顯示驅動程式;

; input: a  ;傳送7219的地址

;        b  ;傳送7219的資料

; output:-------------

; usage: a,r2

w_7219:

clr m7219_clk

clr m7219_din

clr  m7219_load ;置load=0

lcall  sd_7219  ;傳送7219的地址

mov a,b

lcall sd_7219  ;傳送資料

setb m7219_load  ;資料裝載

clr m7219_din

ret; function:sd_7219  ;向7219傳送資料或地址子程式

; input:    a

; output:   max7219

; usage:   a, r2

sd_7219:   ;向7219送地址或資料

mov r2,#08h

c_sd:

clr c

clr m7219_clk

rlc a

mov m7219_din,c ;準備資料

nopsetb m7219_clk ;上升沿將資料傳入

nopnop

clr m7219_clk

djnz r2,c_sd

retend

2樓:做而論道

已經過去好多天了,還需要答案嗎?

要求:一 課程設計內容:設計一個微控制器秒錶,該秒錶可顯示00.00到99.99秒的時間,進行相應的微控制器硬體電

3樓:順勢而為自信積累

首先明白有幾個模組:1、51最小系統 2、定時器10ms中斷一次 3、數碼管顯示(建兩個陣列,一個不帶小數的,一個帶小數的)3、按鍵掃描

就這幾個模組,心裡有個數,具體自己寫吧

核心部分是定時器部分,我寫一個:

//timer0

void timer0_init(void)void timer0(void) interrupt 1//主函式可以計t的值,10ms t自增1。 1秒t是多少,會算吧。

這些程式網上也可以找找,比較簡單。

希望對你有點幫助

4樓:匿名使用者

請把微控制器的型號以及開發板的電路圖給出給出,不然沒法做。你也可以找你們學校上屆的學長去要做好的程式。

5樓:匿名使用者

//timer0

void timer0_init(void)void timer0(void) interrupt 1{th0=(65535-10000)/256;

tl0=(65535-10000) %256;

t++;

6樓:匿名使用者

剛好做過一個,助人為快樂之本,不求分!已發到你郵箱了!

誰幫我做個微控制器的課程設計啊,求微控制器大神幫忙,幫做一個微控制器課程設計

2位led顯示當前時間?太不直觀了吧?呵呵.這個課題我可以幫助你 有人可以幫助我嗎?我們要做一個微控制器的課程設計 微控制器溫度測量 0809是adc0809把?那個應該是用來a d轉換的把!鍵盤介面是0809我倒沒聽說過。即是是有鍵盤擴充套件電路,一般都是跟i o口的數量有關的!你的顯示是用什麼顯...

求高手,求幫助,c51微控制器課程設計(微控制器密碼鎖)我的郵箱

先發張原理圖,採納後發程式。程式實現的功能 由密碼控制電鎖,密碼為123,當按下control鍵後,顯示屏上顯示control,輸入數字123,輸入密碼正確,顯示屏第二行顯示welcome,並且電鎖開10s 用發光二級管代替 否則顯示code wrong。當沒有按下control時候,在鍵盤上輸入數...

微控制器秒錶程式設計,用51微控制器做秒錶設計

這個問題我可以用51系列微控制器解決,不知是否可以。可以的話發個訊息或qq聯絡 103949436 用51微控制器做秒錶設計 遇到懶學生了,復這個不就制是一個定時器加顯示嗎,有什麼難的,自己翻翻微機原理書就可以做 了,也就四五十行組合語言就行了,用c就更加簡單,具體的方法 用定時器定時,定時到了就給...