基於微控制器的電子時鐘設計報告 LCD顯示

2022-11-01 06:00:09 字數 4676 閱讀 5150

微控制器原理及應用課程設計任務書

題目:電子時鐘(lcd顯示)

1、設計要求以at89c51微控制器為核心的時鐘,在lcd顯示器上顯示當前的時間:

使用字元型lcd顯示器顯示當前時間。顯示格式為「時時:分分:秒秒」。

用3個功能鍵操作來設定當前時間。功能鍵k1~k4功能下。

k1—設定小時。

k2—設定分鐘。

k3—設定秒。

程式執行後工作指示燈led發光,表示程式開始執行,lcd顯示「23:59:00」,然後開始計時。

2、工作原理

本課題難點在於鍵盤的指令輸入,由於每個按鍵都具有相應的一種功能,程式中有較多的迴圈結構用以判斷按鍵是否按下,以及判斷按鍵是否抬起,以及lcd顯示器的初始化。

3、參考電路

硬體設計電路圖如下圖所示:

硬體電路原理圖

微控制器原理及應用課程設計任務書

題目:電子時鐘(lcd顯示)

1、設計要求以at89c51微控制器為核心的時鐘,在lcd顯示器上顯示當前的時間:

使用字元型lcd顯示器顯示當前時間。顯示格式為「時時:分分:秒秒」。

用3個功能鍵操作來設定當前時間。功能鍵k1~k4功能下。

k1—設定小時。

k2—設定分鐘。

k3—設定秒。

程式執行後工作指示燈led發光,表示程式開始執行,lcd顯示「23:59:00」,然後開始計時。

2、工作原理

本課題難點在於鍵盤的指令輸入,由於每個按鍵都具有相應的一種功能,程式中有較多的迴圈結構用以判斷按鍵是否按下,以及判斷按鍵是否抬起,以及lcd顯示器的初始化。

3、參考電路

硬體設計電路圖如下圖所示:

硬體電路原理圖

基於at89c51微控制器的電子時鐘設計報告

一、設計要求與目的

1)設計要求以at89c51微控制器為核心的時鐘,在lcd顯示器上顯示當前的時間。

2)、使用字元型lcd顯示器顯示當前時間。顯示格式為「時時:分分:秒秒」。

3)、用3個功能鍵操作來設定當前時間。

4)、熟悉掌握proteus編成軟體以及keil軟體的使用

二、本設計原理

本設計以at89c51微控制器為核心,通過時鐘程式的編寫,並在lcd顯示器上顯示出來。該程式設計的核心在於定時器中斷及迴圈往復判斷是否有按鍵操作,並對每個按鍵的操作在lcd顯示器上作出相應的反應。由於lcd顯示器每八位對應乙個字元,故把秒、分、時的個位和十位分開表示。

該課題中有三個控制開關km1、km2、km3分別控制時、分、秒的調整,時間按遞增的方式調整,每點一次按鈕則相應的時間個位加以,且時間調整不干擾其他為調整時間的顯示。

三、硬體設計原理(電路)

硬體電路原理圖

四、軟體設計(流程圖)

五、**結果與結論

5.**結果與結論

初始執行顯示效果如下 :

用按鍵調節時分秒從而設定時間:

結論:採用12mhz晶振採用方式1定時,選取50ms採用20次中斷達到一秒,採用查表方式控制lcd顯示。根據**結果可知該程式設計及硬體電路符合要求。

附錄程式設計如下:

km1 bit p1.0

km2 bit p1.1

km3 bit p1.2

rs equ p2.0

rw equ p2.1

e equ p2.2

in_0 equ p0

secl equ 40h ;秒低位

sech equ 41h ;秒高位

mh1 equ 42h ;冒號

minl equ 43h ;分低位

minh equ 44h ;分高位

mh2 equ 45h ;冒號

hourl equ 46h ;時低位

hourh equ 47h ;時高位

org 0000h

ajmp main

org 000bh

ajmp intt_0

main: mov r2,#20

acall init_lcd初始化液晶

mov r5,#00h

mov in_0,#84h寫入顯示起始位址(第一行第五個位置)

acall enable

mov th0,#3ch50ms

