課程設計報告
課程名稱: 微控制器原理與應用技術
實驗專案: 數字電子鐘
實驗地點: 電機館跨越機房
專業班級: 學號:
學生姓名
指導教師
2023年6月 15日
太原理工大學資訊工程學院
課程設計任務書
注:課程設計完成後,學生提交的歸檔檔案應按,封面—任務書—說明書—圖紙的順序進行裝訂上交(大張圖紙不必裝訂)
指導教師簽名日期:2015.3.1
課程設計說明書
一設計任務與要求
1、設計任務:
運用所學的微控制器原理知識,在keil c51和protues軟體平台上編寫出24小時標準計時制的時鐘電路程式
2、設計要求:
1、程式的首位址應使目標機可直接執行,即從0000h開始;在主程式的開始部分必須設定乙個合適的棧底;程式放置的位址必須連續且靠前,不要在中間留下大量的空閒位址,以使目標機可以使用較少的硬體資源。
2、6位led數碼管從左到右分別顯示時、分、秒(各占用2位),採用24小時標準計時制。開始計時時,顯示為00 00 00,到23 59 59後又變成00 00 00。
3、在鍵盤上選定3個鍵分別作為小時、分、秒的調校鍵。每按一次鍵,對應的顯示值便加1。 分、秒加到59後再按鍵即變為00,小時加到23後再按鍵即變為00。
在調校時均不向上一單位進製 (例如分位加到59後變為00,但小時位不發生改變)。
4、軟體設計時必須使用mcs-51片內定時器,採用定時中斷結構,不得使用軟體延時法。
5、上機除錯通過。
3、擴充功能:
另設乙個鍵,完成時間與日期的轉換,按一次鍵,跳轉為日期,再按一次鍵,跳轉為時間。
二系統設計
1 硬體結構概述
本設計基於at89c51微控制器為核心完成的。
本時鐘設計以at89c51微控制器為核心,外加少量其他輔助器件,硬體結構簡單。電路中使用的另乙個晶元為74hc573八位鎖存器,它是乙個普通的常用鎖存器,在本電路中主要起增加驅動能力的作用。 由於本電路結構簡單,微控制器i/o口完全夠用,故我們將6位8段led直接和微控制器相連。
硬體結構中的6位8段led顯示器,採用動態方式驅動。即使一位led顯示器顯示內容一段時間,然後下一位led顯示器顯示內容一段時間,周而復始。只要重新整理頻率不小於50hz,就可以獲得清晰穩定的顯示效果。
為了增加和位選相連線的i/o口的驅動能力,直接接上上拉電阻。在本設計中,只使用了4個按鍵。分別是時間日期轉換鍵、調節控制鍵、2個上下調節鍵。
2 程式流程圖:
3、定時器中斷程式:
設定定時器中斷時間,當中斷時間到達時,主程式轉入執行該中斷程式並保護現場,對定時器重送初值。判斷是否到1s、60s、60min,若是則對相應的時間顯示位進行處理。不是則恢復現場,中斷返回。
三程式清單
#include <>
#define uchar unsigned char
#define uint unsigned int
sbit dula=p2^0;
sbit wela=p2^1;
sbit s1=p1^0;
sbit s2=p1^1;
sbit s3=p1^2;
sbit s4=p1^3;
sbit g_56=p2^5;
sbit g_34=p2^6;
sbit g_12=p2^7;
uchar nian,yue,ri,shi,fen,miao,leap,flag,num;
uint t;
uchar code table=;
uchar code table1[2][13]=,};
void delay(uint z);
void time0_init(void);
void display_sfm(uchar shi_,uchar fen_,uchar miao_);
void init_time();
void display_nyr();
void keyscan();
void main()
if(num==2)
g_56=0;
g_34=~g_34;
g_12=0;
delay(10); }
if(num==3)
g_56=0;
g_34=0;
g_12=~g_12;
delay(10); }
if(num==0)
g_56=0;
g_34=0;
g_12=0; }
if(t>=3120)
t=0;
miao++;
if(miao==60)
miao=0;
fen++;
if(fen==60)
fen=0;
shiif(shi==24)
shi=0;
ri++; if(ri==(table1[leap][yue]+1))} }}}}
if(flag==0)
display_sfm(shi,fen,miao);
else
display_sfm(nian,yue,ri);
keyscan();}}
void delay(uint z)
void time0_init(void)
void init_time()
void time0() interrupt 1
void display_sfm(uchar shi_,uchar fen_,uchar miao_)
{ wela=1;
p0=0xfe;
wela=0;
dula=1;
p0=table[shi_/10];
dula=0;
delay(1);
wela=1;
p0=0xfd;
wela=0;
dula=1;
p0=table[shi_%10];
dula=0;
微控制器實習報告 數字鐘
at89s52晶元數字鐘 實習報告 課程名稱 專業姓名 班級學號 指導教師 目錄一 題目及設計要求 3 二 實驗內容 3 三 實驗原理 3 一 硬體介紹 3 二 實驗線路 6 三 流程圖 7 四 程式設計 9 五 除錯過程及測試結果 14 六 實習心得 14 七 參考文獻 15 一 題目及設計要求 ...
微控制器課程設計
課程設計報告 題目微控制器控制步進電機 課程名稱微控制器原理及接 術 院部名稱 專業自動化 班級 m10自動化 學生姓名 學號課程設計地點 課程設計學時 指導教師高峰 金陵科技學院教務處制 注 根據課程設計大綱第四項具體要求撰寫課程設計報告 目錄1設計任務和要求 3 2設計思路 4 3系統硬體設計 ...
微控制器課程設計
微控制器課程設計 第一章 設計題目 第二章 目的意義 第三章 要求和方案 第四章 設計內容 3.1 a d轉換電路的製作 3.2 微控制器序列口收發電路的製作 3.3 基本人機介面設計 3.4 基本專案知識 第五 設計步驟 4.1 理解並確定設計要求 4.2 確定整體控制方案 4.3 編寫程式 第六...