電子秒錶的設計
1、設計要求:
電子秒錶設計,具有普通秒錶的功能。微控制器是使用按鍵復位。
二、設計方案:
at89c51是美國atmel公司生產的低功耗,高效能cmos8位微控制器,片內含4k bytes的可系統程式設計的flash唯讀程式儲存器,器件採用atmel公司的高密度、非易失性儲存技術生產,相容標準8051指令系統及引腳。它集flash程式儲存器既可**程式設計(isp)也可用傳統方法進行程式設計及通用8位微處理器於單片晶元中,atmel公司的功能強大,低價位at89c51微控制器可為您提供許多高價效比的應用場合,可靈活應用於各種控制領域。本設計採用at89c51微控制器為核心控制器件,系統組成框圖如下圖所示:
圖1 系統組成框圖
3、原理電路圖及功能分析:
(1)用開關控制兩種計時模式的選擇:單計時模式和連續計8個的計時模式;
(2)用開關控制秒錶的啟動、停止和復位;
(3)可實現設定初值倒計時的功能。
電路原理圖
四、參考程式:
#include
#define uchar unsigned char
#define uint unsigned int
//定義各管腳
sbit p2_0=p2^0;
sbit p2_1=p2^1;
sbit p2_2=p2^2;
sbit p1_7=p1^7;
sbit p2_6=p2^6;
sbit p2_7=p2^7;
//各變數的聲名
uchar code table[10]=; //段位碼
uchar ms,mm;
uint m,tab[8];
uint led0,led1,led2,led3各位的數字
bit add;
bit bit_add1;
bit bit_sub;
bit scankey;
bit cheak;
bit keydown;
bit fast_add;
bit double_key;
bit k2_keydown;
bit fast_sub;
bit double_sub;
bit sub;
bit k3_keyup;
bit k3_keydown;
bit count_down;
bit start;
bit stop;
bit eight_start;
bit eight_stop;
/*2)主程式
在主程式中需要完成以下的功能:首先呼叫初始化函式對各個變數進行初始化,再對定時器的
定時初值進行設定,接著根據各個標誌位的值來判斷微控制器的工作模式及工作狀態。鍵盤掃瞄由
scan( )來完成,各個位的數值的計算由 add1( )來完成。*/
void main(void)
if(fast_add==1倒計時初值連續增加
if(add==1倒計時初值增加 1
if(double_sub==1倒計時初值快速減少
if(fast_sub==1倒計時初值連續減少
if(sub==1倒計時初值減少 1
if(start==1計時開始
if(stop==1) start=0; //計時停止
if(count_down==1倒計時開始}}
/*3)初始化子程式
初始化子程式通常是在一開始就被呼叫,用來初始化各個變數,同時也顯示了微控制器上電後的
工作狀態。雖然有些變數在定義的時候已被預設初始化了,但是為了自己檢查方便,還是應該加上
初始化的子程式。*/
void begin1(void)
/*4)定時器中斷子程式
這裡的秒錶的計時、鍵盤的掃瞄及數值顯示等都是利用定時中斷來完成的。定時的時間設為
1ms,用於數值顯示;同時利用累加的方法實現 10ms 和 200ms 的定時,用於鍵盤的掃瞄及控制顯示
燈的閃爍。*/
void time0(void)
display();
}/*示子程式
顯示子程式其實包括了 display()和 add1(time)兩個子程式。add1(time)是用來計算數碼管各個位
要顯示的數值的子程式,display()是查段位碼表及進行動態掃瞄的子程式。*/
void add1(time)
uint time;
void display(void)
}/*6)鍵盤掃瞄
鍵盤掃瞄的子程式完成的任務是每 10ms 進行一次鍵盤的查詢,根據查詢的結果對相應的標誌
位進行賦值。因為要實現比較多的功能,所以鍵盤掃瞄的子程式比較複雜。*/
void scan(void)
}p2=0x0f;
if(k3_keydown==1&&p2_2==1k3 彈起
if(k3_keyup==1)
else
}if(mm==0)
else
}if(mm==0&&keydown==1按住 k1 不放,連續增
fast_add=1;
if(mm==0&&k2_keydown==1按住 k2 不放,連續減
fast_sub=1;
if(p2_1==0)
else keydown=1;
}if(p2_0==0)
else k2_keydown=1;
}if(p2_1==1&&keydown==1k1 彈起,表示按一次 k1
if(p2_0==1&&k2_keydown==1k2 彈起,表示按一次 k2
{ k2_keydown=0;
sub=1;
bit_sub=1;
if(double_sub==1)bit_sub=0;
酒精生產微機控制系統簡介
酒精生產是一項傳統化工工業,一般由粉碎攪拌 蒸煮糖化 發酵 蒸餾等工序組成。為使酒精產量和質量達到裝置與工藝應有的最佳水平,同時使能耗降到最低限度,必須保證各工序工藝引數的調節精度和生產的平穩進行。與手工控制相比,使用微機控制生產過程可使酒精質量 能耗均處於先進水平,並大幅度提高原料澱粉利用率和裝置...
工具機電氣控制系統實習報告
電器控制實習報告 實習題目 z3050型搖臂鑽電氣控制系統設計 安裝 除錯及執行 實習小組成員 第十四組 王平 陶金菊 洪明 楊亮亮 王幀 盧建 姓名 王平 班級 08機械 3班 學號 3080444909 完成日期 2011年7月7日 一 z3050搖臂鑽床機加工工藝介紹 鑽床是一種用途廣泛的孔加...
高爐控制系統報告
目錄第1章高爐控制系統工藝分析 1 1.1高爐控制系統工藝介紹 1 1.2高爐控制系統的組成及應用 1 1.3高爐控制系統主要控制內容 2 第2章高爐控制系統設計 3 2.1儀表的選擇 3 2.2感測器的選型 3 2.3控制方案分析 4 第3章基於紫金橋的高爐控制系統監控程式設計 6 3.1高爐控制...