




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
單片機(jī)C語言案例教程電子第1頁/共357頁251系列單片機(jī)的內(nèi)部結(jié)構(gòu)示意圖
牛牛文庫文檔分享第2頁/共357頁351系列單片機(jī)引腳功能圖
左圖為8051系列單片機(jī)的引腳功能圖,它采用雙列直插40引腳封裝,它所有引腳的功能我們要全部記住。
牛牛文庫文檔分享第3頁/共357頁1.2用單片機(jī)芯片組成單片機(jī)應(yīng)用系統(tǒng)1本書單片機(jī)學(xué)習(xí)板電原理路圖
牛牛文庫文檔分享第4頁/共357頁2本書單片機(jī)學(xué)習(xí)板印刷電路圖
牛牛文庫文檔分享第5頁/共357頁3本書單片機(jī)學(xué)習(xí)板四位數(shù)碼管電原理圖
牛牛文庫文檔分享第6頁/共357頁1.3對單片機(jī)編程以實現(xiàn)單片機(jī)系統(tǒng)的功能案例1:編程實現(xiàn),在4位數(shù)碼管的最左位上顯示“8?!卑咐闯绦?include"reg51.h"sbitqw=P2^0;main()
{P0=0;qw=0;}程序的第1行稱為預(yù)處理命令。第2行是定義位尋址變量。
第3行~第7行是程序的主函數(shù)。C程序是由若干個C函數(shù)組成,其中必須有一個也只能有一個名為“main”的函數(shù)。main函數(shù)就是主函數(shù)。第3行稱為函數(shù)頭,第4行~第7行稱為函數(shù)體,第4行的大括號“{”稱為函數(shù)體的開始標(biāo)志,第7行的“}”稱為函數(shù)體的結(jié)束標(biāo)志,開始標(biāo)志與結(jié)束標(biāo)志之間是若干語句。語句以分號“;”為結(jié)束標(biāo)志。
這個程序運(yùn)行時的所有功能,是由兩個賦值語句具體實現(xiàn):賦值語句“P0=0;”使口0的8個引腳,即單片機(jī)芯片的第39、38、37、36、35、34、33、32全部輸出低電平,從而使四位數(shù)碼管的所有(32只)發(fā)光二極管的負(fù)極均為低電平;賦值語句“qw=0”使口2的最低位引腳,即單片機(jī)芯片的第21腳為低電平,這就使單片機(jī)學(xué)習(xí)板上的PNP管Q3的基極為低電平而導(dǎo)通,從而使最左邊位數(shù)碼管的8只發(fā)光二極管正極為高電平。
牛牛文庫文檔分享第7頁/共357頁1.4把程序?qū)懭雴纹瑱C(jī)芯片的操作平臺和操作步驟1首先,在桌面上雙擊Keil的圖標(biāo),如下圖箭頭所指。一建立工程文件
牛牛文庫文檔分享第8頁/共357頁2系統(tǒng)進(jìn)入該軟件的初始界面,如下圖
牛牛文庫文檔分享第9頁/共357頁3在上一圖中,須單擊菜單欄中的Project菜單及其子菜單NewProject,如下圖所示。
牛牛文庫文檔分享第10頁/共357頁4于是彈出建立新nVisionz工程項目對話框,如下圖:
在上圖的“保存在(I)”下拉列表框中選擇D盤下的“stc89c52”文件夾,在文件名文本框中,輸入工程名“stc89c52”,然后單擊“保存”。此時,系統(tǒng)將彈出CPU選擇窗口,如下頁圖。
牛牛文庫文檔分享第11頁/共357頁5在列表框中選擇并展開“Atmel”,如下圖箭頭所指
牛牛文庫文檔分享第12頁/共357頁6展開“Atmel”項后如下圖在上圖中往下拉滾動條,選中“AT89C52”,如下頁圖。
牛牛文庫文檔分享第13頁/共357頁7如下圖,選中后單擊確定。隨后,在彈出的詢問框中,選擇“是(Y)”即可。
牛牛文庫文檔分享第14頁/共357頁二建立程序文件1在菜單欄中單擊“File”菜單及其子菜單“New”子菜單,此時在工作界面中會彈出一文本編輯窗口,如下圖。
說明:單片機(jī)程序的編寫,就是在上面這一窗口中進(jìn)行。
牛牛文庫文檔分享第15頁/共357頁2把在四位數(shù)碼管左邊顯示“8?!钡腃源程序,從鍵盤上照敲進(jìn)去。如下圖。
牛牛文庫文檔分享第16頁/共357頁3程序敲完后,單擊“File”菜單及其子菜單“Save”,如下圖
牛牛文庫文檔分享第17頁/共357頁4在其彈出的對話框中的文件名文本框中輸入相應(yīng)的文件名“stc89c52.c”,如下圖
注意:這里必須輸入C51源程序的擴(kuò)展名“.c”來保存。
牛牛文庫文檔分享第18頁/共357頁
第三步,把程序文件加載到工程項目中。
1在ProjectWindows窗口內(nèi),展開Tageget1,右擊SourceGroup1,如下圖。
牛牛文庫文檔分享第19頁/共357頁4右擊后出現(xiàn)如下界面
在上圖菜單中單擊“AddFilestoGroup‘SourceGroup1’”,則彈出如下頁對話框。
牛牛文庫文檔分享第20頁/共357頁
5選中“stc89c52”文件后單擊“Add”按鈕,再單擊“Clese”按鈕,則加載工作結(jié)束。如下圖。
牛牛文庫文檔分享第21頁/共357頁
此時若展開SourceGroup1,就能看到stc89c52.c已經(jīng)加入其中。如下圖。
牛牛文庫文檔分享第22頁/共357頁第四步,設(shè)置編譯和鏈接環(huán)境。
1單擊ProjectA菜單及其子菜單optionfortarget‘Target1’,
如下圖。
牛牛文庫文檔分享第23頁/共357頁將彈出編譯鏈接設(shè)置界面,如下圖。
牛牛文庫文檔分享第24頁/共357頁在上圖中,單擊Output標(biāo)簽后,在復(fù)選框GreatHEXFi:上打√,其余可用默認(rèn)值,然后確定,如下圖。
牛牛文庫文檔分享第25頁/共357頁第五步,編譯成HEX文件。單擊Project菜單及其子菜單Ruildalltargetfiles,系統(tǒng)就將.C源程序文件編譯成指定格式的.HEX文件.如下圖。上圖編譯信息窗中最后一行告訴我們,源程序有0個錯誤和0個警告。這是最好結(jié)論。有1個錯誤都不能通過編譯,必須針對錯誤提示信息進(jìn)行修改。對警告則可改可不改。
牛牛文庫文檔分享第26頁/共357頁第六步,將第五步產(chǎn)生.HEX文件下載到單片機(jī)芯片中。把單片機(jī)學(xué)習(xí)板上的電源和串口連線與PC機(jī)接通,用鼠標(biāo)依次單擊“開始”“程序”“STC_ISP_V4.80”STC_ISP_V4.80”,就進(jìn)入如下界面.
牛牛文庫文檔分享第27頁/共357頁
在MCU類型的下拉列表框中選擇”STC89C52RC”,再單擊”打開程序文件”按鈕,彈出”O(jiān)penfile(*.hexor*.bin)對話框.如下圖.
牛牛文庫文檔分享第28頁/共357頁先在上圖的下拉列表框中打開“D:\STC89C52”文件夾,隨之就出現(xiàn)“STC8051.hex”文件,單擊該文件后再單擊“打開”按鈕,就返回到下載界面,如下圖。按下載軟件的提示,關(guān)閉一下單片機(jī)電源再打開,就可看到下載過程和進(jìn)度,下載完成后,就可看到單片機(jī)四位數(shù)碼管左邊顯示的”8?!?。
牛牛文庫文檔分享第29頁/共357頁案例1下載過程與運(yùn)行效果
牛牛文庫文檔分享第30頁/共357頁1.5從數(shù)碼管顯示學(xué)單片機(jī)編程1.5.1案例2:數(shù)碼管上的“8。8?!憋@示1源程序#include"reg51.h"sbitqw =P2^0; sbitbw =P2^1;//增加的一個位尋址變量定義 main(){P0=0;qw=0;bw=0;//增加的一個賦值語句}
2源程序分析:本程序用三個賦值語句實現(xiàn)了它的功能。第一個賦值語句使P0代表的口0的8條I/O引腳輸出低電平,從而使四位數(shù)碼管共32個發(fā)光二極管的負(fù)極為低電平;第二個賦值語句、第三個賦值語句分別使口2的最低兩位引腳輸出低電平,從而使PNP管Q2、Q3導(dǎo)通,進(jìn)而使左邊兩位數(shù)碼管的共陽極上為高電平。于是,左邊兩位數(shù)碼管上的發(fā)光二極管全亮。也就是,在四位數(shù)碼管的左邊顯示出“8。8?!薄?/p>
牛牛文庫文檔分享第31頁/共357頁3用流程圖表示算法案例2程序的流程圖案例1程序的流程圖用自然語言描述操作步驟用C語句描術(shù)操作步驟
牛牛文庫文檔分享第32頁/共357頁4仿案例1程序的上機(jī)操作全過程,完成案例2程序的下載和運(yùn)行5案例2程序的下載操作與運(yùn)行效果
牛牛文庫文檔分享第33頁/共357頁1.5.2案例3:被動形式的“8051”顯示#include"reg51.h"sbitqw=P2^0; //定義MCU管腳P2.0位尋址變量名sbitbw=P2^1; //定義MCU管腳P2.1位尋址變量名sbitsw=P2^2; //定義MCU管腳P2.2位尋址變量名sbitgw=P2^3; //定義MCU管腳P2.3位尋址變量名
voidmain(){qw=1;//這四個語句的作用是關(guān)斷四位數(shù)碼管
bw=1;sw=1;gw=1;
P0=0x80;//賦"8"的筆段碼
qw=0; //接通千位上的數(shù)碼管
qw=1; //關(guān)斷千位上的數(shù)碼管
P0=0xc0;//賦"0"的筆段碼
bw=0;bw=1;P0=0x92;//賦"5"的筆段碼
sw=0;sw=1;P0=0xf9;//賦"1"的筆段碼
gw=0;gw=1;}1源程序
牛牛文庫文檔分享第34頁/共357頁2案例源程序要點(diǎn)分析:
本案例中對四位數(shù)碼管的每一位都要進(jìn)行控制,因此要定義四個位尋址變量:qw、bw、sw和gw。主函數(shù)由五個執(zhí)行段組成。第一執(zhí)行段有四個賦值語句,作用是關(guān)斷四個數(shù)碼管的顯示;第二段有三個賦值語句,作用是在數(shù)碼管的第1位(從左數(shù)到右,下同)上顯示“8”后關(guān)斷;第三段是在數(shù)碼管的第2位上顯示“0”后關(guān)斷;第四段是在數(shù)碼管的第3位上顯示“5”后關(guān)斷;第五段是在數(shù)碼管的第4位上顯示“1”后關(guān)斷。3案例3程序的流程圖
牛牛文庫文檔分享第35頁/共357頁4案例3程序的下載過程與運(yùn)行效果
牛牛文庫文檔分享第36頁/共357頁15.3案例4:主動形式的“8051”顯示3物理現(xiàn)象解惑:案例3中本應(yīng)一閃而過的“8051”變成了顯示長在的“8051”,其原因在于編譯系統(tǒng)。單片機(jī)程序是在編譯系統(tǒng)的迫使下,被動地重復(fù)運(yùn)行,“8051”的顯示才永不休止。下面的程序,是程序自己主動地進(jìn)行“8051”的重復(fù)顯示。從視覺效果上看,被動形式的“8051”,比主動形式的“8051”亮度要小。1對案例3程序的基本分析:在案例3中,main函數(shù)中的最后一個操作是“gw=1;”,這就是關(guān)掉第4位數(shù)碼管的顯示,按此程序設(shè)計的本來效果,數(shù)碼管上顯示的“8051”應(yīng)是一閃而過,此后數(shù)碼管因全部被關(guān)斷而無任何顯示。2案例3程序的一個推論:編譯系統(tǒng)有個特殊處理,即在main函數(shù)結(jié)束而返回的指令處,加了一條跳轉(zhuǎn)指令,迫使單片機(jī)程序重新運(yùn)行。
牛牛文庫文檔分享第37頁/共357頁
4源程序#include"reg51.h"sbitqw=P2^0; //定義MCU管腳P2.0位尋址變量名sbitbw=P2^1; //定義MCU管腳P2.1位尋址變量名sbitsw=P2^2; //定義MCU管腳P2.2位尋址變量名sbitgw=P2^3; //定義MCU管腳P2.3位尋址變量名voidmain(){while(1)//循環(huán)結(jié)構(gòu)
{qw=1;//這四個語句的作用是關(guān)斷四位數(shù)碼管
bw=1;sw=1;gw=1;
P0=0x80;//賦"8"的筆段碼
qw=0; //接通千位上的數(shù)碼管
qw=1; //關(guān)斷千位上的數(shù)碼管
P0=0xc0;//賦"0"的筆段碼
bw=0;bw=1;P0=0x92;//賦"5"的筆段碼
sw=0;sw=1;
P0=0xf9;//賦"1"的筆段碼
gw=0;gw=1;}}
牛牛文庫文檔分享第38頁/共357頁案例源程序要點(diǎn)分析:與案例3的源程序相比,案例4源程序中的5個執(zhí)行段,被一個while循環(huán)架構(gòu)所管轄。在此,先簡單地說明一個要點(diǎn),當(dāng)while后面的小括號中是整數(shù)1是,它大括號中的所有語句,將被無數(shù)輪重復(fù)執(zhí)行。因此,在案例4程序中,while下面大括號中的那16個賦值語句,從上到下依次執(zhí)行一輪后,又將回到上面,又從上到下依次執(zhí)行一輪,再回到上面,如此永無休止地循環(huán)下去,從而實現(xiàn)“8051”的正常顯示
5案例程序分析及流程圖流程圖
牛牛文庫文檔分享第39頁/共357頁6案例4的下載操作運(yùn)行效果
牛牛文庫文檔分享第40頁/共357頁15.4案例5:模塊化的“8051”顯示
#include"reg51.h"sbitqw=P2^0; //定義MCU管腳P2.0位尋址變量名sbitbw=P2^1; //定義MCU管腳P2.1位尋址變量名sbitsw=P2^2; //定義MCU管腳P2.2位尋址變量名sbitgw=P2^3; //定義MCU管腳P2.3位尋址變量名Disp_led(){qw=1;//這四個語句的作用是關(guān)斷四位數(shù)碼管
bw=1;sw=1;gw=1;
P0=0x80;//賦"8"的筆段碼
qw=0; //接通千位上的數(shù)碼管
qw=1; //關(guān)斷千位上的數(shù)碼管
P0=0xc0;//賦"0"的筆段碼
bw=0;bw=1;P0=0x92;//賦"5"的筆段碼
sw=0;sw=1;P0=0xf9;//賦"1"的筆段碼
gw=0;gw=1;}1源程序
牛牛文庫文檔分享第41頁/共357頁voidmain(){while(1){Disp_led();}}
牛牛文庫文檔分享第42頁/共357頁
案例5這個程序的運(yùn)行特點(diǎn)是,執(zhí)行流程從主函數(shù)進(jìn)入后,就進(jìn)入其中的while循環(huán),while循環(huán)的循環(huán)體中,只有一個函數(shù)調(diào)用語句“Disp_led();”,執(zhí)行這一函數(shù)調(diào)用語句,程序執(zhí)行流程就跳轉(zhuǎn)到Disp_led函數(shù)中繼續(xù)執(zhí)行,即從上到下依次執(zhí)行那16個賦值語句,第16個賦值語句執(zhí)行完就是Disp_led函數(shù)的結(jié)束標(biāo)志“}”,被調(diào)函數(shù)運(yùn)行到其結(jié)束標(biāo)志時,程序執(zhí)行流程就從被調(diào)函數(shù)返回到主調(diào)函數(shù)原調(diào)用處繼續(xù)往下執(zhí)行,原調(diào)用語句下面就是循環(huán)體的結(jié)束標(biāo)志“}”,因此又進(jìn)入下一次“Disp_led();”調(diào)用,程序執(zhí)行流程又跳轉(zhuǎn)到Disp_led函數(shù)上執(zhí)行,Disp_led()執(zhí)行完畢后又返回到主調(diào)函數(shù)的循環(huán)結(jié)構(gòu)中,從而形成無數(shù)次的“Disp_led();”函數(shù)調(diào)用。
牛牛文庫文檔分享第43頁/共357頁5案例5的下載過程及運(yùn)行效果
牛牛文庫文檔分享第44頁/共357頁1.5.5案例6:實用型的“8051”顯示
1案例源程序:#include"reg51.h"sbitqw=P2^0; //定義MCU管腳P2.0位尋址變量名sbitbw=P2^1; //定義MCU管腳P2.1位尋址變量名sbitsw=P2^2; //定義MCU管腳P2.2位尋址變量名sbitgw=P2^3; //定義MCU管腳P2.3位尋址變量名Delay(){unsignedinti;for(i=1;i<500;i=i+1){;}}
牛牛文庫文檔分享第45頁/共357頁Disp_led(){qw=1;bw=1;sw=1;gw=1;P0=0x80;qw=0;//接通千位上的數(shù)碼管
Delay();//延時
qw=1;//關(guān)斷千位上的數(shù)碼管
P0=0xc0;bw=0;Delay();bw=1;
P0=0x92;sw=0;Delay();sw=1;
P0=0xf9;gw=0;Delay();gw=1;}
牛牛文庫文檔分享第46頁/共357頁main(){while(1)Disp_led();}2案例6程序的流程圖
牛牛文庫文檔分享第47頁/共357頁3案例6程序的下載操作及運(yùn)行效果
牛牛文庫文檔分享第48頁/共357頁1.6案例6源程序的閱讀要點(diǎn)1程序的組成案例6的源程序由三部分組成。第一部分是預(yù)處理部分,預(yù)處理命令都是用“#”號打頭,本程序中只有一個文件包含的預(yù)處理命令。第二部分是全局變量定義部分。本程序中有四個定義位尋址變量的語句。第三部分是函數(shù)定義部分。本程序中定義了三個函數(shù)。2文件包含命令的作用文件包含的作用,是將系統(tǒng)或別人的編程文檔直接添進(jìn)我們的程序中,以提高編程的效率和程序的通用性。在“REG51.h”這個頭文件中,定義了代表單片機(jī)諸多硬件的很多符號,例如P0、P1等等。用文件包含的手段加進(jìn)我們的程序中,就省去了自己去定義的麻煩。文件包含命令具體的操作,就是在編譯時把該文件的全部內(nèi)容放在該文件包含命令的位置上。
牛牛文庫文檔分享第49頁/共357頁3定義位尋址變量的作用用符號來代表單片機(jī)的某I/O引腳,從而用對這些符號的賦值來使對應(yīng)的I/O腳,輸出所指定的高電平或低電平。進(jìn)而用這些I/O引腳去控制單片機(jī)外圍電路。4函數(shù)的作用用函數(shù)來實現(xiàn)程序的功能,用函數(shù)的調(diào)用來提高編程的效率。單片機(jī)C程序中,必須有一個且只能有一個名為main的主函數(shù),還可以有若干其它函數(shù)。5函數(shù)定義的格式要求和組成說明
定義函數(shù)的基本格式如下:函數(shù)名(){
語句序列
}
牛牛文庫文檔分享第50頁/共357頁組成說明:函數(shù)名可用英文字符標(biāo)識,函數(shù)名后面的小括號對是函數(shù)的標(biāo)記。函數(shù)名及其后的小括號對組成函數(shù)的函數(shù)頭。函數(shù)頭后的大括號對表示函數(shù)體,函數(shù)體內(nèi)是若干語句。注意,函數(shù)頭后面不能有分號。6函數(shù)調(diào)用語句
C程序中,主函數(shù)main可以調(diào)用其它函數(shù),而其它函數(shù)都不能調(diào)用main函數(shù),但其它函數(shù)間可以相互調(diào)用。函數(shù)調(diào)用可以用函數(shù)調(diào)用語句來實現(xiàn)。main函數(shù)中的while循環(huán)的循環(huán)體語句“Disp_led();”,Disp_led函數(shù)中的四個“Delay();”語句,都是函數(shù)調(diào)用語句。
牛牛文庫文檔分享第51頁/共357頁7案例6源程序的程序架構(gòu)和函數(shù)調(diào)用層次圖程序中共有三個函數(shù):main、Disp_led、Delay,其程序架構(gòu)見圖1-26。當(dāng)main函數(shù)調(diào)用Disp_led函數(shù)時,main是主調(diào)函數(shù),Disp_led是被調(diào)函數(shù);當(dāng)Disp_led函數(shù)調(diào)用Delay函數(shù)時,Disp_led是主調(diào)函數(shù),Delay是被調(diào)函數(shù)。程序架構(gòu)和函數(shù)調(diào)用層次圖如下。
牛牛文庫文檔分享第52頁/共357頁8函數(shù)調(diào)用時程序執(zhí)行的流程轉(zhuǎn)移在案例6中,當(dāng)程序從main函數(shù)運(yùn)行而執(zhí)行到函數(shù)調(diào)用語句“Disp_led();”時,程序執(zhí)行流程就從main函數(shù)中,跳轉(zhuǎn)到Disp_led函數(shù),就是從其函數(shù)頭進(jìn)入Disp_led函數(shù),并在Disp_led函數(shù)中,從上至下依次執(zhí)行所有語句。當(dāng)程序在Disp_led函數(shù)中運(yùn)行而執(zhí)行到“Delay();”語句時,執(zhí)行流程就從Disp_led函數(shù)跳轉(zhuǎn)到Delay函數(shù),也就是從函數(shù)頭進(jìn)入Delay函數(shù),當(dāng)程序執(zhí)行流程在Delay函數(shù)中執(zhí)行到Delay函數(shù)的結(jié)束標(biāo)志“}”時,執(zhí)行流程就從Delay函數(shù)返回到Disp_led函數(shù)中,具體就是去執(zhí)行其調(diào)用語句“Delay();”的下一語句。當(dāng)執(zhí)行到Disp_led函數(shù)的結(jié)束標(biāo)志“}”時,執(zhí)行流程就從Disp_led函數(shù),返回到調(diào)用它的main函數(shù)中,具體位置就是while循環(huán)語句的循環(huán)體。
牛牛文庫文檔分享第53頁/共357頁9賦值語句的一般形式和作用賦值語句的一般形式如下:變量名=表達(dá)式;其中,變量名用英文字母標(biāo)識,表達(dá)式在本章中暫時用整數(shù)。賦值語句的作用就是把賦值號“=”右邊的數(shù)據(jù)賦給左邊的變量。因此,賦值號“=”不是表示其左右兩邊相等的符號,而是表示一種裝入操作,這就是把“=”號右邊的數(shù)據(jù),裝入“=”號左邊的“倉庫”(變量就是倉庫)中。如“i=1;”,就是把數(shù)據(jù)1裝入變量i中。又如“i=i+1;”,就是把變量i中的數(shù)據(jù)取出來加上1后再裝入變量i中。
牛牛文庫文檔分享第54頁/共357頁10對數(shù)碼管的編程首先要明確,四位數(shù)碼管中不能同時有兩位以上的數(shù)碼管被打開顯示。只能一位一位地進(jìn)行顯示。要讓數(shù)碼管的某一位顯示一位數(shù),只需兩個賦值語句。一個賦值語句用來將那個數(shù)的筆段碼賦給P0,另一個賦值語句用來將相應(yīng)的位尋址變量置0。11while(1){語句序列}的作用語句while(1){語句序列}是語句while(表達(dá)式){語句序列}的特殊形式。while(1){語句序列}的作用就是讓大括號中的所有子語句永無休止地執(zhí)行下去。關(guān)于while語句的一般形式和執(zhí)行規(guī)則,見第2章相應(yīng)內(nèi)容。
牛牛文庫文檔分享第55頁/共357頁12for語句號的作用和執(zhí)行規(guī)律語句for的作用就是讓其子句重復(fù)執(zhí)行若干次。例如,有下面的程序段:
ints,n;s=0;for(n=1;n<11;n=n+1){s=s+n;}
從循環(huán)頭for(n+1;n<11;n=n+1),可推知,其循環(huán)體要執(zhí)行10次,循環(huán)結(jié)束后,變量s的值是55。關(guān)于for語句的一般形式和執(zhí)行規(guī)則,見第2章相應(yīng)內(nèi)容。
牛牛文庫文檔分享第56頁/共357頁1.7REG51.h頭文件簡介
系統(tǒng)中自帶的頭文件“REG51.h”的全部內(nèi)容如下:/*--------------------------------------------------------------------------REG51.HHeaderfileforgeneric80C51and80C31microcontroller.Copyright(c)1988-2002KeilElektronikGmbHandKeilSoftware,Inc.Allrightsreserved.--------------------------------------------------------------------------*/#ifndef__REG51_H__#define__REG51_H__/*BYTERegister*/sfrP0=0x80;sfrP1=0x90;sfrP2=0xA0;sfrP3=0xB0;sfrPSW=0xD0;sfrACC=0xE0;sfrB=0xF0;sfrSP=0x81;sfrDPL=0x82;sfrDPH=0x83;sfrPCON=0x87;sfrTCON=0x88;sfrTMOD=0x89;
牛牛文庫文檔分享第57頁/共357頁sfrTL0=0x8A;sfrTL1=0x8B;sfrTH0=0x8C;sfrTH1=0x8D;sfrIE=0xA8;sfrIP=0xB8;sfrSCON=0x98;sfrSBUF=0x99;/*BITRegister*//*PSW*/sbitCY=0xD7;sbitAC=0xD6;sbitF0=0xD5;sbitRS1=0xD4;sbitRS0=0xD3;sbitOV=0xD2;sbitP=0xD0;
牛牛文庫文檔分享第58頁/共357頁/*TCON*/sbitTF1=0x8F;sbitTR1=0x8E;sbitTF0=0x8D;sbitTR0=0x8C;sbitIE1=0x8B;sbitIT1=0x8A;sbitIE0=0x89;sbitIT0=0x88;/*IE*/sbitEA=0xAF;sbitES=0xAC;sbitET1=0xAB;sbitEX1=0xAA;sbitET0=0xA9;sbitEX0=0xA8;/*IP*/sbitPS=0xBC;sbitPT1=0xBB;sbitPX1=0xBA;sbitPT0=0xB9;sbitPX0=0xB8;
牛牛文庫文檔分享第59頁/共357頁/*P3*/sbitRD=0xB7;sbitWR=0xB6;sbitT1=0xB5;sbitT0=0xB4;sbitINT1=0xB3;sbitINT0=0xB2;sbitTXD=0xB1;sbitRXD=0xB0;/*SCON*/sbitSM0=0x9F;sbitSM1=0x9E;sbitSM2=0x9D;sbitREN=0x9C;sbitTB8=0x9B;sbitRB8=0x9A;sbitTI=0x99;sbitRI=0x98;#endif
牛牛文庫文檔分享第60頁/共357頁
從上面的代碼中,我們看到,該頭文件主要是用了sfr和sbit這兩個關(guān)鍵字,去定義了51系列單片機(jī)內(nèi)部所有寄存器硬件的符號名。如“sfrP0=0x80”,就用“P0”來表示單片機(jī)內(nèi)部地址為0X80的特殊功能寄存器。因此,我們在程序中就可直接用P0表示地址為0X80處的寄存器,進(jìn)而用語句來操作這個寄存器。如果沒有用文件包含的方法包含進(jìn)來,就只能讓我們自己來定義,就要多做很多工作。基于這個道理,我們要在程序中的第一行,放上包含這個文件的預(yù)處理命令。這樣,就能在程序中,直接使用諸如“P1”,“TH1”“SBUF”等“符號硬件”,省去了用“0X??”去訪問單片機(jī)的有關(guān)硬件,或自己去親自定義這些符號的麻煩
這就是我們總是在程序的開頭,寫上一條包含REG51.h文件命令的原因。
牛牛文庫文檔分享第61頁/共357頁3.1并駕齊驅(qū)的跑馬燈1案例效果說明:并駕齊驅(qū)的跑馬燈顯示效果由六場顯示組成,并字的含義是四個數(shù)碼管同步顯示同名筆畫,即第一場四個數(shù)碼管都顯示筆畫a,第二場四個數(shù)碼管都顯示筆畫b,第三場四個數(shù)碼管都顯示筆畫c,第四場都顯示筆畫d、第五場都顯示筆畫e,第六場都顯示筆畫f。程序整個運(yùn)行過程如下圖。
牛牛文庫文檔分享第62頁/共357頁2案例7源程序/*------------------------------------
案例7:并駕齊驅(qū)的跑馬燈
------------------------------------*/#include"reg51.h"sbitqw =P2^0; //定義MCU管腳P2.0位尋址變量名sbitbw =P2^1;//定義MCU管腳P2.1位尋址變量名sbitsw =P2^2;//定義MCU管腳P2.2位尋址變量名sbitgw =P2^3;//定義MCU管腳P2.3位尋址變量名/*------延時子函數(shù)------*/Delay() {unsignedinti;for(i=1;i<25000;i++){;}}
牛牛文庫文檔分享第63頁/共357頁/*-------------------------------------------------數(shù)碼管顯示函數(shù)-------------------------------------------------*/Disp_led(){//做準(zhǔn)備工作
qw=0; /*開通千位(左邊第一位)上的數(shù)碼管顯示*/bw=0; //開通百位上的數(shù)碼管顯示
sw=0; //開通十位上的數(shù)碼管顯示
gw=0; //開通個位上的數(shù)碼管顯示
//第一場
P0=0xfe; //把筆劃'a'碼賦給P0口
Delay(); //延時
//第二場
P0=0xfd;//把單筆劃'b'碼賦給P0口
Delay(); //延時
//第三場
P0=0xfb;//把單筆劃'c'碼賦給P0口
Delay();//延時
//第四場
P0=0xf7; //把單筆劃'd'碼賦給P0口
Delay(); //延時
牛牛文庫文檔分享第64頁/共357頁//第五場
P0=0xef;//把單筆劃'e'碼賦給P0口
Delay();//延時
//第六場
P0=0xdf;//把單筆劃'f'碼賦給P0口
Delay();//延時}/*-------------------------------------------------主函數(shù)重復(fù)調(diào)用顯示函數(shù)來實現(xiàn)程序功能-------------------------------------------------*/voidmain(){ while(1) { Disp_led();}}
牛牛文庫文檔分享第65頁/共357頁3案例7程序的流程圖
牛牛文庫文檔分享第66頁/共357頁4案例7程序的下載操作與運(yùn)行效果
牛牛文庫文檔分享第67頁/共357頁3.2邁步邊關(guān)的巡邏燈1案例效果說明:
邊關(guān)邁步的巡邏燈顯示效果由十二場顯示組成。第一場顯示千位數(shù)碼管上的a筆畫;第二場顯示百位數(shù)碼管上的a筆畫;第三場顯示十位數(shù)碼管上的a筆畫;第四場顯示個位數(shù)碼管上的a筆畫;第五場顯示個位數(shù)碼管上的b筆畫;第六場顯示個位數(shù)碼管上的c筆畫;第七場顯示個位數(shù)碼管上的d筆畫;第八場顯示十位數(shù)碼管上的d筆畫;第九場顯示百位數(shù)碼管上的d筆畫;第十場顯示千位數(shù)碼管上的d筆畫;第十一場顯示千位數(shù)碼管上的e筆畫;第十二場顯示千位數(shù)碼管上的f筆畫。示意圖如下。
牛牛文庫文檔分享第68頁/共357頁2案例源程序/*------------------------------------
案例8:邁步邊關(guān)的巡邏燈
------------------------------------*/#include"reg51.h"sbitqw =P2^0; //定義MCU管腳P2.0位尋址變量名sbitbw =P2^1;//定義MCU管腳P2.1位尋址變量名sbitsw =P2^2;//定義MCU管腳P2.2位尋址變量名sbitgw =P2^3;//定義MCU管腳P2.3位尋址變量名voidDelay(); //聲明函數(shù)Delay()voidDisp_led();//聲明函數(shù)Disp_led/*-------------------------------------------------主函數(shù)重復(fù)調(diào)用數(shù)碼管顯示函數(shù)以顯示巡邏燈-------------------------------------------------*/voidmain(){
while(1) { Disp_led();
}}
牛牛文庫文檔分享第69頁/共357頁/*-------------------------------------------------數(shù)碼管顯示函數(shù)-------------------------------------------------*/voidDisp_led(){//準(zhǔn)備工作
qw=1; //關(guān)斷千位上的數(shù)碼管顯示
bw=1; //關(guān)斷百位上的數(shù)碼管顯示
sw=1; //關(guān)斷十位上的數(shù)碼管顯示
gw=1; //關(guān)斷個位上的數(shù)碼管顯示
//第一場
P0=0xfe; //把筆畫a的顯示碼賦給P0口
qw=0; /*開通千位(左邊第一位)上的數(shù)碼管顯示*/Delay(); //延時
qw=1;//關(guān)斷千位上的數(shù)碼管顯示
//第二場
P0=0xfe; //把筆畫a的顯示碼賦給P0口
bw=0; /*開通百位(左起第二位)上的數(shù)碼管顯示*/Delay(); //延時
bw=1; //關(guān)斷百位上的數(shù)碼管顯示
牛牛文庫文檔分享第70頁/共357頁
//第三場
P0=0xfe; //把筆畫a的顯示碼賦給P0口
sw=0; /*開通十位(左起第三位)上的數(shù)碼管顯示*/Delay(); //延時
sw=1; //關(guān)斷十位上的數(shù)碼管顯示
//第四場
P0=0xfe; //把筆畫a的顯示碼賦給P0口
gw=0;/*開通個位(左起第四位)上的數(shù)碼管顯示*/Delay();//延時
gw=1;//關(guān)斷個位上的數(shù)碼管顯示
//第五場
P0=0xfd;//把筆畫b的顯示碼賦給P0口
gw=0; /*開通個位(左起第四位)上的數(shù)碼管顯示*/Delay();//延時
gw=1;//關(guān)斷個位上的數(shù)碼管顯示
牛牛文庫文檔分享第71頁/共357頁//第六場
P0=0xfb; //把筆畫c的顯示碼賦給P0口
gw=0; /*開通個位(左起第四位)上的數(shù)碼管顯示*/Delay(); //延時
gw=1; //關(guān)斷個位上的數(shù)碼管顯示
//第七場
P0=0xf7; //把筆畫d的顯示碼賦給P0口
gw=0; /*開通個位(左起第四位)上的數(shù)碼管顯示*/Delay(); //延時
gw=1; //關(guān)斷個位上的數(shù)碼管顯示
//第八場
P0=0xf7; //把筆畫d的顯示碼賦給P0口
sw=0;/*開通十位(左起第三位)上的數(shù)碼管顯示*/Delay();//延時
sw=1; //關(guān)斷十位上的數(shù)碼管顯示
牛牛文庫文檔分享第72頁/共357頁//第九場
P0=0xf7; //把筆畫d的顯示碼賦給P0口
bw=0; /*開通百位(左起第二位)上的數(shù)碼管顯示*/Delay(); //延時
bw=1; //關(guān)斷百位上的數(shù)碼管顯示
//第十場
P0=0xf7;//把筆畫a的顯示碼賦給P0口
qw=0; /*開通千位(左邊第一位)上的數(shù)碼管顯示*/Delay(); //延時
qw=1; //關(guān)斷個位上的數(shù)碼管顯示
//第十一場
P0=0xef;//把筆畫e的顯示碼賦給P0口
qw=0; /*開通千位(左邊第一位)上的數(shù)碼管顯示*/Delay(); //延時
qw=1; //關(guān)斷個位上的數(shù)碼管顯示
牛牛文庫文檔分享第73頁/共357頁
//第十二場
P0=0xdf; //把筆畫f的顯示碼賦給P0口
qw=0; /*開通千位(左邊第一位)上的數(shù)碼管顯示*/Delay(); //延時
qw=1; //關(guān)斷個位上的數(shù)碼管顯示}/*------延時函數(shù)------*/voidDelay() {unsignedinti;for(i=0;i<25000;i++){;}}
牛牛文庫文檔分享第74頁/共357頁3案例8程序的流程圖
牛牛文庫文檔分享第75頁/共357頁4案例8程序的下載操作與運(yùn)行效果
牛牛文庫文檔分享第76頁/共357頁3.3大江東去的流水燈1案例效果說明:
大江東去的流水燈顯示效果由八場顯示組成,第一場顯示千位數(shù)碼管上的e、f兩筆畫;第二場顯示千位數(shù)碼管上的b、c兩筆畫;第三場顯示百位數(shù)碼管上的e、f兩筆畫;第四場顯示百位數(shù)碼管上的b、c兩筆畫;第五場顯示十位數(shù)碼管上的e、f兩筆畫;第六場顯示十位數(shù)碼管上的b、c兩筆畫;第七場顯示個位數(shù)碼管上的e、f兩筆畫;第八場顯示個位數(shù)碼管上的b、c兩筆畫。各場顯示的示意圖如下。
牛牛文庫文檔分享第77頁/共357頁2案例源程序/*------------------------------------
案例9:大江東去的流水燈
------------------------------------*/#include"reg51.h"sbitqw =P2^0; //定義MCU管腳P2.0位尋址變量名sbitbw =P2^1;//定義MCU管腳P2.1位尋址變量名sbitsw =P2^2;//定義MCU管腳P2.2位尋址變量名sbitgw =P2^3;//定義MCU管腳P2.3位尋址變量名/*-------------------------------------------------主函數(shù)重復(fù)調(diào)用顯示函數(shù)字以顯示巡邏燈-------------------------------------------------*/voidmain(){ while(1) Disp_led();}
牛牛文庫文檔分享第78頁/共357頁/*-------------------------------------------------數(shù)碼管顯示函數(shù)-------------------------------------------------*/Disp_led(){//第一場
qw=0;/*開通千位(左邊第一位)上的數(shù)碼管顯示*/bw=1; //關(guān)斷百位上的數(shù)碼管顯示
sw=1; //關(guān)斷十位上的數(shù)碼管顯示
gw=1; //關(guān)斷個位上的數(shù)碼管顯示
P0=0xcf; //把f、e筆畫的顯示碼賦給P0口
Delay();//延時
//第二場
qw=1; /*開通千位(左邊第一位)上的數(shù)碼管顯示*/bw=0; //關(guān)斷百位上的數(shù)碼管顯示
sw=1; //關(guān)斷十位上的數(shù)碼管顯示
gw=1; //關(guān)斷個位上的數(shù)碼管顯示
P0=0xf9; //把b、c筆畫的顯示碼賦給P0口
Delay(); //延時
牛牛文庫文檔分享第79頁/共357頁//第三場
qw=1; //關(guān)斷千位上的數(shù)碼管顯示
bw=0; /*開通百位(左起第二位)上的數(shù)碼管顯示*/sw=1; //關(guān)斷十位上的數(shù)碼管顯示
gw=1; //關(guān)斷個位上的數(shù)碼管顯示
P0=0xcf; //把f、e筆畫的顯示碼賦給P0口
Delay(); //延時
//第四場
qw=1; //關(guān)斷千位上的數(shù)碼管顯示
bw=0; /*開通百位(左起第二位)上的數(shù)碼管顯示*/sw=1; //關(guān)斷十位上的數(shù)碼管顯示
gw=1; //關(guān)斷個位上的數(shù)碼管顯示
P0=0xf9; //把c、b筆畫的顯示碼賦給P0口
Delay(); //延時
牛牛文庫文檔分享第80頁/共357頁
//第五場
qw=1; //關(guān)斷千位上的數(shù)碼管顯示
bw=1; //關(guān)斷百位上的數(shù)碼管顯示
sw=0; /*開通十位(左起第三位)上的數(shù)碼管顯示*/gw=1; //關(guān)斷個位上的數(shù)碼管顯示
P0=0xcf; //把f、e筆畫的顯示碼賦給P0口
Delay(); //延時
//第六場
qw=1; //關(guān)斷千位上的數(shù)碼管顯示
bw=1; //關(guān)斷百位上的數(shù)碼管顯示
sw=0; /*開通十位(左起第三位)上的數(shù)碼管顯示*/gw=1; //關(guān)斷個位上的數(shù)碼管顯示
P0=0xf9; //把c、b筆畫的顯示碼賦給P0口
Delay(); //延時
牛牛文庫文檔分享第81頁/共357頁//第七場
qw=1; //關(guān)斷千位上的數(shù)碼管顯示
bw=1; //關(guān)斷百位上的數(shù)碼管顯示
sw=1; //關(guān)斷十位上的數(shù)碼管顯示
gw=0; /*開通個位(左起第四位)上的數(shù)碼管顯示*/P0=0xcf; //把f、e筆畫的顯示碼賦給P0口
Delay(); //延時
//第八場
qw=1; //關(guān)斷千位上的數(shù)碼管顯示
bw=1; //關(guān)斷百位上的數(shù)碼管顯示
sw=1; //關(guān)斷十位上的數(shù)碼管顯示
gw=0; /*開通個位(左起第四位)上的數(shù)碼管顯示*/P0=0xf9; //把c、b筆畫的顯示碼賦給P0口
Delay(); //延時}/*------延時函數(shù)------*/Delay() {unsignedinti;for(i=0;i<25000;i++);}
牛牛文庫文檔分享第82頁/共357頁3案例9程序的流程圖
牛牛文庫文檔分享第83頁/共357頁4案例9程序的下載操作與運(yùn)行效果
牛牛文庫文檔分享第84頁/共357頁3.4孔雀開屏式循環(huán)燈1案例效果說明:
本案例的顯示效果由4場組成。第一場顯示出四個數(shù)碼管中間的4個豎筆畫,第二場顯示出四個數(shù)碼管中間的8個豎筆畫,第三場顯示出中間的12個豎筆畫,第四場顯示出全部豎筆畫。用這四場的循環(huán)顯示,模擬孔雀開屏的效果。
牛牛文庫文檔分享第85頁/共357頁2案例源程序/*------------------------------------
案例10:孔雀開屏式循環(huán)燈
------------------------------------*/#include"reg51.h"sbitqw =P2^0; //定義MCU管腳P2.0位尋址變量名sbitbw=P2^1;//定義MCU管腳P2.0位尋址變量名sbitsw =P2^2;//定義MCU管腳P2.2位尋址變量名sbitgw =P2^3;//定義MCU管腳P2.3位尋址變量名unsignedcharq,b,s,g;//定義相應(yīng)位的筆畫碼變量,提高筆畫 //顯示的靈活性/*------延時函數(shù)------*/Delay() {unsignedinti;for(i=0;i<500;i++);}
牛牛文庫文檔分享第86頁/共357頁/*-------------------------------------------------數(shù)碼管顯示函數(shù)-------------------------------------------------*/Disp_led(){ //準(zhǔn)備工作
qw=1; //關(guān)斷千位上的數(shù)碼管顯示
bw=1; //關(guān)斷百位上的數(shù)碼管顯示
sw=1; //關(guān)斷十位上的數(shù)碼管顯示
gw=1; //關(guān)斷個位上的數(shù)碼管顯示
//第一時段:顯示千位上的數(shù)碼管
P0=q;//用變量為筆劃碼賦給P0口
qw=0;/*開通千位(左邊第一位)上的數(shù)碼管顯示*/Delay(); //延時
qw=1;//關(guān)斷千位上的數(shù)碼管顯示
牛牛文庫文檔分享第87頁/共357頁
//第二時段:顯示百位上的數(shù)碼管
P0=b; //用變量為筆劃碼賦給P0口
bw=0; /*開通百位(左起第二位)上的數(shù)碼管顯示*/Delay(); //延時
bw=1; //關(guān)斷百位上的數(shù)碼管顯示
//第三時段:顯示十位上的數(shù)碼管
P0=s; //用變量為筆劃碼賦給P0口
sw=0; /*開通十位(左起第三位)上的數(shù)碼管顯示*/Delay(); //延時
sw=1; //關(guān)斷十位上的數(shù)碼管顯示
//第四時段:顯示個位上的數(shù)碼管
P0=g; //用變量為筆劃碼賦給P0口
gw=0; /*開通個位(左起第四位)上的數(shù)碼管顯示*/Delay(); //延時
gw=1; //關(guān)斷個位上的數(shù)碼管顯示}
牛牛文庫文檔分享第88頁/共357頁/*-------------------------------------------------主函數(shù)-------------------------------------------------*/voidmain(){inta,n; while(1) { for(a=1;a<=4;a++) {if(a==1) { q=0xff; b=0xf9; s=0xcf; g=0xff; } if(a==2) {q=0xff;b=0xc9;s=0xc9;g=0xff;}
牛牛文庫文檔分享第89頁/共357頁
if(a==3) q=0xf9,b=0xc9,s=0xc9,g=0xcf; if(a==4) q=0xc9,b=0xc9,s=0xc9,g=0xc9;
for(n=1;n<50;n++) Disp_led();} }}
牛牛文庫文檔分享第90頁/共357頁3案例10程序的流程圖
牛牛文庫文檔分享第91頁/共357頁4案例10程序的下載操作與運(yùn)行效果
牛牛文庫文檔分享第92頁/共357頁3.5奔騰不息的”8051”
1案例效果說明:
本案例的顯示效果由8場組成。第一場只在千位數(shù)碼管上顯示‘8’;第二場只在千位數(shù)碼管和百位數(shù)碼管上分別顯示‘8’和‘0’;第三場只在左邊三個數(shù)碼管上分別顯示‘8’、‘0’、‘5’;第四場四個數(shù)碼管分別顯示‘8’、‘0’、‘5’、‘1’;第五場關(guān)掉全部顯示;第六場顯示完整的“8051”;第七場關(guān)掉全部顯示;第八場再顯示完整的“8051”。這個奔騰不息的”8051”顯示示意圖如下圖。
牛牛文庫文檔分享第93頁/共357頁2案例源程序/*------------------------------------
案例11:奔騰不息的8051------------------------------------*/#include"reg51.h"sbitqw =P2^0; //定義MCU管腳P2.0位尋址變量名sbitbw =P2^1;//定義MCU管腳P2.1位尋址變量名sbitsw =P2^2;//定義MCU管腳P2.2位尋址變量名sbitgw =P2^3;//定義MCU管腳P2.3位尋址變量名bitq=0;bitb=0;bits=0;bitg=0;/*------延時子程序------*/voidDelay() {unsignedinti;for(i=0;i<500;i++){;}}
牛牛文庫文檔分享第94頁/共357頁/*-------------------------------------------------數(shù)碼管顯示子程序-------------------------------------------------*/voidDisp_led(){qw=1;bw=1;sw=1;gw=1;
//顯示千位上的'8'P0=0x80; //把數(shù)字'8'的筆劃碼賦給P0口
qw=0|q; /*開通千位(左邊第一位)上的數(shù)碼管顯示*/Delay(); //延時
qw=1;//關(guān)掉顯示
//顯示百位上的'0'P0=0xc0; //把數(shù)字'0'的筆劃碼賦給P0口
bw=0|b; /*開通百位(左起第二位)上的數(shù)碼管顯示*/Delay(); //延時
bw=1; //關(guān)掉顯示
牛牛文庫文檔分享第95頁/共357頁//顯示十位上的'5'P0=0x92; //把數(shù)字'5'的筆劃碼賦給P0口
sw=0|s; /*開通十位(左起第三位)上的數(shù)碼管顯示*/Delay(); //延時
sw=1; //關(guān)掉顯示
//顯示個位上的'1'P0=0xf9; //把數(shù)字'1'的筆劃碼賦給P0口
gw=0|g; /*開通個位(左起第四位)上的數(shù)碼管顯示*/Delay(); //延時
gw=1;//關(guān)掉顯示}/*-------------------------------------------------主函數(shù)重復(fù)調(diào)用數(shù)碼管顯示函數(shù)以顯示數(shù)字8051-------------------------------------------------*/voidmain(){inta,n;
牛牛文庫文檔分享第96頁/共357頁 while(1) { for(a=1;a<=8;a++) {if(a==1) {q=0;b=1;s=1;g=1;} /*關(guān)掉右邊三個數(shù)碼管的顯示*/ if(a==2){q=0;b=0;s=1;g=1;} /*關(guān)掉右邊兩個數(shù)碼管的顯示*/if(a==3) q=0,b=0,s=0,g=1; /*關(guān)掉右邊的個數(shù)碼管的顯示*/ if(a==4) q=0,b=0,s=0,g=0; if(a==5) q=1,b=1,s=1,g=1; /*關(guān)掉四個數(shù)碼管的顯示*/ if(a==6) q=0,b=0,s=0,g=0; if(a==7) q=1,b=1,s=1,g=1; /*關(guān)掉四個數(shù)碼管的顯示*/ if(a==8) q=0,b=0,s=0,g=0; for(n=1;n<50;n++) Disp_led();} }}
牛牛文庫文檔分享第97頁/共357頁3案例11程序的流程圖
牛牛文庫文檔分享第98頁/共357頁4案例11程序的下載操作與運(yùn)行效果
牛牛文庫文檔分享第99頁/共357頁3.69999倒數(shù)數(shù)的數(shù)碼管顯示1案例效果說明:四位數(shù)碼管首先顯示9999,再顯示9998,再9997,…,0002,0001,0000,然后又9999,9998,9997,…,0
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加裝電梯加盟合同范本
- canying勞動合同范本
- 剝離工程合同范本
- 保理 保證合同范本
- 養(yǎng)鵝訂單合同范本
- 中介居間服務(wù)合同范本
- 催收咨詢服務(wù)合同范例
- 加工制作維修合同范例
- 保安服務(wù)合同補(bǔ)充合同范本
- 加盟店餐飲合同范例
- 壘球教案完整版本
- 2024年南京鐵道職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性測試題庫附答案
- 2024年蘇州農(nóng)業(yè)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 2024年江蘇經(jīng)貿(mào)職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- 2024年大理農(nóng)林職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫含答案
- C語言課程思政案例
- 發(fā)展?jié)h語初級口語I-第11課課件
- 《柔性棚洞防護(hù)結(jié)構(gòu)技術(shù)規(guī)程》
- 現(xiàn)場施工環(huán)境保護(hù)應(yīng)急預(yù)案
- 危險廢物綜合利用與處置技術(shù)規(guī)范 通則
- 社區(qū)舞蹈隊章程
評論
0/150
提交評論