嵌入式系統設計

2022-12-12 18:36:04 字數 2999 閱讀 7087

課程**(設計)題目:基於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開發環境進行...