久久无码高潮喷水抽搐,极品馒头泬19p,久久人人爽精品玩人妻av,精品国产成人国产在线视,精品视频一区二区三区在线观看

最新更新最新專題

您的位置:首頁 > ppt下載 > PPT課件 > 儀器設(shè)備PPT > 單片機(jī)教學(xué)PPT

單片機(jī)教學(xué)PPT下載

素材大。
987.50 KB
素材授權(quán):
免費(fèi)下載
素材格式:
.ppt
素材上傳:
ppt
上傳時間:
2018-04-04
素材編號:
183513
素材類別:
儀器設(shè)備PPT

素材預(yù)覽

單片機(jī)教學(xué)PPT

這是一個關(guān)于單片機(jī)教學(xué)PPT,包括了C51數(shù)據(jù)類型與運(yùn)算,C51流程控制語句,C51構(gòu)造數(shù)據(jù)類型,C51函數(shù),C51應(yīng)用編程實(shí)例等內(nèi)容,單片機(jī)C51教學(xué)課件第1章 C51數(shù)據(jù)類型與運(yùn)算第2章 C51流程控制語句第3章 C51構(gòu)造數(shù)據(jù)類型第4章 C51函數(shù)第5章 C51應(yīng)用編程實(shí)例 第1章 C51數(shù)據(jù)類型與運(yùn)算一、C51數(shù)據(jù)類型 C51數(shù)據(jù)類型與標(biāo)準(zhǔn)C數(shù)據(jù)類型的最大不同之處:位型。第1章 C51數(shù)據(jù)類型與運(yùn)算 C51數(shù)據(jù)類型的取值范圍:第1章 C51數(shù)據(jù)類型與運(yùn)算二、C51數(shù)據(jù)存儲類型 1. C51存儲類型與MCS-51單片機(jī)存儲空間的對應(yīng)關(guān)系 第1章 C51數(shù)據(jù)類型與運(yùn)算 2. C51存儲類型及其大小和值域 第1章 C51數(shù)據(jù)類型與運(yùn)算 3.51單片機(jī)的存儲模式 第1章 C51數(shù)據(jù)類型與運(yùn)算三、C51定義SFR 定義方法:兩個關(guān)鍵字:sfr和sbit 1.定義特殊功能寄存器用sfr 例如: sfr PSW=0xD0;/*定義程序狀態(tài)字PSW的地址為D0H*/ sfr TMOD=0x89;/*定義定時器/計(jì)數(shù)器方式控制寄存器TMOD的地址為89H*/ sfr P1=0x90;/*定義P1口的地址為90H*/ 2.定義可位尋址的特殊功能寄存器的位用sbit 例如: sbit CY=0xD7;/*定義進(jìn)位標(biāo)志CY的地址為D7H*/ sbit AC=0xD0^6;/*定義輔助進(jìn)位標(biāo)志AC的地址為D6H*/ sbit RS0=0xD0^3;/*定義RS0的地址為D3H*/ 第1章 C51數(shù)據(jù)類型與運(yùn)算 標(biāo)準(zhǔn)SFR在reg51.h、reg52.h 等頭文件中已經(jīng)被定義,只要用文件包含做出申明即可使用。 例如: #include ”reg51.h” sbit P10=P1^0; sbit P12=P1^2; main() { P10=1; P12=0; PSW=0x08; …… } 第1章 C51數(shù)據(jù)類型與運(yùn)算四、C51定義并行口 單片機(jī)內(nèi)部并行口用sfr定義,外部并行口的定義如何定義?用指針定義,指針的定義在absacc.h頭文件中例如: #include “absacc.h” #define PA XBYTE[0xffec] main() { PA=0x3A; /*將數(shù)據(jù)3AH寫入地址為0xffec的存儲單元或I/O端口*/ } 第1章 C51數(shù)據(jù)類型與運(yùn)算五、C51定義位變量,歡迎點(diǎn)擊下載單片機(jī)教學(xué)PPT。

單片機(jī)教學(xué)PPT是由紅軟PPT免費(fèi)下載網(wǎng)推薦的一款儀器設(shè)備PPT類型的PowerPoint.

