課程**(設計)題目:基於51微控制器的秒錶的實現
電腦科學與技術王偉
摘要:本次設計內容為以stc89c52微控制器為核心的秒錶,它採用獨立鍵盤輸入、1602液晶顯示的特點。利用微控制器的定時器中斷的原理,用1602液晶以及獨立按鍵來設計秒錶。
將軟、硬體有機地結合起來,使其擁有正確的計時、暫停、清零的功能。在現實生活中應用廣泛。
關鍵詞:秒錶;89c52;定時器;
1 系統功能
按下s4,定時開始;
再次按下s4暫停;
第3次按下顯示累積計時;
第4次按下暫停計時;
任何時間按下s5清零
2 硬體平台
1、89c52微控制器1個;
2、串列埠通迅線2條;
3、xp系統的電腦1臺。
3 軟體平台
1、keil uvision2軟體
2、stc_isp_v3軟體
4 系統測試
按下s4,定時開始,檢視定時器有沒有在計時;
再次按下s4暫停;檢視定時器有沒有暫停;
第3次按下顯示累積計時;檢視定時器顯示是否正確;
按下s5清零,檢視定時器是否清零。
5 程式**
/* 上電後液晶屏先顯示,接著按下s4,定時開始,再次按下 s4暫停,
第3次按下顯示累積計時,第4次按下暫停計時,任何時候按下s5 計數清零
*/#include <>
#include <>
#define uchar unsigned char
#define uint unsigned int
uchar keycount=0;
sbit k3 = p3^6;
sbit k4 = p3^7;
sbit beep = p2^3蜂鳴器
uchar code cdis1sec_watch 0 "};
uchar code cdis2[ ] = ;
uchar code cdis4[ ] = ;
uchar code cdis5[ ] = ;
uchar code cdis6[ ] = ;
uchar code cdis7
sbit lcd_rs = p3^5
//sbit lcd_rw = p2^1;
sbit lcd_en = p3^4;
#define delaynop(); ;
uchar display = ;
uchar display2 = ;
void delay(uint num)//延時函式
void beep()
beep=1關閉蜂鳴器
}void delay1(int ms延時函式1
}}void lcd_wcmd(uchar cmd寫指令資料到lcd ,rs=l,rw=l,e=高脈衝,d0-d7=指令碼?
lcd_rs = 0;
lcd_en = 0;
_nop_();
_nop_();
p0 = cmd;
delaynop();
lcd_en = 1;
delaynop();
lcd_en = 0;
delay(10);
}void lcd_wdat(uchar dat) //寫顯示資料到lcd;rs=h,rw=l,e=高脈衝,d0-d7=資料?
lcd_rs = 1;
lcd_en = 0;
p0 = dat;
delaynop();
lcd_en = 1;
delaynop();
lcd_en = 0;
delay(10);
}void lcd_initlcd初始化
void lcd_pos(uchar pos設定顯示位置
lcd_wcmd(pos | 0x80); //資料指標=80+位址變數
}void play顯示函式
display2[7]=display[6]/10+0x30; //時單位資料處理
display2[6]=display[6]%10+0x30;
lcd_pos(0x45);
lcd_wdat(display2[7]); //顯示時
lcd_wdat(display2[6]);
lcd_wdat(0x3a顯示':'
lcd_wdat(display2[5]); //顯示分
lcd_wdat(display2[4]);
lcd_wdat(0x3a顯示':'
lcd_wdat(display2[3]); //顯示秒
lcd_wdat(display2[2]);
lcd_wdat(0x3a顯示':'
lcd_wdat(display2[1]); //顯示毫秒
lcd_wdat(display2[0]);
}main()
{ uchar m;
tmod=0x01;
th0=0xdc; tl0=0x00; //50ms定時
ea=1; et0=1;
lcd_init();
lcd_pos(0x00設定顯示位置為第一行
for(m=0;m<16;m++)
lcd_wdat(cdis1[m顯示字元
lcd_pos(0x40設定顯示位置為第二行
for(m=0;m<16;m++)
lcd_wdat(cdis2[m]);
while(1)
{if(k3==0)
{keycount計數
beep();
delay1(100);
switch (keycount)
{case 1:
tr0=1啟動中斷
lcd_pos(0x00);
for(m=0;m<16;m++)
lcd_wdat(cdis3[m]);
break;
case 2:
tr0=0停止中斷
嵌入式系統設計
課程學習 題目 基於arm嵌入式影象處理系統設計與實現 院系 資訊工程與自動化學院 專業 模式識別與智慧型系統 學生姓名 學號指導老師 2013年08月10日 摘要本文主要設計了一種基於arm的可攜式影象採集處理系統。該系統以arm7 s3c44box 為核心,配上外圍電路以實現影象處理功能,並結合...
《嵌入式系統》設計方案
移動列印終端終嵌入式系統設計方案 閱讀目錄 一專案概述 1 二系統總體架構 2 2.1.1 各功能部件作用 2 2 2 1 手持式掃瞄器 3 2 2 2 嵌入式開發板 3 2 2 3 微型印表機的選型 4 2 2 4 遠端伺服器 5 三軟 硬體設計 5 3 2 硬體設計 6 3 2 1 嵌入式開發板...
嵌入式系統應用
電子資訊工程系實驗報告 課程名稱 嵌入式系統應用 實驗專案名稱 實驗3 gpio 中斷 定時器程式設計實驗時間 2012 10 10 班級 電信092姓名 學號 910706201 t span cr r 12 一 實驗目的 進一步熟悉ads1.2開發環境的使用方法,掌握利用ads1.2開發環境進行...