




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)技術(shù)項(xiàng)目教程(c語言)教材目錄前言項(xiàng)目一蜂鳴器控制項(xiàng)目二八位流水燈控制項(xiàng)目三一位數(shù)碼管控制項(xiàng)目四二位數(shù)碼管控制項(xiàng)目五四路數(shù)字顯示搶答器控制項(xiàng)目六60s倒計(jì)時(shí)控制項(xiàng)目七24h時(shí)鐘自動(dòng)運(yùn)行控制項(xiàng)目八點(diǎn)陣顯示屏的制作項(xiàng)目九數(shù)字電壓表的模擬控制項(xiàng)目十調(diào)光臺(tái)燈的制作項(xiàng)目十一交通信號(hào)燈模擬控制項(xiàng)目十二單片機(jī)的串行通訊教材目錄前言項(xiàng)目一蜂鳴器控制項(xiàng)目二八位流水燈控制項(xiàng)目三一位數(shù)碼管控制項(xiàng)目四二位數(shù)碼管控制項(xiàng)目五四路數(shù)字顯示搶答器控制項(xiàng)目六60s倒計(jì)時(shí)控制項(xiàng)目七24h時(shí)鐘自動(dòng)運(yùn)行控制項(xiàng)目八點(diǎn)陣顯示屏的制作項(xiàng)目九數(shù)字電壓表的模擬控制項(xiàng)目十調(diào)光臺(tái)燈的制作項(xiàng)目十一交通信號(hào)燈模擬控制項(xiàng)目十二單片機(jī)的串行通訊前言21世紀(jì)是信息時(shí)代,電子技術(shù)的發(fā)展日新月異,同時(shí)各種新型數(shù)據(jù)傳輸接口技術(shù)和新器件的出線,例如SPI通信、網(wǎng)絡(luò)通信等,對(duì)中等職業(yè)學(xué)校的單片機(jī)教學(xué)也提出了更高的要求。以編程工具為例,現(xiàn)在的項(xiàng)目開發(fā)主要以C語言為主,并且項(xiàng)目的開發(fā)不再是一個(gè)人獨(dú)自完成,而是由一個(gè)團(tuán)隊(duì)協(xié)作進(jìn)行,C語言編程為團(tuán)隊(duì)協(xié)作式開發(fā)提供了可能。前言第二版采用了C語言進(jìn)行程序編寫,項(xiàng)目除保留的第一版的經(jīng)典項(xiàng)目外,增加了點(diǎn)陣屏、24H運(yùn)行時(shí)鐘、調(diào)光臺(tái)燈等項(xiàng)目,覆蓋了更多的知識(shí)點(diǎn),與單片機(jī)的實(shí)際應(yīng)用更緊密的結(jié)合。此外,針對(duì)目前教學(xué)中廣泛采用的Proteus軟件,編者也將Proteus仿真進(jìn)行了詳細(xì)講解,并在很多項(xiàng)目中給出了仿真現(xiàn)象圖。前言全書分為十二個(gè)項(xiàng)目,每個(gè)項(xiàng)目都由“項(xiàng)目目標(biāo)”、“項(xiàng)目任務(wù)”、“項(xiàng)目分析”、“項(xiàng)目實(shí)施”、“知識(shí)點(diǎn)鏈接”、“項(xiàng)目測(cè)試”和“項(xiàng)目評(píng)估”各個(gè)模塊構(gòu)成,以完成項(xiàng)目的工作步驟為主線,便于調(diào)動(dòng)學(xué)生自主學(xué)習(xí)和實(shí)踐的積極性。書后設(shè)置兩個(gè)附錄,分別是“Keil軟件的學(xué)習(xí)”、“Proteus軟件的學(xué)習(xí)”,便于學(xué)生學(xué)習(xí)了解單片機(jī)的工具軟件。項(xiàng)目一蜂鳴器控制項(xiàng)目目標(biāo)項(xiàng)目任務(wù)項(xiàng)目分析項(xiàng)目實(shí)施知識(shí)點(diǎn)鏈接項(xiàng)目測(cè)試項(xiàng)目一蜂鳴器控制項(xiàng)目目標(biāo)
通過單片機(jī)控制一只蜂鳴器鳴叫,學(xué)會(huì)分析單片機(jī)最小系統(tǒng)的電路結(jié)構(gòu)及各部分的功能,初步學(xué)習(xí)利用C語言編寫單片機(jī)程序(C51)的方法,并能熟練運(yùn)用c語言的基本指令編寫簡(jiǎn)單程序,掌握常用的數(shù)據(jù)類型及簡(jiǎn)單運(yùn)算符。項(xiàng)目任務(wù)要求應(yīng)用AT89S52芯片,控制一只蜂鳴器發(fā)出規(guī)律的鳴叫聲。設(shè)計(jì)單片機(jī)控制電路并編程實(shí)現(xiàn)此操作。項(xiàng)目分析本項(xiàng)目是一個(gè)單片機(jī)最小系統(tǒng)的簡(jiǎn)單應(yīng)用。首先要設(shè)計(jì)一個(gè)單片機(jī)的最小系統(tǒng),然后利用P1.0引腳輸出電位的變化,控制蜂鳴器的鳴叫,P1.0引腳的電位變化可以通過指令來控制。項(xiàng)目一蜂鳴器控制項(xiàng)目實(shí)施一、硬件電路設(shè)計(jì)二、
控制程序的編寫三、程序編譯與調(diào)試項(xiàng)目一蜂鳴器控制一、硬件電路設(shè)計(jì)(一)設(shè)計(jì)思路
使用AT89S52單片機(jī)芯片(含8K片內(nèi)程序存儲(chǔ)器),外加振蕩電路、復(fù)位電路、控制電路、電源,就組成了一個(gè)單片機(jī)最小系統(tǒng)。對(duì)于電平驅(qū)動(dòng)的蜂鳴器,只要在其正、負(fù)兩極間加上合適的工作電壓(1.5V~5V),蜂鳴器即可鳴叫;將電壓撤除,鳴叫即停止。但是蜂鳴器所需的工作電流較單片機(jī)能直接提供的電流大很多,因此使用一只三極管進(jìn)行電流放大。項(xiàng)目一蜂鳴器控制(二)電路設(shè)計(jì)AT89S52芯片共有40個(gè)引腳,采用雙列直插式封裝形式項(xiàng)目一蜂鳴器控制1、主電源電路VCC(40腳):接5V電源的正極,又稱電源引腳;GND(20腳)接5V電源的負(fù)極,又稱接地引腳。2、時(shí)鐘電路負(fù)責(zé)為單片機(jī)系統(tǒng)提供固定頻率的脈沖信號(hào)。3、復(fù)位電路能使單片機(jī)系統(tǒng)可靠復(fù)位,以使得系統(tǒng)回到初始狀態(tài)。4、控制電路完成系統(tǒng)要實(shí)現(xiàn)的功能。項(xiàng)目一蜂鳴器控制(三)材料表序號(hào)元件名稱元件型號(hào)元件數(shù)量備注1單片機(jī)芯片AT89S521片DIP封裝2蜂鳴器1只DC5V,電磁式3晶體管90131只NPN型4晶振1只12MHz5電容22pF2只瓷片電容22uF1只電解電容6電阻1kΩ1只碳膜電阻10kΩ1只碳膜電阻510Ω1只碳膜電阻7按鍵1只無自鎖,用作復(fù)位按鍵840腳IC座1片安裝AT89S52芯片項(xiàng)目一蜂鳴器控制二、控制程序的編寫(一)程序流程圖開始延時(shí)一段時(shí)間P1.0=1蜂鳴器工作P1.0=0蜂鳴器不工作延時(shí)一段時(shí)間項(xiàng)目一蜂鳴器控制(二)編制c語言源程序1、參考程序清單#include<reg52.h>//52系列單片機(jī)頭文件#defineucharunsignedchar//宏定義,定義8位無符號(hào)字符型變量#defineuintunsignedint//宏定義,定義16位無符號(hào)整形變量sbitFMQ=P1^0;//聲明位類型變量FMQ通過P1.0引腳控制voidmain()//主函數(shù){uinti;//定義i為16位無符號(hào)整形變量while(1)//大循環(huán){FMQ=1;//蜂鳴器工作for(i=0;i<50000;i++);//變量i小于50000,自加1,直到等于50000退出for循環(huán),//起到延時(shí)的作用FMQ=0;//蜂鳴器不響for(i=0;i<50000;i++);//延時(shí)作用
}}項(xiàng)目一蜂鳴器控制2、程序執(zhí)行過程單片機(jī)上電或執(zhí)行復(fù)位操作后,c語言程序都從主函數(shù)開始執(zhí)行。進(jìn)入主函數(shù)后,先定義一個(gè)16位無符號(hào)整型變量i。主函數(shù)中只有一個(gè)大循環(huán)while語句,由于while后的括號(hào)中為常數(shù)1,相當(dāng)于進(jìn)入死循環(huán)狀態(tài)。進(jìn)入循環(huán)后,先執(zhí)行“FMQ=1”,此時(shí),P1.0引腳輸出高電平,蜂鳴器響;下一條指令“for(i=0;i<50000;i++)”是for循環(huán)指令,先將i賦初值0,再判斷i是否小于50000,滿足條件即i小于50000,則i就加1,直到i等于50000,退出for循環(huán),本條指令結(jié)束;第三條指令“FMQ=0”,使得P1.0引腳輸出低電平,蜂鳴器不響;第四條指令與第二條執(zhí)行情況相同。四條指令執(zhí)行完,重新循環(huán)這四條指令。由此,程序不斷循環(huán),蜂鳴器就不停地鳴叫了。項(xiàng)目一蜂鳴器控制(三)C51指令學(xué)習(xí)1、預(yù)處理命令(1)、#include#include的作用是將指定文件包含到當(dāng)前文件中。其用法主要有兩種:#include<文件名>——從系統(tǒng)子目錄中開始指定文件的查找,找到后嵌入到當(dāng)前文件中;#include“文件名”——從當(dāng)前目錄中開始指定文件的查找,找到后嵌入到當(dāng)前文件中項(xiàng)目一蜂鳴器控制2)#define宏定義#define命令是C語言中的一個(gè)宏定義命令。該命令常用格式:
#define新名稱原內(nèi)容
注意后面沒有分號(hào)例:#defineucharunsignedchar,目的就是將unsignedchar用uchar代替。#defineuintunsignedint,目的就是將unsignedint用uint代替。在上面的程序中,當(dāng)我們需要定義unsignedint型變量時(shí),并沒有寫”unsignedinti;”而是“uinti;”。在一個(gè)程序代碼中,只要宏定義過一次,那么在整個(gè)代碼中都可以直接使用它的新名稱。注意:對(duì)同一內(nèi)容,宏定義只能定義一次,若定義兩次,將會(huì)出現(xiàn)重復(fù)定義的錯(cuò)誤提示。項(xiàng)目一蜂鳴器控制2、reg52.h頭文件的作用在代碼中引用頭文件,其實(shí)際意義就是將這個(gè)頭文件中的全部?jī)?nèi)容放到引用頭文件的位置處,避免我們每次編寫同類程序都要將頭文件中的語句重復(fù)編寫。在代碼中加入頭文件有兩種書寫方法,分別是#include<reg52.h>和#include“reg52.h”,包含頭文件時(shí)都不需要在后面加分號(hào)。項(xiàng)目一蜂鳴器控制C51中常用的頭文件通常有reg51.h,reg52.h,math.h,ctype.h,stdio.h,stdlib.h,absacc.h,intrins.h。但常用的卻只有reg51.h或reg52.h,math.h,absacc.h,intrins.h。reg51.h和reg52.h是定義51單片機(jī)或52單片機(jī)特殊功能寄存器或位寄存器的,這兩個(gè)頭文件中大部分內(nèi)容是一樣的,52單片機(jī)比51單片機(jī)多一個(gè)定時(shí)器T2,因此,reg52.h中也就比reg51.h中多幾行東營T2寄存器的內(nèi)容。math.h是定義常用數(shù)學(xué)運(yùn)算的,比如求絕對(duì)值、求方根、求正弦和余弦等,該頭文件中包含有各種數(shù)學(xué)運(yùn)算函數(shù),當(dāng)我們需要使用時(shí)可以直接調(diào)用它的內(nèi)部函數(shù)。項(xiàng)目一蜂鳴器控制3、sbit定義特殊功能寄存器的位變量典型應(yīng)用是:
sbitP0_0=P0^0;//即定義位變量P0_0為P0口的第0位,以便進(jìn)行位操作。bit和sbit都是C51擴(kuò)展的變量類型。sbit的用法有三種:第一種方法:sbit位變量名=地址值第二種方法:sbit位變量名=SFR名稱^變量位地址值第三種方法:sbit位變量名=SFR地址值^變量位地址值因此本項(xiàng)目程序中用sbitFMQ=P1^0;就是定義用位變量FMQ來表示P1.0引腳,如果你愿意也可以起其他名字,只要下面程序中也隨之更改就行了。項(xiàng)目一蜂鳴器控制4、main()主函數(shù)的寫法:任何一個(gè)單片機(jī)C程序有且僅有一個(gè)main函數(shù),它是整個(gè)程序開始執(zhí)行的入口。格式:voidmain()注意:后面沒分號(hào)。特點(diǎn):無返回值,無參數(shù)。無返回值表示該函數(shù)執(zhí)行完后不返回任何值。無參數(shù)表示該函數(shù)不帶任何參數(shù),即main后面的括號(hào)中沒有任何參數(shù),我們只寫“()”就可以了,也可以在括號(hào)里加上void,表示“空”的意思,如voidmain(void)。項(xiàng)目一蜂鳴器控制注意,在寫完main()之后,下面有一對(duì)大括號(hào),這是C語言中函數(shù)寫法的基本要求之一,即在一個(gè)函數(shù)中,所有的代碼都寫在這個(gè)函數(shù)的兩個(gè)(一對(duì))大括號(hào)內(nèi),每條語句結(jié)束加上分號(hào),語句與語句之間可以用空格或回車隔開。例如:voidmain(){//總程序在這里開始執(zhí)行/*其他語句*/}項(xiàng)目一蜂鳴器控制5、while語句while一般有兩種形式:形式1:while(判斷表達(dá)式){內(nèi)部語句(內(nèi)部可為空)}特點(diǎn):先判斷表達(dá)式,后執(zhí)行內(nèi)部語句。原則:計(jì)算表達(dá)式的值,當(dāng)值為真(非0)時(shí),執(zhí)行循環(huán)體語句。否則跳出while語句,執(zhí)行后面的語句。其執(zhí)行過程可用圖1-6表示。項(xiàng)目一蜂鳴器控制項(xiàng)目一蜂鳴器控制形式2:do{內(nèi)部語句}while(判斷條件)執(zhí)行效果是先運(yùn)行內(nèi)部語句,再進(jìn)行while條件判斷,如果符合條件,則返回繼續(xù)執(zhí)行do后的內(nèi)部語句,由此形成循環(huán)。項(xiàng)目一蜂鳴器控制6、for語句及簡(jiǎn)單延時(shí)語句格式:for(表達(dá)式1;表達(dá)式2;表達(dá)式3){語句(內(nèi)部可為空)}執(zhí)行過程:第一步:先求解表達(dá)式1。第二步:求解表達(dá)式2,若其值為真(非0),則執(zhí)行執(zhí)行for語句后面{}中的語句;若其值為假(0),則結(jié)束循環(huán),執(zhí)行for語句的下一條指令。第三步:求解表達(dá)式3。第四步:轉(zhuǎn)回上面第二步繼續(xù)執(zhí)行。項(xiàng)目一蜂鳴器控制for語句最簡(jiǎn)單的應(yīng)用形式也是最容易理解的形式如下:for(循環(huán)變量賦初值;循環(huán)條件;循環(huán)變量增量){語句}循環(huán)變量賦初值總是一個(gè)賦值語句,它用來給循環(huán)控制變量賦初值;循環(huán)條件是一個(gè)關(guān)系表達(dá)式,它決定什么時(shí)候退出循環(huán);循環(huán)變量增量,定義循環(huán)控制變量每循環(huán)一次后按什么方式變化。這三個(gè)部分之間用“;”分開。例如:for(i=1;i<=100;i++){語句};先給i賦初值1,判斷i是否小于等于100,若是則執(zhí)行語句,之后i值增加1。再重新判斷,直到條件為假,即i>100時(shí),結(jié)束循環(huán)。項(xiàng)目一蜂鳴器控制7、自增自減運(yùn)算符這是一類特殊的運(yùn)算符,自增運(yùn)算符++和自減運(yùn)算符--,對(duì)變量的操作結(jié)果是增加1和減少1。例如:i--;i++;i--表示i=i-1;i++表示i=i+1。項(xiàng)目一蜂鳴器控制三、程序編譯與調(diào)試1、運(yùn)行Keil軟件2、新建Keil工程項(xiàng)目3、工程的設(shè)置4、建立程序源文件5、將程序文件添加至工程項(xiàng)目6、編譯、連接7、將編譯后的程序?qū)懭雴纹瑱C(jī)芯片項(xiàng)目一蜂鳴器控制8、Proteus軟件仿真項(xiàng)目一蜂鳴器控制9、實(shí)際電路中程序的運(yùn)行項(xiàng)目一蜂鳴器控制9、修改源程序中的延時(shí)程序時(shí)間修改指令“for(i=0;i<50000;i++)”中50000的值,仔細(xì)觀察蜂鳴器鳴叫頻率的變化,理解延時(shí)的含義。注意:i的取值要在0-65535之間。項(xiàng)目一蜂鳴器控制知識(shí)點(diǎn)鏈接單片機(jī)的編程軟件一、計(jì)算機(jī)語言(一)指令和程序指令是CPU根據(jù)人的意圖來執(zhí)行某種操作的命令。按人的要求編排的指令操作序列稱為程序。項(xiàng)目一蜂鳴器控制(二)編程語言1、機(jī)器語言機(jī)器語言用二進(jìn)制編碼表示每條指令,是計(jì)算機(jī)能直接識(shí)別并執(zhí)行的語言。2、匯編語言指令采用有一定含義的符號(hào),即指令助記符來表示,一般都采用某些有關(guān)的英文單詞和縮寫。3、C語言C語言是國際上廣泛流行的、很有發(fā)展前途的計(jì)算機(jī)高級(jí)語言。它適合作為系統(tǒng)描述語言,即可用來編寫系統(tǒng)軟件,也可用來編寫應(yīng)用軟件。項(xiàng)目一蜂鳴器控制二、單片機(jī)C語言程序流程在利用C語言編寫單片機(jī)程序時(shí),通常采用圖1-8所示的流程:寫main函數(shù)在main函數(shù)中設(shè)置死循環(huán)引用單片機(jī)頭文件reg52.h項(xiàng)目一蜂鳴器控制根據(jù)以上流程,給出單片機(jī)C語言程序基本框架:#include<reg52.h>//引用S52單片機(jī)頭文件voidmain(void)//主程序main函數(shù){ while(1)//while(1)死循環(huán) { /*在此處編寫控制程序*/ }}項(xiàng)目一蜂鳴器控制三、C51中的基本數(shù)據(jù)類型數(shù)據(jù)類型關(guān)鍵字所占位數(shù)表示數(shù)的范圍無符號(hào)字符型unsignedchar80—255有符號(hào)字符型char8-128—127無符號(hào)整型unsignedint160—65535有符號(hào)整型int16-32768—32767無符號(hào)長整型unsignedlong320—232-1有符號(hào)長整型long32-231—231-1單精度實(shí)型float323.4e-38—3.4e38雙精度實(shí)型double641.7e-308—1.7e308位類型bit10--1項(xiàng)目一蜂鳴器控制三、C51數(shù)據(jù)類型擴(kuò)充定義Sfr----特殊功能寄存器的數(shù)據(jù)聲明,聲明一個(gè)8位的寄存器。sfr16-----16位特殊功能寄存器的數(shù)據(jù)聲明。Sbit-----特殊功能位聲明。也就是聲明某一個(gè)特殊功能寄存器中的某一位。Bit-----位變量聲明。當(dāng)定義一個(gè)位變量時(shí)可使用此符號(hào)。項(xiàng)目一蜂鳴器控制四、C51中常用的頭文件通常有reg51.h,reg52.h,math.h,ctype.h,stdio.h,stdlib.h,absacc.h,intrins.h。但常用的卻只有reg51.h或reg52.h,math.h,absacc.h,intrins.h。項(xiàng)目一蜂鳴器控制五、C51中的運(yùn)算符項(xiàng)目一蜂鳴器控制項(xiàng)目一蜂鳴器控制項(xiàng)目一蜂鳴器控制項(xiàng)目一蜂鳴器控制項(xiàng)目測(cè)試
一、填空題1、在單片機(jī)控制蜂鳴器項(xiàng)目中,為了驅(qū)動(dòng)蜂鳴器發(fā)聲,應(yīng)在單片機(jī)引腳和蜂鳴器之間安裝一個(gè)
,起到放大電流的作用。2、在單片機(jī)控制蜂鳴器項(xiàng)目中,蜂鳴器響時(shí),單片機(jī)引腳電平輸出為__信號(hào),蜂鳴器不響時(shí)則輸出__信號(hào)。3、用C語言編寫單片機(jī)程序時(shí),應(yīng)該在程序開頭聲明包含52系列單片機(jī)頭文件,寫作
。4、在C語言中,定義8位無符號(hào)變量時(shí)用宏定義語句
。5、在C語言中,定義16位無符號(hào)變量時(shí)用宏定義語句
。項(xiàng)目一蜂鳴器控制二、選擇題1、單片機(jī)最小系統(tǒng)中提供單片機(jī)工作脈沖信號(hào)的是()A.電源B.控制電路C.時(shí)鐘電路D.復(fù)位電路2、MCS-51單片機(jī)最小工作系統(tǒng)中,具有復(fù)位功能的電路是()。
A、時(shí)鐘電路B、復(fù)位電路C控制電路D.電源電路3、MCS-51單片機(jī)最小系統(tǒng)中,時(shí)鐘電路中的晶振頻率通常選用()。
A、4MHZB、6MHZC、8MHZD、12MHZ4、C語言編程時(shí),我們通常使用()語句實(shí)現(xiàn)延時(shí)的目的。
A、ifB、=C、forD、sbit5、C程序中,下列函數(shù)名稱中用作主函數(shù)的是()。
A、delayB、saomiaoC、mainD、scan6、蜂鳴器的工作電流比單片機(jī)的輸出電流()A.大B.小C.相等D、不確定Z項(xiàng)目一蜂鳴器控制三、簡(jiǎn)答題:1.什么是單片機(jī)最小系統(tǒng)?單片機(jī)最小系統(tǒng)包括幾個(gè)基本電路,各自的功能是什么?2.在焊接單片機(jī)控制電路板時(shí),若沒有芯片座,可否將芯片直接焊接到電路板上?請(qǐng)說明原因。3.若行讓蜂鳴器鳴叫時(shí)間比不叫的時(shí)間長一倍,怎樣編寫程序?4、若將電路中的蜂鳴器換成發(fā)光二極管,電路應(yīng)如何設(shè)計(jì)?試?yán)L制電路圖。項(xiàng)目二8位流水燈的單片機(jī)控制項(xiàng)目目標(biāo)項(xiàng)目任務(wù)項(xiàng)目分析項(xiàng)目實(shí)施知識(shí)點(diǎn)鏈接項(xiàng)目測(cè)試項(xiàng)目二8位流水燈的單片機(jī)控制項(xiàng)目目標(biāo)
通過單片機(jī)控制8個(gè)發(fā)光二極管的順序點(diǎn)亮,學(xué)會(huì)使用MCS-51單片機(jī)芯片的P1口進(jìn)行輸出控制,進(jìn)一步學(xué)習(xí)C51編寫軟件延時(shí)程序的方法,并能熟練運(yùn)用左移、右移等基本指令。項(xiàng)目任務(wù)
要求應(yīng)用AT89S52芯片,控制8個(gè)發(fā)光二極管的有序亮滅,呈現(xiàn)流水燈的效果。設(shè)計(jì)單片機(jī)控制電路并編程實(shí)現(xiàn)此功能。項(xiàng)目二8位流水燈的單片機(jī)控制項(xiàng)目分析
利用單片機(jī)P1口連接8只發(fā)光二極管,利用各引腳輸出電位的變化,控制發(fā)光二極管的亮滅。P1口各引腳的電位變化可以通過指令來控制,為了清楚地分辨發(fā)光二極管的點(diǎn)亮和熄滅,在P1口輸出信號(hào)由一種狀態(tài)向另一種狀態(tài)變化時(shí),編寫延時(shí)程序?qū)崿F(xiàn)一定的時(shí)間間隔。項(xiàng)目二8位流水燈的單片機(jī)控制項(xiàng)目實(shí)施(一)設(shè)計(jì)思路發(fā)光二極管具有普通二極管的共性----單向?qū)щ娦?,正向?qū)òl(fā)光,反向截止熄滅。利用AT89S52單片機(jī)P1口的8個(gè)引腳控制8個(gè)發(fā)光二極管,形成8位流水燈的效果。項(xiàng)目二8位流水燈的單片機(jī)控制(二)電路設(shè)計(jì)1、P1口結(jié)構(gòu)需要說明的是,作為輸入口使用時(shí),有兩種情況:其一:首先是讀鎖存器的內(nèi)容,進(jìn)行處理后再寫到鎖存器中,這種操作即:讀----修改----寫操作。其二:讀P1口線狀態(tài)時(shí),打開三態(tài)門G2,將外部狀態(tài)讀入CPU。注意:P1口是準(zhǔn)雙向口。項(xiàng)目二8位流水燈的單片機(jī)控制2、發(fā)光二極管電路在設(shè)計(jì)電路時(shí),發(fā)光二極管的連接方法有兩種:共陰極接法和共陽極接法。電路圖如圖所示。a)共陰極接法b)共陽極接法項(xiàng)目二8位流水燈的單片機(jī)控制3、控制電路
項(xiàng)目二8位流水燈的單片機(jī)控制序號(hào)元件名稱元件型號(hào)元件數(shù)量備注1單片機(jī)芯片AT89S521片DIP封裝2發(fā)光二極管Φ58只普通型紅、黃、綠均可3晶振12MHz1只
4電容30pF2只瓷片電容22uF1只電解電容5電阻220Ω8只碳膜電阻10kΩ1只碳膜電阻6按鍵
1只無自鎖740腳IC座
1片安裝AT89S52芯片(三)材料表項(xiàng)目二8位流水燈的單片機(jī)控制圖2-58位流水燈控制程序流程圖二、控制程序的編寫(一)繪制程序流程圖項(xiàng)目二8位流水燈的單片機(jī)控制(二)C語言程序1、參考程序清單#include<reg52.h>//52系列單片機(jī)頭文件#defineucharunsignedchar//定義8位無符號(hào)字符型變量#defineuintunsingnedint//定義16位無符號(hào)整形變量sbitL0=P1^0;//定義L0表示P1.0sbitL1=P1^1;//定義L1表示P1.1sbitL2=P1^2;//定義L2表示P1.2sbitL3=P1^3;//定義L3表示P1.3sbitL4=P1^4;//定義L4表示P1.4sbitL5=P1^5;//定義L5表示P1.5sbitL6=P1^6;//定義L6表示P1.6sbitL7=P1^7;//定義L7表示P1.7項(xiàng)目二8位流水燈的單片機(jī)控制voidmain(){ uinti;//定義變量i while(1) { L0=0;//L0點(diǎn)亮 for(i=0;i<40000;i++);//延時(shí) L0=1;//L0熄滅 L1=0;//L1點(diǎn)亮 for(i=0;i<40000;i++);//延時(shí)L1=1;//L1熄滅 L2=0;//L2點(diǎn)亮 for(i=0;i<40000;i++);//延時(shí)L2=1;//L2熄滅 L3=0;//L3點(diǎn)亮 L4=0;//L4點(diǎn)亮項(xiàng)目二8位流水燈的單片機(jī)控制for(i=0;i<40000;i++);//延時(shí)L3=1;//L3熄滅L4=0;//L4點(diǎn)亮 for(i=0;i<40000;i++);//延時(shí)L4=1;//L4熄滅 L5=0;//L5點(diǎn)亮 for(i=0;i<40000;i++);//延時(shí)L5=1;//L5熄滅 L6=0;//L6點(diǎn)亮 for(i=0;i<40000;i++);//延時(shí)L6=1;//L6熄滅 L7=0;//L7點(diǎn)亮 for(i=0;i<40000;i++);//延時(shí)L7=1;//L7熄滅 for(i=0;i<40000;i++);//延時(shí) }}項(xiàng)目二8位流水燈的單片機(jī)控制2、程序執(zhí)行過程單片機(jī)上電或執(zhí)行復(fù)位操作后,程序從主函數(shù)開始執(zhí)行。進(jìn)入主函數(shù)后,先定義一個(gè)16位無符號(hào)整型變量i。進(jìn)入while循環(huán)后,執(zhí)行第一條指令“L0=0”,L0導(dǎo)通并點(diǎn)亮;執(zhí)行第二條指令“for(i=0;i<40000;i++);”,延時(shí)一段時(shí)間;執(zhí)行第三條指令“L0=1”,L0截止并熄滅;執(zhí)行第四條指令“L1=0”,L1導(dǎo)通并點(diǎn)亮;……….所有指令執(zhí)行完,發(fā)光二極管L0~L7依次點(diǎn)亮一遍。由于while指令括號(hào)中的表達(dá)式是1,則重新循環(huán)這些指令。由此,程序不斷循環(huán),8個(gè)發(fā)光二極管就不斷循環(huán)點(diǎn)亮了。項(xiàng)目二8位流水燈的單片機(jī)控制(三)指令學(xué)習(xí)1、不帶參數(shù)函數(shù)的寫法及調(diào)用
本程序中,語句“for(i=0;i<40000;i++);”重復(fù)出現(xiàn),可以寫成以下子函數(shù):voiddelay(){ for(i=0;i<40000;i++);}其中,voiddelay()中小括號(hào)為空,表示這個(gè)函數(shù)是一個(gè)無參數(shù)的函數(shù)。項(xiàng)目二8位流水燈的單片機(jī)控制2、帶參數(shù)函數(shù)的寫法及調(diào)用若有以下函數(shù)voiddelayms(unsignedintxms){ uinti,j;for(i=xms;i>0;i--)for(j=110;j>0;j--); }voiddelayms(unsignedintxms)中小括號(hào)中的unsignedintxms,表示這個(gè)函數(shù)是一個(gè)有參數(shù)的函數(shù),xms是一個(gè)unsignedint型變量,又叫這個(gè)函數(shù)的形參,調(diào)用時(shí)被真實(shí)數(shù)據(jù)代替,真實(shí)數(shù)據(jù)被稱為實(shí)參。項(xiàng)目二8位流水燈的單片機(jī)控制3、移位指令1)左移指令“<<”C51中,每執(zhí)行一次“<<”左移指令,被操作的數(shù)將最高位移入單片機(jī)的PSW寄存器的CY位,CY位中原來的數(shù)丟棄,被操作數(shù)的最低位補(bǔ)0,其它位依次向左移動(dòng)一位,得到一個(gè)新的8位數(shù)據(jù)。如圖2-6所示。項(xiàng)目二8位流水燈的單片機(jī)控制2)右移指令“>>”C51中,每執(zhí)行一次“>>”左移指令,被操作的數(shù)將最低位移入單片機(jī)的PSW寄存器的CY位,CY位中原來的數(shù)丟棄,被操作數(shù)的最高位補(bǔ)0,其它位依次向右移動(dòng)一位,得到一個(gè)新的8位數(shù)據(jù)。如圖2-7所示。項(xiàng)目二8位流水燈的單片機(jī)控制3)循環(huán)左移“_crol_”
在C51自帶的函數(shù)中,邏輯循環(huán)函數(shù),包含在intrins.h頭文件中。循環(huán)左移指令_crol_功能是:被操作數(shù)的最高位移入最低位,其他各位依次向左移動(dòng)一位。項(xiàng)目二8位流水燈的單片機(jī)控制4)循環(huán)右移“_cror_”其功能是:被操作數(shù)的最低位移入最高位,其他各位依次向右移動(dòng)一位。項(xiàng)目二8位流水燈的單片機(jī)控制4、程序的編寫技巧
根據(jù)任務(wù)要求編寫程序時(shí),可以充分利用學(xué)習(xí)的新指令,使得程序更簡(jiǎn)潔。
課本中提供的參考程序采用“逐位控制”的方法,利用“sbit”指令實(shí)現(xiàn),邏輯關(guān)系簡(jiǎn)單,但程序量較大;采用“單元控制”的方法,利用“左移、右移”指令實(shí)現(xiàn),需要明確每個(gè)發(fā)光二極管的亮滅情況,寫出正確的數(shù)值,程序量有減少;同樣是“單元控制”的方法,利用“邏輯移位”指令,程序量大大減少,但同時(shí)要對(duì)指令有清晰的理解。項(xiàng)目二8位流水燈的單片機(jī)控制三、程序編譯與調(diào)試1、運(yùn)行Keil軟件,將本項(xiàng)目中的C語言程序以文件名lx2.C保存,添加到工程文件并進(jìn)行軟件仿真的設(shè)置。2、利用Keil進(jìn)行文件編譯。將已經(jīng)存儲(chǔ)完成的文件進(jìn)行編譯。3、利用Proteus進(jìn)行軟件仿真。4、程序的下載及運(yùn)行。5、修改源程序,將送數(shù)指令改為移位指令,重復(fù)以上步驟,觀察8個(gè)發(fā)光二極管的控制現(xiàn)象,理解<<、>>、_crol_、_cror_指令的功能。項(xiàng)目二8位流水燈的單片機(jī)控制知識(shí)點(diǎn)鏈接單片機(jī)中數(shù)據(jù)的表示一、數(shù)值型數(shù)據(jù)(一)數(shù)制數(shù)制是進(jìn)位計(jì)數(shù)制的簡(jiǎn)稱,是計(jì)數(shù)的方法,又稱進(jìn)制。日常生活中人們多用十進(jìn)制,而單片機(jī)中常用二進(jìn)制和十六進(jìn)制。進(jìn)制每一位數(shù)碼基數(shù)權(quán)識(shí)別碼十進(jìn)制0、1……..91010i-1末位加D或不加二進(jìn)制0、122i-1末位加B十六進(jìn)制0、1….9、A..F1616i-1末位加H,C51中前面加0x注:1、i指整數(shù)的位數(shù)。例如十進(jìn)制數(shù)123,2是第二位,i=2。2、十進(jìn)制數(shù)23,表示成十六進(jìn)制,可寫作17H或0x17。項(xiàng)目二8位流水燈的單片機(jī)控制十進(jìn)制數(shù)二進(jìn)制數(shù)十六進(jìn)制數(shù)十進(jìn)制數(shù)二進(jìn)制數(shù)十六進(jìn)制數(shù)00000B0x0091001B0x0910001B0x01101010B0x0a20010B0x02111011B0x0b30011B0x03121100B0x0c40100B0x04131101B0x0d50101B0x05141110B0x0e60110B0x06151111B0x0f70111B0x071600010000B0x1081000B0x081700010001B0x11注:表中紅色數(shù)字0是為了表示二進(jìn)制與十六進(jìn)制的對(duì)應(yīng)關(guān)系:“每一位十六進(jìn)制數(shù)都有一組四位二進(jìn)制數(shù)與之相對(duì)應(yīng)”而補(bǔ)的位。常用進(jìn)制轉(zhuǎn)換對(duì)照表:項(xiàng)目二8位流水燈的單片機(jī)控制(二)BCD碼用4位二進(jìn)制數(shù)表示1位十進(jìn)制數(shù),稱為二進(jìn)制編碼的十進(jìn)制,簡(jiǎn)稱BCD碼。十進(jìn)制數(shù)二進(jìn)制數(shù)00000B10001B20010B30011B40100B50101B60110B70111B81000B91001B表中,利用4位二進(jìn)制的0000—1001表示十進(jìn)制中的數(shù)字0—9,稱為8421BCD碼。項(xiàng)目二8位流水燈的單片機(jī)控制二、非數(shù)值型數(shù)據(jù)(一)、邏輯數(shù)據(jù)邏輯數(shù)據(jù)只能參加邏輯運(yùn)算?;具壿嬤\(yùn)算包括與、或、非三種運(yùn)算。參加運(yùn)算的數(shù)據(jù)是按位進(jìn)行的,位于位之間沒有進(jìn)位和借位關(guān)系。(二)字符數(shù)據(jù)單片機(jī)除對(duì)數(shù)值數(shù)據(jù)進(jìn)行各種運(yùn)算外,還需要處理大量的字母和符號(hào)信息,這些信息統(tǒng)稱為字符數(shù)據(jù)。目前通用的編碼是美國標(biāo)準(zhǔn)信息交換碼,簡(jiǎn)稱ASCII碼。項(xiàng)目二8位流水燈的單片機(jī)控制項(xiàng)目測(cè)試一、填空題:1、當(dāng)把8個(gè)發(fā)光二極管連接成共陽極接法時(shí),點(diǎn)亮的二極管,單片機(jī)引腳應(yīng)該輸出
信號(hào),熄滅的二極管,單片機(jī)引腳應(yīng)輸出
信號(hào)。2、本設(shè)計(jì)中,/VPP引腳接
電位。3、123=
B=0x
。4、10011B=
(十進(jìn)制)=0x
。5、39=
8421BCD。6、將37右移1位是
,左移2位是
,循環(huán)左移2位是
,循環(huán)右移1位是
。項(xiàng)目二8位流水燈的單片機(jī)控制二、選擇題:1、同樣的工作電壓,()發(fā)光二極管的亮度較高。(A)高亮型(B)普通型2、本項(xiàng)目中要實(shí)現(xiàn)8個(gè)發(fā)光二極管初始時(shí)兩端點(diǎn)亮的效果,初值應(yīng)為()。(A)0x77(B)0xE7(C)0xEE(D)0x7E3、若本項(xiàng)目設(shè)計(jì)電路時(shí),若要增加發(fā)光二極管的亮度,則所選電阻阻值()。(A)增加(B)減?。–)不變4、已知shu=0x33,執(zhí)行“shu=”()(A)0x66(B)0x19(C)0xcc(D)0x0c項(xiàng)目二8位流水燈的單片機(jī)控制二、編程及問答:1、要使得本項(xiàng)目中發(fā)光二極管的閃爍速度加快,程序如何修改?若變慢呢?2、試編寫兩段延時(shí)時(shí)間不同的子程序,并分別調(diào)用。3、本項(xiàng)目最后給出的程序中,“delayms(500);”指令的作用是什么?如果不使用該指令,還能實(shí)現(xiàn)“流水”的效果嗎?4、請(qǐng)使用左移、右移運(yùn)算符簡(jiǎn)化流水燈程序,編程并觀察流水燈效果。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管項(xiàng)目目標(biāo)項(xiàng)目任務(wù)項(xiàng)目分析項(xiàng)目實(shí)施知識(shí)點(diǎn)鏈接項(xiàng)目測(cè)試項(xiàng)目三
單片機(jī)控制1位數(shù)碼管項(xiàng)目目標(biāo)
通過單片機(jī)控制1位數(shù)碼管顯示不同的數(shù)字和符號(hào),學(xué)習(xí)使用MCS-51單片機(jī)芯片的P0口進(jìn)行輸出控制,并掌握數(shù)碼管的編碼方法,學(xué)習(xí)51單片機(jī)C語言程序的編寫及分析方法,并能熟練進(jìn)行數(shù)組的運(yùn)用。項(xiàng)目任務(wù)
要求應(yīng)用AT89S52芯片,控制一位數(shù)碼管顯示數(shù)字0-9、英文字母A-F及特定符號(hào)。設(shè)計(jì)單片機(jī)控制電路并編程實(shí)現(xiàn)。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管項(xiàng)目分析
單片機(jī)的P0口與1位數(shù)碼管進(jìn)行有序連接,利用P0口輸出數(shù)據(jù)的變化,控制七段數(shù)碼管中各段的亮滅,從而顯示不同的數(shù)字、字母和符號(hào)。P0口各引腳的電位變化可以通過指令來控制,為了清楚地分辨數(shù)碼管顯示的數(shù)字或符號(hào),在P0口輸出數(shù)據(jù)變化時(shí),要有一定的時(shí)間間隔,間隔時(shí)間通過軟件編程實(shí)現(xiàn)。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管項(xiàng)目實(shí)施一、硬件電路設(shè)計(jì)二、控制程序的編寫三、程序的仿真與調(diào)試項(xiàng)目三
單片機(jī)控制1位數(shù)碼管
一、硬件電路設(shè)計(jì)(一)設(shè)計(jì)思路
常用的七段LED數(shù)碼管,是發(fā)光二極管的集成電路,根據(jù)發(fā)光二極管的連接方式不同,可分為共陽極型和共陰極兩種類型。
控制數(shù)碼管顯示數(shù)字或字符,只要在發(fā)光二極管兩端施加合適的電壓,對(duì)應(yīng)段即可點(diǎn)亮。將數(shù)碼管的8個(gè)控制引腳與單片機(jī)的P0口進(jìn)行對(duì)應(yīng)連接,結(jié)合單片機(jī)P0口的輸出信號(hào),可以實(shí)現(xiàn)數(shù)碼管的控制。(二)電路設(shè)計(jì)1、P0口的結(jié)構(gòu)項(xiàng)目三
單片機(jī)控制1位數(shù)碼管注:(1)、P0在系統(tǒng)擴(kuò)展時(shí),分時(shí)作為數(shù)據(jù)總線和低8位地址總線。
(2)、P0作為一般輸入/輸出端口使用時(shí),需要外加上拉電阻,以保證輸出初值為高電平。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管2、數(shù)碼管的類型及結(jié)構(gòu)項(xiàng)目三
單片機(jī)控制1位數(shù)碼管
3、數(shù)碼管的編碼
要使七段數(shù)碼管顯示符號(hào),必須在對(duì)應(yīng)的引腳上提供合適的高、低電平信號(hào),這組用0、1碼組成的信號(hào)稱為段選碼,又稱字形碼。例如,選用共陰極型數(shù)碼管,若要顯示“7”的字型,則應(yīng)在a、b、c端接高電平,而d、e、f、g端接低電平,因此有a=b=c=1,d=e=f=g=0。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管
顯示字符共陰極段碼共陽極段碼顯示字符共陰極段碼共陽極段碼00x3f0xc0C0x390xc610x060xf9D0x5e0xa120x5b0xa4E0x790x8630x4f0xb0F0x710x8e40x660x99P0x730x8c50x6d0x92U0x3E0xc160x7d0x82R0x310xce70x070xf8-0xbf0x4080x7f0x8080x7f0x8090x6f0x90全滅0x000xffA0x770x88全亮0xff0x00B0x7c0x83…
七段LED顯示字符型編碼表項(xiàng)目三
單片機(jī)控制1位數(shù)碼管
4、單個(gè)數(shù)碼管顯示控制電路
項(xiàng)目三
單片機(jī)控制1位數(shù)碼管
(三)材料表序號(hào)元件名稱元件型號(hào)元件數(shù)量備注1單片機(jī)芯片AT89S521片DIP封裝2數(shù)碼管ArkSM420501只共陰極3晶振12MHz1只
4電容30pF2只瓷片電容22uF1只電解電容5電阻200Ω8只碳膜電阻,可用排阻代替10kΩ1只碳膜電阻5kΩ8只排阻6按鍵
1只無自鎖740腳IC座
1片安裝AT89S52芯片項(xiàng)目三
單片機(jī)控制1位數(shù)碼管二、控制程序的編寫(一)繪制程序流程圖項(xiàng)目三
單片機(jī)控制1位數(shù)碼管(二)C語言程序1、參考程序清單:#include<reg52.h>//52系列單片機(jī)頭文件#defineucharunsignedchar//定義無符號(hào)字符型#defineuintunsingnedint//定義無符號(hào)整數(shù)型voidmain(){ while(1) { P0=0x07;//顯示7 }}項(xiàng)目三
單片機(jī)控制1位數(shù)碼管2、程序執(zhí)行過程單片機(jī)上電或執(zhí)行復(fù)位操作后,程序自主函數(shù)開始執(zhí)行。進(jìn)入主函數(shù)后,直接進(jìn)入while大循環(huán),將數(shù)據(jù)0x07送P0口,一直重復(fù)執(zhí)行本條指令。數(shù)碼管即可顯示相應(yīng)的數(shù)字7。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管(三)指令學(xué)習(xí)1、一維數(shù)組的定義在程序設(shè)計(jì)中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來。這些按序排列的同類數(shù)據(jù)元素的集合稱為數(shù)組。一維數(shù)組的定義格式為:
類型說明符
數(shù)組名[常量表達(dá)式];
其中:類型說明符是任一種基本數(shù)據(jù)類型或構(gòu)造數(shù)據(jù)類型。
數(shù)組名是用戶定義的數(shù)組標(biāo)識(shí)符。方括號(hào)中的常量表達(dá)式表示數(shù)據(jù)元素的個(gè)數(shù),也稱為數(shù)組的長度。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管數(shù)組的初始化是指在數(shù)組定義時(shí)給數(shù)組元素賦予初值。初始化賦值的一般形式為:
類型說明符
數(shù)組名[常量表達(dá)式]={值,值……值};
以下程序是利用賦值語句和循環(huán)程序?qū)?shù)組元素初始化unsignedcharBuffer[10],i;for(i=0;i<10;i++)Buffer[i]=0x00;//將Buffer[]數(shù)組中的所有元素清零unsignedcharshuju[10],i;for(i=0;i<10;i++)Buffer[i]=i;//將shuzu[]數(shù)組中的所有元素賦值0-9項(xiàng)目三
單片機(jī)控制1位數(shù)碼管2、編碼定義數(shù)組我們采用編碼定義的方法,定義一個(gè)一維數(shù)組,書寫如下:ucharcodeable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//0-F的段碼單片機(jī)C語言中定義數(shù)組時(shí)是占用片內(nèi)數(shù)據(jù)存儲(chǔ)空間的,而定義編碼時(shí)是直接分配到程序存儲(chǔ)空間中,編譯后編碼占用的是程序存儲(chǔ)空間。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管3、數(shù)組的使用
根據(jù)對(duì)一維數(shù)組的學(xué)習(xí),我們編寫如下控制程序,可以實(shí)現(xiàn)在一個(gè)數(shù)碼管上,依次顯示0-F的功能。#include<reg52.h>//52系列單片機(jī)頭文件#defineucharunsignedchar//定義無符號(hào)字符型#defineuintunsignedint//定義無符號(hào)整數(shù)型ucharnum;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//編碼定義一維數(shù)組tablevoiddelayms(uintxms);//延時(shí)函數(shù)聲明voidmain(){項(xiàng)目三
單片機(jī)控制1位數(shù)碼管 While(1) { for(num=0;num<16;num++) { P0=table[num];//根據(jù)num的值,在一維數(shù)組得到對(duì)應(yīng)
的編碼,并將編碼送P0口 delayms(500); } }}voiddelayms(uintxms){ uinti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--);}項(xiàng)目三
單片機(jī)控制1位數(shù)碼管三、程序編譯與調(diào)試1、運(yùn)行Keil軟件,將本項(xiàng)目中的C語言程序以文件名lx3.C保存,添加到工程文件并進(jìn)行軟件仿真的設(shè)置。2、利用Keil進(jìn)行文件編譯,利用Proteus進(jìn)行軟件仿真。3、程序的下載及運(yùn)行。4、修改程序,改變P0口的值,重復(fù)以上步驟,觀察數(shù)碼管的顯示,理解程序及段碼的意義。5、將項(xiàng)目中第二段利用數(shù)組編寫的程序進(jìn)行錄入、編譯、下載,觀察數(shù)碼管顯示的數(shù)字,理解數(shù)組的意義。6、修改數(shù)組中的數(shù)據(jù)或者顯示數(shù)字的個(gè)數(shù)(num的值),編譯、下載,觀察顯示現(xiàn)象,學(xué)會(huì)靈活使用數(shù)組。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管知識(shí)點(diǎn)鏈接單片機(jī)應(yīng)用系統(tǒng)開發(fā)一、硬件設(shè)計(jì)根據(jù)任務(wù)書,首先確定單片機(jī)應(yīng)用系統(tǒng)的總體設(shè)計(jì)方案,然后再根據(jù)方案的要求,選定單片機(jī)的機(jī)型,確定系統(tǒng)中要使用的元器件,畫出硬件電路原理圖。二、程序設(shè)計(jì)1、程序設(shè)計(jì)語言的選用本教材采用C語言對(duì)單片機(jī)程序進(jìn)行編寫。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管2、繪制程序流程圖程序流程圖是編寫匯編源程序的重要環(huán)節(jié),是程序設(shè)計(jì)的重要依據(jù),它直觀清晰地體現(xiàn)了程序設(shè)計(jì)思路。常用的流程圖符號(hào)3、編寫源程序程序流程圖設(shè)計(jì)完后,根據(jù)流程圖設(shè)計(jì)思路編寫程序。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管三、程序的仿真調(diào)試仿真有兩種方法:模擬仿真、在線仿真。模擬仿真一般是用純軟件仿真,即在計(jì)算機(jī)上利用模擬開發(fā)軟件對(duì)單片機(jī)進(jìn)行硬件模擬、指令模擬和運(yùn)行狀態(tài)的模擬,從而完成軟件開發(fā)的全過程。Keil和Proteus都是軟件模擬仿真。在線仿真是將程序加載到一個(gè)稱為仿真機(jī)(或仿真器)的系統(tǒng)中,然后將此仿真機(jī)接入已制作好的硬件電路。調(diào)試是一個(gè)以仿真為核心的綜合過程,其中穿插了編輯、匯編和仿真等各項(xiàng)工作,是檢驗(yàn)程序正確性的一個(gè)重要環(huán)節(jié)。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管四、程序固化經(jīng)過在線仿真調(diào)試,最終證明程序正確無誤后,就可以把調(diào)試好的目標(biāo)程序?qū)懭雴纹瑱C(jī)芯片了,這個(gè)過程稱為程序固化。寫入程序是一個(gè)物理過程,需要專門的寫入設(shè)備----編程器、ISP下載線或者串口下載線。把寫好程序的單片機(jī)芯片放入硬件電路,單片機(jī)系統(tǒng)就可以現(xiàn)場(chǎng)獨(dú)立運(yùn)行了。項(xiàng)目三
單片機(jī)控制1位數(shù)碼管項(xiàng)目測(cè)試一、填空題1、LED數(shù)碼管由
個(gè)發(fā)光二極管構(gòu)成,根據(jù)這些發(fā)光二極管的連接方式不同,分為
和
兩種。2、LED數(shù)碼管的連接引腳共有
個(gè),其中,公共端有
個(gè)。3、LED數(shù)碼管與單片機(jī)的I/O端口連接時(shí),8個(gè)段碼控制端中a應(yīng)和I/O端口的最
(低、高)為相連,dp應(yīng)和I/O端口的最
(低、高)為相連。二、選擇題1、以下能正確定義一維數(shù)組的選項(xiàng)是()。A、inta[5]={0,1,2,3,4,5};B、chara[]={0,1,2,3,4,5};C、chara={'A','B','C'};D、inta[5]="0123";項(xiàng)目三
單片機(jī)控制1位數(shù)碼管2、下面數(shù)據(jù)中,
是共陰極數(shù)碼管“6”的段碼。A、0x7dB、0x8dC、0x82D、0x723、根據(jù)數(shù)碼管共陽極、共陰極的編碼,可以得出,它們的編碼存在
關(guān)系。A、相反B、互補(bǔ)C、相同D、沒關(guān)系4、下面數(shù)據(jù)中,
是共陽極數(shù)碼管“2”的段碼。A、0x5bB、0x4bC、0x4aD、0xa4三、簡(jiǎn)答題1、仔細(xì)觀察7段數(shù)碼管共陰極與共陽極段碼的區(qū)別,能發(fā)現(xiàn)什么規(guī)律?2、設(shè)計(jì)一程序,使一位數(shù)碼管依次顯示3~9之間的數(shù)字,時(shí)間間隔為1秒。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制項(xiàng)目目標(biāo)項(xiàng)目任務(wù)項(xiàng)目分析項(xiàng)目實(shí)施知識(shí)點(diǎn)鏈接項(xiàng)目測(cè)試項(xiàng)目四2位數(shù)字、符號(hào)顯示控制項(xiàng)目目標(biāo)
通過單片機(jī)控制2位數(shù)碼管顯示數(shù)字0--99,掌握MCS-51單片機(jī)控制多個(gè)數(shù)碼管顯示的方法,進(jìn)一步學(xué)習(xí)數(shù)碼管動(dòng)態(tài)控制的電路結(jié)構(gòu)及程序編寫。項(xiàng)目任務(wù)
利用AT89S52芯片,控制兩位數(shù)碼管循環(huán)顯示0~99共一百位數(shù)字。設(shè)計(jì)控制電路并編程實(shí)現(xiàn)此操作。項(xiàng)目分析
將單片機(jī)的P2口和P3口用作輸出口,與2位數(shù)碼管進(jìn)行有序連接,控制數(shù)碼管顯示0~99的數(shù)字。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制項(xiàng)目實(shí)施一、控制電路設(shè)計(jì)(一)設(shè)計(jì)思路
利用AT89S52單片機(jī)芯片的P2和P3口控制2位七段數(shù)碼管,定義其中一個(gè)表示“十位”,另一個(gè)表示“個(gè)位”,通過控制P2和P3口輸出數(shù)據(jù),循環(huán)顯示0~99的數(shù)字,項(xiàng)目四2位數(shù)字、符號(hào)顯示控制(二)電路圖設(shè)計(jì)1、P2口結(jié)構(gòu)注:1、P2口是準(zhǔn)雙向口。2、當(dāng)系統(tǒng)擴(kuò)展片外ROM和RAM時(shí),由P2口輸出高8位地址。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制2、P3口結(jié)構(gòu)P3口的第二功能,P3口的第二功能各管腳定義如下:·P3.0
串行輸入口(RXD)·P3.1
串行輸出口(TXD)·P3.2
外中斷0(INT0)·P3.3
外中斷1(INT1)·P3.4
定時(shí)/計(jì)數(shù)器0的外部輸入口(T0)·P3.5
定時(shí)/計(jì)數(shù)器1的外部輸入口(T1)·P3.6
外部數(shù)據(jù)存儲(chǔ)器寫選通(WR)·P3.7
外部數(shù)據(jù)存儲(chǔ)器讀選通(RD)項(xiàng)目四2位數(shù)字、符號(hào)顯示控制3、2位數(shù)碼管控制電路本項(xiàng)目利用AT89S52芯片的P2口和P3口進(jìn)行控制,且都做輸出口使用。選擇2位共陽極數(shù)碼管進(jìn)行0~99的顯示。由P2口固定控制十位數(shù)字,P3口固定控制個(gè)位數(shù)字,此種控制顯示器的方式為靜態(tài)顯示方式。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制4、控制電路項(xiàng)目四2位數(shù)字、符號(hào)顯示控制序號(hào)元件名稱元件型號(hào)元件數(shù)量備注1單片機(jī)芯片AT89S521片DIP封裝2數(shù)碼管LG5011BSR2只共陽極3晶振12MHz1只
4電容30pF2只瓷片電容22uF1只電解電容5電阻200Ω16只碳膜電阻10kΩ1只碳膜電阻5按鍵
1只無自鎖840腳IC座
1片安裝AT89S52芯片(三)材料表項(xiàng)目四2位數(shù)字、符號(hào)顯示控制二、控制程序編寫(一)繪制程序流程圖項(xiàng)目四2位數(shù)字、符號(hào)顯示控制(二)C語言程序1、參考程序清單#include<reg52.h>#defineucharunsignedchar#defineuintunsignedint#defineSWP2#defineGWP3ucharshu;ucharcodetable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共陽極數(shù)碼管0-9的段碼voiddelayms(uint);voidmain(){項(xiàng)目四2位數(shù)字、符號(hào)顯示控制while(1) { for(shu=0;shu<100;shu++) {SW=table[shu/10]; GW=table[shu%10]; delayms(500); }}}voiddelayms(uintxms){ uinti,j; for(i=xms;i>0;i--) for(j=0;j<110;j++);}項(xiàng)目四2位數(shù)字、符號(hào)顯示控制2、程序執(zhí)行過程單片機(jī)上電或執(zhí)行復(fù)位操作后,自主函數(shù)開始執(zhí)行程序。在執(zhí)行主函數(shù)前,先進(jìn)行相關(guān)初始化。進(jìn)入主函數(shù)后,直接進(jìn)入大循環(huán)。指令SW=table[shu/10],是將變量shu除以10,取整數(shù)部分(即十位),然后在數(shù)組中找到對(duì)應(yīng)的編碼,送到P2口。指令GW=table[shu%10],是將變量shu除以10,取余數(shù)部分(即個(gè)位),然后在數(shù)組中找到對(duì)應(yīng)的編碼,送到P3口。for語句循環(huán)100次后,數(shù)據(jù)顯示到了99,shu=100,退出for循環(huán)。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制(三)指令學(xué)習(xí)1、C語言中的位操作符六種操作符的形式與含義如下:&:按位“與”;|:按位“或”;^:按位“異或”;~:“取反”;>>:數(shù)據(jù)右移;<<:數(shù)據(jù)右移;項(xiàng)目四2位數(shù)字、符號(hào)顯示控制2、測(cè)試不等語句“!=”本語句功能是測(cè)試符號(hào)兩邊的數(shù)據(jù)是否不等,若不能,則為真(1),若相等,則為假(0)。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制三、程序的仿真與調(diào)試1、運(yùn)行Keil軟件,將本項(xiàng)目中的c語言程序以文件名lx4.c保存,添加到工程文件并進(jìn)行軟件仿真的設(shè)置。2、利用Keil進(jìn)行文件編譯。3、利用Proteus軟件,繪制電路圖,將編譯完整的文件裝載到單片機(jī)芯片,觀察程序運(yùn)行的仿真現(xiàn)象,理解程序的意義。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制4、程序的下載及運(yùn)行。利用ISP下載線或者串口,將編譯生成的可執(zhí)行文件下載到所用的芯片中,運(yùn)行程序,觀察2個(gè)數(shù)碼管的數(shù)字變化,理解程序的意義。5、修改源程序,改變顯示初值并減少延時(shí)時(shí)間,重復(fù)以上步驟,觀察實(shí)際控制電路和Proteus仿真電路中,2個(gè)數(shù)碼管的控制現(xiàn)象,理解程序意義及相關(guān)指令的功能。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制知識(shí)鏈接LED顯示器介紹一、LED顯示器的發(fā)展歷史LED的技術(shù)進(jìn)步是擴(kuò)大市場(chǎng)需求及應(yīng)用的最大推動(dòng)力。最初,LED只是作為微型指示燈,在計(jì)算機(jī)、音響和錄像機(jī)等高檔設(shè)備中應(yīng)用,隨著大規(guī)模集成電路和計(jì)算機(jī)技術(shù)的不斷進(jìn)步,LED顯示器正在迅速崛起,近年來逐漸擴(kuò)展到證券行情股票機(jī)、數(shù)碼相機(jī)、PDA以及手機(jī)領(lǐng)域。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制二、LED顯示器結(jié)構(gòu)及分類(一)、結(jié)構(gòu)基本的半導(dǎo)體數(shù)碼管是由七個(gè)條狀發(fā)光二極管芯片排列而成,可實(shí)現(xiàn)數(shù)字0~9的顯示。其具體結(jié)構(gòu)有“反射罩式”、“條形七段式”及“單片集成式多位數(shù)字式”等。1、反射罩式數(shù)碼管2、條形七段式數(shù)碼管3、單片集成式多位數(shù)字顯示器4、符號(hào)管、米字管的制作方式與數(shù)碼管類似。
5、矩陣管(發(fā)光二極管點(diǎn)陣)項(xiàng)目四2位數(shù)字、符號(hào)顯示控制(二)、分類
1、按字高分:筆畫顯示器字高最小有1mm(單片集成式多位數(shù)碼管字高一般在2~3mm)。其他類型筆畫顯示器最高可達(dá)12.7mm(0.5英寸)甚至達(dá)數(shù)百mm。
2、按顏色分有紅、橙、黃、綠等數(shù)種。3、按結(jié)構(gòu)分,有反射罩式、單條七段式及單片集成式。4、從各發(fā)光段電極連接方式分有共陽極和共陰極兩種。(三)參數(shù)1.發(fā)光強(qiáng)度比2.脈沖正向電流項(xiàng)目四2位數(shù)字、符號(hào)顯示控制(四)、尺寸
CRT顯示器的尺寸指顯像管的對(duì)角線尺寸。三、LED顯示器的區(qū)別1、LED的技術(shù)優(yōu)勢(shì)2、TFT顯示屏3、LED與LED背光四、LED顯示器的發(fā)展五、OLED技術(shù)六、應(yīng)用領(lǐng)域項(xiàng)目四2位數(shù)字、符號(hào)顯示控制項(xiàng)目測(cè)試
一、填空題:1、當(dāng)單片機(jī)控制少量數(shù)碼管(1—2個(gè))工作時(shí),通常選擇
顯示方法。2、需要將數(shù)據(jù)0x33的最低位清零,可以采用
運(yùn)算的方式,將此數(shù)據(jù)和數(shù)0xfe運(yùn)算即可。3、需要將數(shù)據(jù)0x47的最高位置1,可以采用
運(yùn)算的方式,將此數(shù)據(jù)和數(shù)0x80運(yùn)算即可。4、要想將一個(gè)3位十進(jìn)制數(shù)的百位取出來,設(shè)此數(shù)為a,百位用BW表示,應(yīng)寫作
。二、選擇題:1、單片機(jī)控制2個(gè)數(shù)碼管的電路中,若將一數(shù)碼管從P2口換到P0口,電路圖應(yīng)該()。項(xiàng)目四2位數(shù)字、符號(hào)顯示控制A、只將P2口端線換到P0口即可B、數(shù)碼管的公共端要接地C、P2口端線換到P0口,同時(shí)P0口要加上拉電阻D、P0口只能做輸入口2、若本項(xiàng)目中,把顯示數(shù)字的十位、個(gè)位互換,下面()修改方法能實(shí)現(xiàn)且最簡(jiǎn)單。A、電路中兩個(gè)數(shù)碼管連線交換B、程序不變,電路接線不變,只改變數(shù)碼管的位置就可以C、電路不變,程序中SW、GW內(nèi)容互換D、將個(gè)位的數(shù)碼管換到P0口3、可以將P1口的低4位全部置高電平的表達(dá)式是()A、P1&=0X0FB、P1︱=0X0FC、P1^=0X0FD、P1=~0X0F三、程序編寫:設(shè)計(jì)一個(gè)控制電路并編寫程序,實(shí)現(xiàn)4位數(shù)碼管循環(huán)顯示0000~9999。項(xiàng)目五4路數(shù)字顯示搶答器控制項(xiàng)目目標(biāo)項(xiàng)目任務(wù)項(xiàng)目分析項(xiàng)目實(shí)施知識(shí)點(diǎn)鏈接項(xiàng)目測(cè)試項(xiàng)目五4路數(shù)字顯示搶答器控制項(xiàng)目目標(biāo)
利用單片機(jī)制作一個(gè)模擬4人搶答器系統(tǒng),學(xué)習(xí)單片機(jī)I/O口作輸入口的使用方法,熟練掌握C語言編寫單片機(jī)程序的方法,學(xué)習(xí)獨(dú)立按鍵及矩陣鍵盤識(shí)別電路及編程方法。項(xiàng)目任務(wù)
設(shè)計(jì)一個(gè)單片機(jī)系統(tǒng),利用AT89S52單片機(jī)芯片及簡(jiǎn)單的外圍電路,制作一個(gè)4人搶答器。功能實(shí)現(xiàn)如下:
按下“開始”按鍵后,參賽選手進(jìn)行搶答,使用1位數(shù)碼管顯示最先按鍵的選手的號(hào)碼并保持到下一次搶答開始。項(xiàng)目五4路數(shù)字顯示搶答器控制項(xiàng)目分析
在常見的一些娛樂及知識(shí)問答節(jié)目中,搶答是一種娛樂性、競(jìng)爭(zhēng)性較強(qiáng)的形式,也是比較吸引人的比賽環(huán)節(jié)。
本項(xiàng)目將單片機(jī)芯片P1口用作輸出口,控制1位數(shù)碼管顯示搶答者號(hào)碼;將P2口用作輸入口,使用四個(gè)引腳連接四只獨(dú)立按鍵。當(dāng)有選手按下按鍵后,系統(tǒng)將其他選手的搶答屏蔽,按鍵選手號(hào)碼的識(shí)別和顯示通過程序?qū)崿F(xiàn)。項(xiàng)目五4路數(shù)字顯示搶答器控制項(xiàng)目實(shí)施一、控制電路設(shè)計(jì)二、控制程序編寫三、程序仿真與調(diào)試項(xiàng)目五4路數(shù)字顯示搶答器控制一、控制電路設(shè)計(jì)(一)設(shè)計(jì)思路利用AT89S52芯片P1口控制1位數(shù)碼管,進(jìn)行選手編號(hào)的顯示;利用P2口的P2.0~P2.3引腳連接4只按鍵,作為搶答按鍵使用。(二)電路設(shè)計(jì)1、1位LED顯示電路本電路使用AT89S52的P1口直接驅(qū)動(dòng)1位LED數(shù)碼管。將P1.0—P1.7 對(duì)應(yīng)連接7段LED數(shù)碼管的a---dp引腳,選用共陽極數(shù)碼管,公共端接高電平。項(xiàng)目五4路數(shù)字顯示搶答器控制2、搶答器(獨(dú)立按鍵)控制電路獨(dú)立按鍵電路按鍵動(dòng)作過程電壓變化過程注意:由于按鍵在動(dòng)作中有抖動(dòng),在識(shí)別程序中,要有消抖處理。項(xiàng)目五4路數(shù)字顯示搶答器控制3、控制電路項(xiàng)目四2位數(shù)字、符號(hào)顯示控制序號(hào)元件名稱元件型號(hào)元件數(shù)量備注1單片機(jī)芯片AT89S521片DIP封裝27段數(shù)碼管LG5011BSR1只共陽極3晶振12MHz1只
4電容30pF2只瓷片電容22uF1只電解電容5電阻200Ω8只碳膜電阻,可用1只排阻代替10kΩ5只碳膜電阻6按鍵
4只無自鎖(三)材料表項(xiàng)目五4路數(shù)字顯示搶答器控制二、控制程序編寫(一)繪制程序流程圖項(xiàng)目五4路數(shù)字顯示搶答器控制(二)C語言程序1、參考程序清單:#include<reg52.h>//包含52系列單片機(jī)頭文件#defineucharunsignedchar//定義無符號(hào)字符#defineuintunsignedint//定義無符號(hào)整數(shù)
sbitk1=P2^3;//定義k1連接到P2.3sbitk2=P2^2;//定義k2連接到P2.2sbitk3=P2^1;//定義k3連接到P2.1sbitk4=P2^0;//定義k4連接到P2.0ucharcodetable[]={0xff,0xf9,0xa4,0xb0,0x99};//定義代碼:全滅、1、2、3、4ucharxs=0;//初始化顯示全滅xs=0項(xiàng)目五4路數(shù)字顯示搶答器控制voiddelayms(uintxms)//毫秒級(jí)延時(shí)子函數(shù){ uinti,j; for(i=xms;i>0;i--) for(j=110;j>0;j--);}voidkeyscan()//按鍵掃描子函數(shù){ if(k1==0)//判斷按鍵K1是否被按下 { delayms(10);//延時(shí)消除按鍵抖動(dòng) if(k1==0)//延時(shí)后再次判斷按鍵狀態(tài) { while(!k1);//等待按鍵釋放xs=1;//顯示數(shù)字1return;} }項(xiàng)目五4路數(shù)字顯示搶答器控制if(k2==0) { delayms(10); if(k2==0) { while(!k1); xs=2;return;
} }if(k3==0) { delayms(10); if(k3==0) { while(!k1); xs=3;return;
} }項(xiàng)目五4路數(shù)字顯示搶答器控制if(k4==0) { delayms(10); if(k4==0) { while(!k1); xs=4;return;
} } }voidmain() { while(1) { keyscan(); P1=table[xs]; } }項(xiàng)目五4路數(shù)字顯示搶答器控制2、程序執(zhí)行過程單片機(jī)上電或執(zhí)行復(fù)位操作后,程序從主函數(shù)開始執(zhí)行。執(zhí)行主函數(shù)前,先進(jìn)行相關(guān)初始化并定義4只按鍵。進(jìn)入主函數(shù),執(zhí)行while大循環(huán)。先執(zhí)行按鍵掃描子函數(shù),再執(zhí)行“P1=table[xs];”,將按鍵數(shù)字段碼送P1口數(shù)碼管顯示。按鍵掃描函數(shù):檢測(cè)按鍵K1是否按下,若按下(K1=0),則進(jìn)入當(dāng)前的if語句循環(huán)體—延時(shí)消抖,再次判斷仍然按下,則賦對(duì)應(yīng)鍵值;若沒有按下(K1≠0),則進(jìn)入下一條if語句判斷K2。項(xiàng)目五4路數(shù)字顯示搶答器控制(三)指令學(xué)習(xí)1、if語句
用if語句可以構(gòu)成分支結(jié)構(gòu)。它根據(jù)給定的條件進(jìn)行判斷,以決定執(zhí)行某個(gè)分支程序段。(1)if基本形式:if
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能對(duì)話課件教學(xué)
- 2025年機(jī)械原理考試題(含答案)
- 化工儀表測(cè)試題+參考答案
- 工勤人員醫(yī)院感染知識(shí)與技能培訓(xùn)試題(含答案)
- 低年資護(hù)士臨床試題(含答案)
- 高級(jí)職業(yè)資格考試上海住建面試題庫精 編
- 心電圖課件教學(xué)課件
- AI職業(yè)之路:煙草AI領(lǐng)域面試題庫精 編與
- 2025年金融行業(yè)金融科技在金融行業(yè)風(fēng)險(xiǎn)管理中的角色與影響報(bào)告
- 交通運(yùn)輸行業(yè)人才需求與培養(yǎng)模式對(duì)接交通行業(yè)風(fēng)險(xiǎn)管理與保險(xiǎn)研究報(bào)告
- 中醫(yī)艾灸養(yǎng)生護(hù)理
- 2025屆湖南省長沙市一中物理高一上期中達(dá)標(biāo)檢測(cè)模擬試題含解析
- 工程施工重點(diǎn)、難點(diǎn)分析及保證措施
- 2024城市電纜線路巖土工程勘察規(guī)范
- 變電站巡檢維護(hù)服務(wù)方案
- 華為質(zhì)量回溯(根因分析與糾正預(yù)防措施)模板
- 2023版評(píng)審準(zhǔn)則和CNAS對(duì)照表
- CATIA CAA 二次開發(fā)詳細(xì)教程(11) 程序的發(fā)布
- 分布式光伏發(fā)電項(xiàng)目可行性分析報(bào)告(方案)講解演示模板ppt課件-圖文
- 高空作業(yè)安全刷漆施工方案
- 醫(yī)療康養(yǎng)項(xiàng)目運(yùn)營方案
評(píng)論
0/150
提交評(píng)論