單片機(jī)C51教學(xué)課件第1章 C51數(shù)據(jù)類型與運(yùn)算第2章 C51流程控制語句第3章 C51構(gòu)造數(shù)據(jù)類型第4章 C51函數(shù)第5章 C51應(yīng)用編程實(shí)例 第1章 C51數(shù)據(jù)類型與運(yùn)算一、C51數(shù)據(jù)類型 C51數(shù)據(jù)類型與標(biāo)準(zhǔn)C數(shù)據(jù)類型的最大不同之處:位型。第1章 C51數(shù)據(jù)類型與運(yùn)算 C51數(shù)據(jù)類型的取值范圍:第1章 C51數(shù)據(jù)類型與運(yùn)算二、C51數(shù)據(jù)存儲類型 1. C51存儲類型與MCS-51單片機(jī)存儲空間的對應(yīng)關(guān)系 第1章 C51數(shù)據(jù)類型與運(yùn)算 2. C51存儲類型及其大小和值域 第1章 C51數(shù)據(jù)類型與運(yùn)算 3.51單片機(jī)的存儲模式 第1章 C51數(shù)據(jù)類型與運(yùn)算三、C51定義SFR 定義方法:兩個關(guān)鍵字:sfr和sbit 1.定義特殊功能寄存器用sfr 例如: sfr PSW=0xD0;/*定義程序狀態(tài)字PSW的地址為D0H*/ sfr TMOD=0x89;/*定義定時器/計(jì)數(shù)器方式控制寄存器TMOD的地址為89H*/ sfr P1=0x90;/*定義P1口的地址為90H*/ 2.定義可位尋址的特殊功能寄存器的位用sbit 例如: sbit CY=0xD7;/*定義進(jìn)位標(biāo)志CY的地址為D7H*/ sbit AC=0xD0^6;/*定義輔助進(jìn)位標(biāo)志AC的地址為D6H*/ sbit RS0=0xD0^3;/*定義RS0的地址為D3H*/ 第1章 C51數(shù)據(jù)類型與運(yùn)算 標(biāo)準(zhǔn)SFR在reg51.h、reg52.h 等頭文件中已經(jīng)被定義,只要用文件包含做出申明即可使用。 例如: #include ”reg51.h” sbit P10=P1^0; sbit P12=P1^2; main() { P10=1; P12=0; PSW=0x08; …… } 第1章 C51數(shù)據(jù)類型與運(yùn)算四、C51定義并行口 單片機(jī)內(nèi)部并行口用sfr定義,外部并行口的定義如何定義?用指針定義,指針的定義在absacc.h頭文件中例如: #include “absacc.h” #define PA XBYTE[0xffec] main() { PA=0x3A; /*將數(shù)據(jù)3AH寫入地址為0xffec的存儲單元或I/O端口*/ } 第1章 C51數(shù)據(jù)類型與運(yùn)算五、C51定義位變量 使用關(guān)鍵字bit 例如: bit lock;/*將lock定義為位變量*/ bit dirention;/*將direction定義為位變量*/ 注意:不能定義位變量指針;也不能定義位變量數(shù)組。第1章 C51數(shù)據(jù)類型與運(yùn)算六、C51運(yùn)算符、表達(dá)式及其規(guī)則 1.算術(shù)運(yùn)算符 + ——加法運(yùn)算符 - ——減法運(yùn)算符 *——乘法運(yùn)算符 /——除法運(yùn)算符 % ——模運(yùn)算或取余運(yùn)算符 ++——為自增運(yùn)算符 --——為自減運(yùn)算符。 ⒉ 關(guān)系運(yùn)算符 < ——小于 <= ——小于等于 > ——大于 >= ——大于等于 == ——等于 。 ——不等于 7.1 C51數(shù)據(jù)類型與運(yùn)算 ⒊ 邏輯運(yùn)算符 && ——邏輯與 || ——邏輯或 ! ——邏輯非 ⒋ 位運(yùn)算符 & ——按位與 相當(dāng)于ANL指令 | ——按位或 相當(dāng)于ORL指令 ^——按位異或 相當(dāng)于XRL指令 ~ ——按位取反 相當(dāng)于CPL指令 << ——左移 相當(dāng)于RL指令 >> ——右移 相當(dāng)于RR指令 7.1 C51數(shù)據(jù)類型與運(yùn)算 ⒌ 賦值運(yùn)算符 賦值運(yùn)算符就是賦值符號“=” ⒍ 復(fù)合賦值運(yùn)算符 十種:+=,-=, *=,/=, %=, ﹠=,︱=, ^=,<<=, >>=。按優(yōu)先級順序結(jié)合運(yùn)算。例如: a+=b 等價(jià)于a=(a+b) x*=a+b 等價(jià)于x=(x*(a+b)) a&=b 等價(jià)于a=(a&b) a<<=4 等價(jià)于a=(a<<4) 第2章 C51流程控制語句 一、選擇語句 1.if語句以下三種形式: if(表達(dá)式){語句;} if(表達(dá)式){語句1;} else {語句2;} if(表達(dá)式1){語句1;} else if(表達(dá)式2){語句2;} else if(表達(dá)式3){語句3;} …… else if(表達(dá)式n){語句n;} else {語句n+1;} 第2章 C51流程控制語句例1: if (p1!=0) {c=20;} 例2: if (p1!=0) {c=20;} else {c=0;} 例3: if (a>=1) {c=10;} else if (a>=2) {c=20;} else if (a>=3) {c=30;} else if (a>=4) {c=40;} else {c=0;} 第2章 C51流程控制語句 ⒉ switch/case語句 switch/case語句的一般形式如下: switch(表達(dá)式) { case 常量表達(dá)式1:語句1; break; case 常量表達(dá)式2:語句2; break; …… case 常量表達(dá)式n:語句n; break; default :語句n+1; } 第2章 C51流程控制語句 例7.1:單片機(jī)P1口的P1.0和P1.1各接一個開關(guān)K1、K2,P1.4、P1.5、P1.6和P1.7各接一只發(fā)光二極管。有K1和K2的不同狀態(tài)來確定哪個發(fā)光二極管被點(diǎn)亮。第2章 C51流程控制語句方法一:用if語句實(shí)現(xiàn) #include “reg51.h” void main() { char a; a=P1; a=a&0x03; /*屏蔽高6位*/ if (a==0) P1=0x83; else if (a==1) P1=0x43; else if (a==2) P1=0x23; else P1=0x13; } 第2章 C51流程控制語句方法二:用switch/case語句實(shí)現(xiàn) #include “reg51.h” void main() { char a; a=P1; a=a&0x03; /*屏蔽高6位*/ switch (a) { case0:P1=0x83;break; case1:P1=0x43;break; case2:P1=0x23;break; case3:P1=0x13; } } 第2章 C51流程控制語句二、循環(huán)語句 ⒈ if語句和goto語句 goto語句只能構(gòu)成簡單循環(huán),與if語句一起可以實(shí)現(xiàn)當(dāng)型和直到型循環(huán)。 ⑴ 構(gòu)成當(dāng)型循環(huán) loop:if(表達(dá)式) {語句 goto loop; } ⑵ 構(gòu)成直到型循環(huán) loop:{語句 if(表達(dá)式)goto loop; } 第2章 C51流程控制語句 ⒉ while語句 while語句的一般格式: while(表達(dá)式)語句 ⒊ do-while語句 do-while語句一般格式: do 語句 while (表達(dá)式); ⒋ for語句 for語句的一般形式: for (表達(dá)式1;表達(dá)式2;表達(dá)式3)語句第2章 C51流程控制語句 舉例:例7.1的程序只能執(zhí)行一遍,先用循環(huán)程序使其無窮循環(huán)下去。 用goto語句實(shí)現(xiàn) #include “reg51.h” void main() { char a; loop: a=P1; a=a&0x03; /*屏蔽高6位*/ switch (a) { case0:P1=0x83;break; case1:P1=0x43;break; case2:P1=0x23;break; case3:P1=0x13; } goto loop; } 第2章 C51流程控制語句用while語句實(shí)現(xiàn) #include “reg51.h” void main() { char a; while (1) { a=P1; a=a&0x03; /*屏蔽高6位*/ switch (a) { case0:P1=0x83;break; case1:P1=0x43;break; case2:P1=0x23;break; case3:P1=0x13; } } } 第2章 C51流程控制語句用do-while語句實(shí)現(xiàn) #include “reg51.h” void main() { char a; do { a=P1; a=a&0x03; /*屏蔽高6位*/ switch (a) { case0:P1=0x83;break; case1:P1=0x43;break; case2:P1=0x23;break; case3:P1=0x13; } } while (1); } 第2章 C51流程控制語句用for語句實(shí)現(xiàn) #include “reg51.h” void main() {  char a;  for (; ;)  {   a=P1;   a=a&0x03; /*屏蔽高6位*/   switch (a)    {  case0:P1=0x83;break;  case1:P1=0x43;break;  case2:P1=0x23;break;  case3:P1=0x13;    }   } } 第2章 C51構(gòu)造數(shù)據(jù)類型一、數(shù)組 ⒈ 一維數(shù)組 ⑴ 一維數(shù)組的定義 類型說明符 數(shù)組名[元素個數(shù)]; 如:int a[50]; ⑵ 一維數(shù)組的初始化 int a[5]={1,2,3,4,5};/*給全部元素賦值*/ int b[6]={1,2,6};/*給部分元素賦值*/ int d[10];d[0]=4;d[1]=-6;…… /*定義完后再賦值*/ 第3章 C51構(gòu)造數(shù)據(jù)類型 ⒉ 二維數(shù)組 ⑴ 二維數(shù)組的定義 類型說明符 數(shù)組名[行數(shù)] [列數(shù)]; 如:float a[3][4]; ⑵ 二維數(shù)組的初始化 int a[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}}; /*全部初始化*/ int a[3][4]={{1,2,3,4},{5,6,7,8},{}}; /*部分初始化,a[2][0]= a[2][1]= a[2][2]= a[2][3]= 0*/ C51還可以定義多維數(shù)組,也可以定義字符型數(shù)組。 數(shù)組是十分有用的數(shù)據(jù)類型,用它可以形成容易查找的數(shù)據(jù)表格。第3章 C51構(gòu)造數(shù)據(jù)類型二、指針 1. 基于存儲器的指針 基于存儲器的指針是在說明一個指針時,指定它所指向的對象的存儲類型。一般占2字節(jié)。 例如:char xdata *px; px為指向一個定義在xdata存儲器中的字符變量的指針變量。px本身在默認(rèn)的存儲器區(qū)域(由編譯模式?jīng)Q定),其長度為2字節(jié)。 例如:char xdata *data py; py為指向一個定義在xdata存儲器中的字符變量的指針變量。py本身在RAM中,與編譯模式無關(guān),其長度也為2字節(jié)。 第3章 C51構(gòu)造數(shù)據(jù)類型 2.一般指針 不作特別申明的指針,即為一般指針。 如:char *pz; 這里沒有指定指針變量pz所指向的變量的存儲類型,pz處于編譯模式默認(rèn)的存儲區(qū),長度為3字節(jié)。3個字節(jié)的含義如下: 第4章  C51函數(shù)一、函數(shù)的定義與分類 ⒈ 函數(shù)的分類 ⑴ 標(biāo)準(zhǔn)庫函數(shù) ⑵ 用戶自定義函數(shù)用戶自定義函數(shù)是用戶根據(jù)自己的需要而編寫的函數(shù)。從函數(shù)定義的形式上劃分:無參數(shù)函數(shù)、有參數(shù)函數(shù)和空函數(shù)。 ⒉ 函數(shù)的定義 返回值類型 函數(shù)名(形式參數(shù)列表) { 函數(shù)體 } 例如:int max(int x,int y,int z) 返回值的數(shù)據(jù)類型為整型,函數(shù)名為max,x、y、z為3個整型入口參數(shù)。第4章  C51函數(shù)二、C51的庫函數(shù) C51編譯器提供了豐富的庫函數(shù),使用這些庫函數(shù)大大提高了編程效率,用戶可以根據(jù)需要隨時調(diào)用。每個庫函數(shù)都在相應(yīng)的頭文件中給出了函數(shù)的原型,使用時只需在源程序的開頭用編譯預(yù)處理命令#include將相關(guān)的頭文件包含進(jìn)來即可。 例如,要進(jìn)行絕對地址訪問,只需要在程序開頭使用#include “absacc.h”文件包含就可以了。要訪問SFR和SFR的位,則只需要在程序開頭使用#include “reg51.h” 或#include “reg52.h”文件包含。第5章 C51應(yīng)用編程實(shí)例 例1: 外部中斷0引腳(P3.2)接一個開關(guān),P1.0接一個發(fā)光二極管。開關(guān)閉合一次,發(fā)光二極管改變一次狀態(tài)。 本例解決外部中斷如何應(yīng)用。 #include “reg51.h” #include “intrins.h” void delay(void) { int a=5000; while(a--)_nop_(); } void int_srv(void)interrupt 0 using 1 { delay(); if(INT0==0) {P10=!P10;while(INT0==0);} } 第5章 C51應(yīng)用編程實(shí)例 void main() { P10=0; EA=1; EX0=1;while(1); } 例2: 從P1.0輸出方波信號,周期為50ms。設(shè)單片機(jī)的focs=6MHz。 本例解決定時器及其中斷的應(yīng)用。 #include “reg51.h” void main(){ TMOD=0x01; TH0=-12500/256; TL0=-12500%256; ET0=1; EA=1; TR0=1; while(1); } 第5章 C51應(yīng)用編程實(shí)例 void T0_srv(void)interrupt 1 using 1 { TH0=-12500/256; TL0=-12500%256; P10=!P10; } 例3:如圖所示,單片機(jī)擴(kuò)展可編程接口芯片8155,8155PA口控制8只發(fā)光二極管,形成走馬燈,每位點(diǎn)亮的時間為0.1秒。 第5章 C51應(yīng)用編程實(shí)例 8155的端口地址如下:命令口地址(COM8155): FEF8H PA口地址(PA8155): FEF9H PB口地址(PB8155): FEFAH PC口地址(PC8155): FEFBH #include “reg51.h” #include “absacc.h” #define COM8155 XBYTE[0xfef8] #define PA8155 XBYTE[0xfef9] void delay(void) /*延時1ms*/ { TH0=-500/256; TL0=-500%256; TR0=1; while(!TF0); TF0=0; TR0=0; } 第5章 C51應(yīng)用編程實(shí)例 main() { char i; disp_word=0x01; /*從第1位開始點(diǎn)亮*/ COM8155=0x01; /*初始化8155*/ do { PA8155= disp_word; /*輸出去點(diǎn)亮一位*/ for(i=0;i<100;i++) /*點(diǎn)亮0.1秒 */ {delay();} disp_word= disp_word<<1; /*左移控制字,準(zhǔn)備點(diǎn)亮下一位*/ if(disp_word==0)disp_word=0x01; } whlie(1); } 第5章 C51應(yīng)用編程實(shí)例 例4:第111頁的獨(dú)立鍵盤,用C語言實(shí)現(xiàn)。 第5章 C51應(yīng)用編程實(shí)例 #include “reg51.h” #include “absacc.h” void delay(void) /*延時1ms*/ { TH0=-500/256; TL0=-500%256; TR0=1; while(!TF0); TF0=0; TR0=0; } 第5章 C51應(yīng)用編程實(shí)例 main() { char x,i; loop: x=P1; x=x&0x0f; if(x==0)goto loop; for(i=0;i<10;i++) /*延時10ms去抖動*/ {delay();} x=P1; x=x&0x0f; if(x==0)goto loop; switch(x) { case 0x01:PBYTE[0x20]= PBYTE[0x20]+1;break; /*20單元加1*/ case 0x02:PBYTE[0x20]= PBYTE[0x20]-1;break; /*20單元減1*/ case 0x04:PBYTE[0x20]= 0x00;break; /*20單元清0*/ case 0x08:PBYTE[0x20]= 0xff; /*20單元置全1*/ } goto loop; } 第5章 C51應(yīng)用編程實(shí)例例5:第120頁的動態(tài)顯示,用C語言實(shí)現(xiàn)。 第5章 C51應(yīng)用編程實(shí)例 #include “reg51.h” #include “intrins.h” char code dispdata[ ]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}; char dis_dat[4]; void delay(void) /*延時1ms*/ { TH0=-500/256; TL0=-500%256; TR0=1; while(!TF0); TF0=0; TR0=0; } 第5章 C51應(yīng)用編程實(shí)例 void disp(char ch1) /*顯示函數(shù)*/ { static char ch=0x01; P2=ch; P1=dis_data[ch1]; ch=ch<<1; if(ch==0x10)ch=0x01; } main() { char ch1; TMOD=0x01; while(1) { for(ch1=0;ch1<4;ch1++) /*對四位LED掃描一遍*/ {disp(ch1); delay(); } delay(); delay(); } } 第5章 C51應(yīng)用編程實(shí)例 例6:如圖所示,對8個通道輪流采集一次,采集的結(jié)果放在數(shù)組ad中。第5章 C51應(yīng)用編程實(shí)例 #include “reg51.h” #include “absacc.h” sbit ad_busy=P3^2; main() { static char idata ad[8]; char i; char pdata *ad_ch; ad_chl=0x78; /*設(shè)置初始通道地址*/ for(i=0;i<8;i++) { *ad_chl=0; /*啟動A/D轉(zhuǎn)換*/ i=i; /*等待EOC信號變低*/ i=i; while(ad_busy==1); /*查詢*/ ad[i]=*ad_chl; /*存放結(jié)果*/ ad_chl++ ; } } 第5章 C51應(yīng)用編程實(shí)例例7:如圖所示,將AD574的轉(zhuǎn)換結(jié)果放入單片機(jī)片內(nèi)單元中。第5章 C51應(yīng)用編程實(shí)例 #include “reg51.h” #include “absacc.h” #define ADCOM PBYTE[0x00] #define ADLO PBYTE[0x03] #define ADHI PBYTE[0x01] sbit ad_busy=P3^2; main() { int idata result; ADCOM=0; /*啟動A/D轉(zhuǎn)換*/ while(ad_buy==1); /*查詢*/ result=(int)(ADHI)*256+((ADLO>>4)&0x0f)); /*存結(jié)果*/ } 第5章 C51應(yīng)用編程實(shí)例 例8:如圖所示,要求DAC0832輸出鋸齒波電壓信號,信號周期自由,用C語言寫出相應(yīng)程序。 第5章 C51應(yīng)用編程實(shí)例 #include “reg51.h” #include “absacc.h” #define DA0832 PBYTE[0x7f] main() { char i; do { for(i=0;i<255;i++) {DAC0832=i;} } while(1); } 小 結(jié) 掌握C51的數(shù)據(jù)類型、C51的數(shù)據(jù)存儲類型、C51的存儲模式、C51對SFR的定義、C51對位變量的定義,在這些方面與標(biāo)準(zhǔn)C語言有很大不同,至于其他規(guī)則與標(biāo)準(zhǔn)C語言是基本一致的;了解C51的庫函數(shù);學(xué)習(xí)時應(yīng)與匯編語言與標(biāo)準(zhǔn)C語言的程序?qū)φ掌饋,特別強(qiáng)調(diào)C51如何操作基本I/O口、擴(kuò)展I/O口,如何進(jìn)行位操作和對特殊功能寄存器的操作,掌握C51下定時器/計(jì)數(shù)器的應(yīng)用及中斷的使用方法。zLj紅軟基地