mov tl0,#0b0h

mov tmod,#01h

acall sjcz

setb ea

setb et0

setb tr0

lcall a1

start1: lcall wdata1

lcall wdata2

ajmp start1

;*******控制鍵

a1: lcall wdata2

lcall wdata1

jnb km1,s1

jnb km2,s2

jnb km3,s3

ajmp a1

;*****調整小時*****

s1: lcall delayl

jb km1,a1

mov a,hourh

cjne a,#02h,st1

mov a,hourl

cjne a,#03h,st2

mov hourh,#00h

mov hourl,#00h

ajmp j1

st1: mov a,hourl

cjne a,#09h,st2

inc hourh

mov hourl,#00h

ajmp j1

st2: inc hourl

ajmp j1

j1: jb km1,s1

lcall wdata1

ajmp j1

;*****調整分鐘*****

s2: lcall delayl

jb km2,a1

mov a,minh

cjne a,#05h,st3

mov a,minl

cjne a,#09h,st4

mov minh,#00h

mov minl,#00h

ajmp j2

st3: mov a,minl

cjne a,#09h,st4

inc minh

mov minl,#00h

ajmp j2

st4: inc minl

ajmp j2

j2: jb km2,s2

lcall wdata1

ajmp j2

;*****調整秒*****

s3: lcall delayl

jb km3,a1

mov a,sech

cjne a,#05h,st5

mov a,secl

cjne a,#09h,st6

mov sech,#00h

mov secl,#00h

ajmp j3

st5: mov a,secl

cjne a,#09h,st6

inc sech

mov secl,#00h

ajmp j3

st6: inc secl

ajmp j3

j3: jb km3,s3

lcall wdata1

ajmp j3

;****設定顯示初值

sjcz: mov 40h,#0顯示初值是 23:59:00

mov 41h,#0

mov 42h,#10

mov 43h,#9

mov 44h,#5

mov 45h,#10

mov 46h,#3

mov 47h,#2

retintt_0: push psw

push acct0定時器中斷

mov tl0,#0b0h送定時初值

mov th0,#3ch

djnz r2,tt

mov r2,#20

inc secl秒記數,到60s就清0

mov a,secl

cjne a,#0ah,tt

inc sech

mov secl,#00h

mov a,sech

cjne a,#06h,tt

mov sech,#00h

inc minl分記數,到60分請0

mov a,minl

cjne a,#0ah,tt

mov minl,#00h

inc minh

mov a,minh

cjne a,#06h,tt

mov minh,#00h

inc hourl時記數,到24時清0

mov a,hourl

cjne a,#04h,tt2

mov a,hourh

cjne a,#02h,tt1

mov hourl,#00h

mov hourh,#00h

ajmp tt

tt2: cjne a,#0ah,tt

mov hourl ,#00h

inc hourh

基於微控制器的電子時鐘設計

ds1302時鐘晶元具有通電自動計時的功能。向ds1302中寫入乙個初值,如寫入2011 05 01 00 00 00 星期日,在通電時,時間就會自動走 過60秒分加1 過60分時加1 過24小時天加1,星期日變成星期一 一周有7天,晶元內的周資訊每7天一迴圈 晶元能夠自動判斷每月有多少天,5月有3...

基於微控制器的電子時鐘課程設計報告

目錄一 引言 二 設計課題 三 系統總體方案 四 系統硬體設計 1.硬體電路原理圖 2.元件清單 五 系統軟體設計 1.軟體流程圖 2.程式清單 六 系統實物圖 7 課程設計體會 八 參考文獻及 九 附錄 一 引言 微控制器因將其主要組成部分整合在乙個晶元上而得名,就是把 處理器 隨機儲存器 唯讀儲...

電子裝置設計報告 基於微控制器

電子裝置設計報告 學號姓名 班級目錄 摘要1第一章緒論1 1.1 課題的意義和目的1 1.2 課題的功能概述1 1.3 該設計的基本設計思路2 第二章主要器件的介紹3 2.1 熱釋紅外感測器的原理和使用3 2.2 biss0001晶元介紹和典型電路4 2.3 at89c51微控制器簡介9 2.4 菲...