微機控制系統實習報告

2021-09-28 15:02:23 字數 2873 閱讀 5591

電子秒錶的設計

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高爐控制...