單片機(jī)中斷ppt:這是單片機(jī)中斷ppt,包括了中斷計(jì)數(shù)流水燈電路,問題的提出——中斷的概念,中斷響應(yīng)過程,MCS-51中斷系統(tǒng)結(jié)構(gòu),3級中斷控制開關(guān)設(shè)置,中斷計(jì)數(shù)流水燈硬件電路設(shè)計(jì)等內(nèi)容,歡迎點(diǎn)擊下載。

c單片機(jī)編程ppt:這是c單片機(jī)編程ppt,包括了C51與標(biāo)準(zhǔn)C的差異,C語言與匯編語言,存儲模式,使用C51擴(kuò)展關(guān)鍵字等內(nèi)容,歡迎點(diǎn)擊下載。

單片機(jī)畢業(yè)設(shè)計(jì)ppt模板:這是單片機(jī)畢業(yè)設(shè)計(jì)ppt模板,包括了課題完成情況,研究背景及意義,課題設(shè)計(jì)情況,課題設(shè)計(jì)過程,存在的不足,致謝等內(nèi)容,歡迎點(diǎn)擊下載。

PPT分類Classification

Copyright:2009-2024 紅軟網(wǎng) rsdown.cn 聯(lián)系郵箱:rsdown@163.com

湘ICP備2024053236號-1