亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 21106|回復(fù): 3
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)C語(yǔ)言總結(jié)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:401994 發(fā)表于 2018-9-25 08:59 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
希望對(duì)大家有幫助!!!

入門(mén)有針對(duì)性的解決一些簡(jiǎn)單的實(shí)際問(wèn)題,邊理論邊實(shí)踐學(xué)一樣會(huì)一樣
基本實(shí)驗(yàn):LED流水燈,數(shù)碼管顯示,鍵盤(pán)控制,音樂(lè)播放,繼電器控制I2C通信實(shí)驗(yàn),串口通信實(shí)驗(yàn),紅外線遙控信號(hào)解碼實(shí)驗(yàn)等
單片機(jī)的定義分類和內(nèi)部組成
1單片機(jī)就是中央處理器CPU,隨機(jī)存儲(chǔ)器RAM。只讀存儲(chǔ)器ROM。定時(shí)、計(jì)數(shù)器和各種輸入輸出接口I/o接口電路等部件集成在一塊電路芯片上的微型計(jì)算機(jī)。
2,1分類按制造工藝分:HMOS和CHMOS   CHMOS包括80c51等中間加了C功耗要小
適合便攜式手提式和野外作業(yè)。
2分類按不同容量的存儲(chǔ)器配置分:51子系列和52子系列
51表示單片機(jī)最后一位數(shù)字為1作為標(biāo)志。片內(nèi)帶有4KbROM或EPROMErasable Programmable ROM,可擦除可編程ROM128BRAM,兩個(gè)16位定時(shí)器/計(jì)數(shù)器和5個(gè)中段器52系列是增強(qiáng)型各項(xiàng)指標(biāo)都高。
AT89S51AT89C51的升級(jí)版支持ISP在線更新程序ISP(Internet Service Provider
內(nèi)部集成看門(mén)狗計(jì)時(shí)器等。
3.1串行接口就是接口數(shù)據(jù)傳送
3.2中斷控制系統(tǒng)接收中斷請(qǐng)求如定時(shí)時(shí)間到,需要鳴笛報(bào)警類似stop to do 停下來(lái)去執(zhí)行ROM中特定的每段程序,執(zhí)行完后再繼續(xù)執(zhí)行先前中斷的程序
時(shí)鐘電路控制節(jié)拍工作。
一個(gè)典型的單片機(jī)應(yīng)用系統(tǒng)包括輸入電路,單片機(jī),輸出電路
把他想象成電腦。
單片機(jī)的應(yīng)用:
p5
十六進(jìn)制A10B11C12D13E14F15
記A10和D13點(diǎn)得13點(diǎn)F15不是F16
十六進(jìn)制加H
邏輯數(shù)據(jù)的運(yùn)算
邏輯與。。。兩個(gè)輸入一個(gè)輸出中間加一個(gè)恒定5v電壓
有0為0,全1出1
邏輯或有1為1,全0出0;
字長(zhǎng)通常與計(jì)算機(jī)內(nèi)部的寄存器和運(yùn)算器數(shù)據(jù)總線的寬度一致


實(shí)例1功能感受protues仿真單片機(jī)播放《渴望》主題曲
運(yùn)用protues打開(kāi)仿真原理圖。
對(duì)單片機(jī)進(jìn)行處理編輯edit component,選取目標(biāo)文件hex
Clock frequency 時(shí)鐘頻率
Ok
原理圖編輯窗口沒(méi)有滾動(dòng)條,可通過(guò)預(yù)覽窗口該表原理圖的可視范圍。
Protues雙擊右鍵刪除
先單擊鼠標(biāo)右鍵,可通過(guò)鼠標(biāo)左鍵可以編輯元器件的屬性
鼠標(biāo)右鍵來(lái)刪除畫(huà)錯(cuò)的連線
中鍵縮放原理圖

新建即保存新建設(shè)計(jì)文件
Junction dot mode連接點(diǎn)
Subcircuit mode 子電路 lab用總線時(shí)會(huì)用到
Terminals mode 終端接口,有VCC地輸出輸入等接口
Device pins mode 器件引腳用于繪制各種引腳。
Graph mode 仿真圖表,用于各種分析,如noise analysis
Tape recorder  mode錄音機(jī)
Generator mode 信號(hào)發(fā)生器
Voltage probe mode 電壓探針?lè)抡鎴D表用
Current probe mode 電流探針?lè)抡鎴D表用
Virtual instruments mode虛擬儀表有示波器可顯示工作波形
Resistors 電阻
Capacitors電容
Crystal晶振
Radianl electrolytic圓柱形電解電容

Keywords輸入resistors 470r或功率先選擇元器件后放元器件
Led+yellow
Drag object 拖動(dòng)對(duì)象
Editi properties 編輯屬性
Rotate clockwise 順時(shí)針旋轉(zhuǎn)90°
Rotate anti-clockwise 逆時(shí)針旋轉(zhuǎn)90°
X-mirror 水平翻轉(zhuǎn)
Y-mirror 垂直翻轉(zhuǎn)
刪可以右鍵雙擊
雙擊鼠標(biāo)左鍵編輯label
放置電源和地必須編輯正確的labelVCCGND
各元器件引腳通過(guò)總線的連接并不表示真正意義上的電氣連接,需要添加網(wǎng)絡(luò)標(biāo)號(hào)。
要運(yùn)行雙擊單片機(jī)
基本
電源5V
振蕩電路:單片機(jī)是一種時(shí)序電路,必須施加脈沖信號(hào)才能工作。在它的內(nèi)部有一個(gè)時(shí)鐘產(chǎn)生電路,只要接上兩個(gè)電容和一個(gè)晶振即可正常工作。P30
復(fù)位電路;啟動(dòng)后讓單片機(jī)從初始狀態(tài)開(kāi)始執(zhí)行程序。
EA一橫:接正電源端,表示使用內(nèi)部程序存儲(chǔ)器。
注意:觀察仿真效果時(shí),晶振電路,復(fù)位電路和EA引腳和電路的連接可以省略。
Keil軟件源程序后綴。C必須手工輸入,表示為c語(yǔ)言程序,讓keilc51采用對(duì)應(yīng)的c語(yǔ)言的方式來(lái)編譯源程序。
#include<reg51.h>包含51單片機(jī)寄存器定義的頭文件
將新建的源程序文件加載到項(xiàng)目管理器右擊source group文件add c文件
單片機(jī)不能處理c,必須將c轉(zhuǎn)換成二進(jìn)制或十六進(jìn)制代碼,匯編或編譯。
用鼠標(biāo)右鍵點(diǎn)擊target 進(jìn)入options fortarget 確認(rèn)output選項(xiàng)中create hex
file:///Z:\TEMP\msohtmlclip1\01\clip_image002.jpg重新構(gòu)造所有目標(biāo)
程序燒錄器及燒錄軟件的使用
單片機(jī)軟硬件系統(tǒng)仿真成功后,要真正投入實(shí)際應(yīng)用,必須將程序燒寫(xiě)入單片機(jī)芯片,A51程序燒錄器和
先將COM接口(用作數(shù)據(jù)通信)與計(jì)算機(jī)的COM接口(RS-232)連接好,然后將單片機(jī)安插在燒錄器的插座中,再用一根USB線將USB接口與計(jì)算機(jī)的USB接口連接,讓計(jì)算機(jī)通過(guò)這根USB線向燒錄器提供+5V電源
使用燒錄器前,手動(dòng)設(shè)置一些,參數(shù)標(biāo)簽頁(yè),根據(jù)COM口,設(shè)置好串口,波特率設(shè)置為28800;
點(diǎn)擊自動(dòng)擦除器件命令,點(diǎn)擊打開(kāi)文件命令選擇單片機(jī)文件十六進(jìn)制文件hex 再點(diǎn)擊打開(kāi)點(diǎn)擊自動(dòng)寫(xiě)器件。
實(shí)例4用單片機(jī)控制一個(gè)燈閃爍
Led燈亮存在電壓差和正向偏置
延遲函數(shù)
Void main(void)//    兩個(gè)void分別表示無(wú)須返回值和沒(méi)有參數(shù)傳遞
{
  Unsignedint i;//  定義無(wú)符號(hào)整數(shù),最大65535
  For(i=0;i<20000;i++)
     ;    只有一個(gè)分號(hào)表示什么都不做,等待一個(gè)機(jī)器周期
}
0x中的0是數(shù)字0,而不是字母O
郁悶一編寫(xiě)keil時(shí),
文檔第一行必須是#include<reg51.h>
虛擬儀表
示波器oscilloscope
Protues示波器面板?及使用
單片機(jī)需要一個(gè)時(shí)鐘信號(hào)送給內(nèi)部個(gè)電路,才能使他們有節(jié)拍的工作,時(shí)鐘信號(hào)的頻率由外部振蕩電路的晶振頻率決定,51系列單片機(jī)的機(jī)器周期是由12個(gè)振蕩周期組成。
指令周期:?jiǎn)纹瑱C(jī)執(zhí)行一條指令的時(shí)間。
時(shí)鐘頻率越低,延時(shí)的時(shí)間就越長(zhǎng),燈閃爍的速度就越慢。


實(shí)例5 p1口狀態(tài)送入p0p2p3
利用單片機(jī)工作速度快的特點(diǎn),無(wú)限循環(huán)可以讓單片機(jī)不停地把p1口的電平狀態(tài)送到p0p2口和p3口。
引腳接地低電平被輸入到p口
實(shí)例6使用p3口流水點(diǎn)亮8led

記憶,0xfe 11111110  0xfd11111101  0xfb 11111011 0xf7 11110111

      0xef 111011110xdf 11011111    0xbf10111111 0x7f 01111111

實(shí)例7通過(guò)對(duì)p3口地址的操作流水點(diǎn)亮8led
單片機(jī)都有固定的地址,記憶:張三在教室的第2排第5列
老師可以說(shuō)清張三回答問(wèn)題也可以說(shuō)請(qǐng)第2排第5列的同學(xué)答題。
Sfr x=0xb0 通過(guò)關(guān)鍵字sfrx定義為p2的地址0xb0
定義后,程序中對(duì)x的操作就相當(dāng)于對(duì)地址0xb0p3的操作
類似于指針
P3口的固定地址是BOH
MCS-51單片機(jī)存儲(chǔ)器的基本結(jié)構(gòu)

   它有兩種1即程序存儲(chǔ)器和2數(shù)據(jù)存儲(chǔ)器
從物理MSC-51有4個(gè)存儲(chǔ)地址空間,即片內(nèi)程序存儲(chǔ)器和片外程序存儲(chǔ)器
程序存儲(chǔ)器受EA一橫外接電平的控制。
1當(dāng)EA一橫接地時(shí),單片機(jī)只能使用外部程序存儲(chǔ)器
2當(dāng)EA一橫接+5v是單片機(jī)先使用內(nèi)部程序存儲(chǔ)器,容量不夠時(shí)自動(dòng)使用外部程序存儲(chǔ)器。
特殊功能寄存器
ACC 累加器
  標(biāo)識(shí)符
  
  名稱
  
  地址
  
  ACC
  
  累加器
  
  E0H
  
  B
  
  b寄存器
  
  F0H
  
  PSW
  
  程序狀態(tài)字
  
  D0H
  
  SP
  
  堆棧指針
  
  81H
  
  DRTR
  
  數(shù)據(jù)指針
  
  83H 82H
  
  P0
  
   
  
  80H
  
  P1
  
   
  
  90H
  
  P2
  
   
  
  A0H
  
  P3
  
   
  
  B0H
  
  IP
  
  中斷優(yōu)先級(jí)控制
  
  B8H
  

  IE
  
  允許中斷控制
  
  A8H
  
  TMOD
  
  定計(jì)方式控制
  
  89H
  
  TCON
  
  定計(jì)控制
  
  88H
  
  TH0
  
  定計(jì)0高位字節(jié)
  
  8CH
  
  TL0
  
  定計(jì)0低位字節(jié)
  
  8AH
  
  TH1
  
  定計(jì)1高位字節(jié)
  
  8DH
  
  TL1
  
  定計(jì)1低位字節(jié)
  
  8BH
  
  SCON
  
  串行控制
  
  98H
  
  SBUF
  
  串行數(shù)據(jù)緩沖器
  
  99H
  
  PCON
  
  電源控制
  
  87H
  
  
  
  
  
  
  


單片機(jī)的復(fù)位電路
P54頁(yè)???
單片機(jī)C語(yǔ)言開(kāi)發(fā)基礎(chǔ)
#include<reg51.h>
C注釋
1種采用/*。。。*/可以注釋多行內(nèi)容
2種采用//但只能注釋一行
ANSI標(biāo)準(zhǔn)定義的關(guān)鍵字
P57記憶思考
P58跳過(guò)
數(shù)據(jù)類型表p59頁(yè)
指針型數(shù)據(jù)
位類型數(shù)據(jù)
空類型數(shù)據(jù)
延時(shí)函數(shù)不需要返回值。
X++先用x的值,再讓x加1
邏輯與&&邏輯或||邏輯非!

按位與& 25&77=9
按位或|  25|77=93
按位異或^ 相異為1,相同出0
按位取反~  有0出1,有1出0
左移運(yùn)算符<<  將一個(gè)二進(jìn)制數(shù)的各位全部左移若干位,移動(dòng)的過(guò)程中,高位丟棄,低位補(bǔ)0. w=0x3a   00111010Bw<<2,w=11101000B
>>低位丟棄,高位補(bǔ)0
賦值運(yùn)算符
逗號(hào)運(yùn)算符
條件運(yùn)算符
強(qiáng)制轉(zhuǎn)換運(yùn)算符???
實(shí)例8用不同數(shù)據(jù)類型的數(shù)據(jù)控制led的閃爍
  使用無(wú)符號(hào)整型數(shù)據(jù)和無(wú)符號(hào)字符數(shù)據(jù)來(lái)設(shè)計(jì)延時(shí)函數(shù)。


由于整型數(shù)據(jù)占兩個(gè)字節(jié),而無(wú)符號(hào)字符型數(shù)據(jù)僅占一個(gè)字節(jié),因此對(duì)無(wú)符號(hào)整型數(shù)據(jù)進(jìn)行操作花費(fèi)的時(shí)間就要長(zhǎng)一些,整型數(shù)據(jù)要實(shí)現(xiàn)100次循環(huán),消耗的時(shí)間約800個(gè)機(jī)器周期。無(wú)符號(hào)100占300個(gè)。為了提高運(yùn)行效率,盡可能用無(wú)符號(hào)字符型數(shù)據(jù)。
實(shí)例9 p0口和p1口分別顯示加法和減法運(yùn)算結(jié)果
其實(shí)就是利用二進(jìn)制的單位數(shù)值進(jìn)行亮1不亮0的表示
乘法除法就是利用二進(jìn)制轉(zhuǎn)化為十進(jìn)制再進(jìn)行處理
實(shí)例12用自增運(yùn)算控制p08ked的閃爍花樣
只要送到p0口的數(shù)值發(fā)生變化,p0口8位led點(diǎn)亮的狀態(tài)就會(huì)發(fā)生變化。可以先將變量的初值送到p0口延遲一段時(shí)間,再利用自增運(yùn)算使變量加1,然后將新的變量值送到p0口并延時(shí)一段時(shí)間,即可使8位led的閃爍花樣不斷變化,
Unsigned char I;定義無(wú)符號(hào)字符型變量,其值不超過(guò)255
運(yùn)用變量的值變化和將變量的值送到p口用來(lái)變化。
For(i=0;i<255;i++)
實(shí)例13用p0口顯示邏輯與的運(yùn)算
P0=(4>0)&&(9>0xab)=1&&0=0;將運(yùn)算結(jié)果送到p0口
實(shí)例14用p0口顯示條件運(yùn)算的結(jié)果
P0=(8>4)?8:4;   P0=8=00001000B
實(shí)例15;用p0口顯示按位異或運(yùn)算結(jié)果
異或相異出1,相同出0;記憶異性才能很火熱的做出子女
P0=0xa2^0x3c 異或要做必須上頂^  很公平應(yīng)用
實(shí)例16 p0口顯示左移的運(yùn)算結(jié)果

實(shí)例17萬(wàn)能邏輯電路
F=EY+Z邏輯函數(shù)p77
1專門(mén)設(shè)計(jì)數(shù)字電路,實(shí)現(xiàn)邏輯功能
2通過(guò)單片機(jī)編程來(lái)實(shí)現(xiàn)邏輯功能軟件即硬件
//實(shí)例17"萬(wàn)能邏輯電路"實(shí)驗(yàn)
#include<reg51.h>  //包含單片機(jī)寄存器的頭文件
sbit F=P1^4;       //將F位定義為 P1.4
sbit X=P1^5;       //將X位定義為 P1.5
sbit Y=P1^6;       //將Y位定義為 P1.6
sbit Z=P1^7;       //將Z位定義為 P1.7
void main(void)
{  
   while(1)
       {
       F=((~X)&Y)|Z; //將邏輯運(yùn)算結(jié)果賦給F
          ;         
       }
}

實(shí)例18用右移實(shí)現(xiàn)流水燈
前提設(shè)p口為0xff八次右移一位高位丟棄低位補(bǔ)0
延遲用的變量因?yàn)橐〈髷?shù)所以必須用int
后面因?yàn)橐焖匀?/font>char型變量
因?yàn)閱纹瑱C(jī)運(yùn)行快。所以led燈閃后要延遲。
C語(yǔ)言語(yǔ)句
  
If(S1==0)
P1=0x00;如果按鍵s按下接地(相應(yīng)位為低電平),
Swich 整型 break 三者緊密
While語(yǔ)句花括號(hào)運(yùn)用和  一般情況下,在循環(huán)體中應(yīng)該有讓循環(huán)停止的語(yǔ)句。??
Do while 語(yǔ)句注意;
Do和while連用  while后面的分號(hào)不能丟,它表示整個(gè)循環(huán)語(yǔ)句的結(jié)束
Do循環(huán)語(yǔ)句 while(循環(huán)式)
盡量避免使用goto語(yǔ)句
P87頁(yè)的程序軟件即硬件
實(shí)例21用for語(yǔ)句實(shí)現(xiàn)鳴笛報(bào)警
T=1/f,所以要讓蜂鳴器發(fā)出頻率f的聲音,只要讓單片機(jī)輸送周期為t的脈沖方波電平即可,讓單片機(jī)沒(méi)半個(gè)周期取反一次。半周期可通過(guò)延時(shí)來(lái)實(shí)現(xiàn)。可以通過(guò)循環(huán)的方式來(lái)實(shí)現(xiàn)延時(shí),
P90一重循環(huán)消耗的機(jī)器數(shù)近似N=3*n
二重循環(huán)消耗的機(jī)器數(shù)近似N=3*n*m
例子,如果單片機(jī)的晶振頻率為11.0592MHz,則機(jī)器的周期為1.085μs,要發(fā)出1600Hz的聲音,就讓單片機(jī)每半個(gè)周期312μs將輸出電平取反一次,而延時(shí)312μs需要消耗機(jī)器周期數(shù)N=312/1.085286可以取300循環(huán)次數(shù)300/3=100
Void delay(void)
{
Unsigned char I;
For(i=0;i<100;i++)

}形成1600Hz的音頻
相對(duì)應(yīng)800Hz的音頻可以i取200
Sbit sound=P1^5;
Sound=0; 即可執(zhí)行
Unsigned char i
While1
i=0;??
數(shù)組是同類型的一組變量?
Unsigned char code tab[]
應(yīng)用卻是tab【】??
  
字符型數(shù)組中的個(gè)字符數(shù)據(jù)在單片機(jī)中是以字符的ASCII 存放的,
正確的使用指針,可以有效地表示復(fù)雜的數(shù)據(jù)類型,動(dòng)態(tài)分配內(nèi)存,方便的使用字符串,有效地使用數(shù)組。
指針本身就具有地址還存在一個(gè)地址,
Unsigned char*p;
Unsigned char a;
P=&a;
指針數(shù)組
Unsigned chara[]={0,1,2,3};
Unsigned char*a[]={&a[0],&a[1],&a[2],&a[3]};
數(shù)組的指針
Unsigned chara[]={0,1,2,3};
Unsignde *p;
P=&a[0];
P[ i]+j  為P[ i][j]
實(shí)例26未細(xì)看
返回值是通過(guò)return語(yǔ)句獲得的。
如果函數(shù)無(wú)返回值,需要用void來(lái)聲明。
數(shù)組作為函數(shù)參數(shù)
一個(gè)數(shù)組的名字表示該數(shù)組的首地址,所以用數(shù)組名作為函數(shù)的參數(shù)時(shí)。被傳遞的數(shù)組的首地址,被調(diào)用函數(shù)的參數(shù)的形式須是定義為指針型變量。
用數(shù)組名作為函數(shù)的參數(shù)時(shí),應(yīng)該在主調(diào)函數(shù)和被調(diào)函數(shù)中都進(jìn)行數(shù)組定義。定義的數(shù)組類型必須一致。編譯器不檢查形參數(shù)組的長(zhǎng)度p109函數(shù)??
函數(shù)型指針
一個(gè)函數(shù)在編譯時(shí),就分配了一個(gè)入口地址,這個(gè)入口地址就是函數(shù)的指針,
類型說(shuō)明符 (*指針變量名)(形參列表)
Int (*p)(int a,int b)
(*p)(a,b)
這些需要思考p110頁(yè)

P1=z/256;取得z的高八位
P2=z/256;取得z的低八位????
While(1)
;無(wú)限循環(huán)防止程序跑飛。
實(shí)例30用有參函數(shù)控制p08位流水燈的流水速度
P113實(shí)例31不實(shí)用??、
實(shí)例32 實(shí)例33是不錯(cuò)的c語(yǔ)言程序函數(shù)調(diào)用。練習(xí)c語(yǔ)言p115p116

實(shí)例34不錯(cuò)c語(yǔ)言程序p118
指針數(shù)組適合用來(lái)指向若干個(gè)字符串,尤其是各列字符串長(zhǎng)度不一致的情形,這對(duì)于字符的液晶顯示等很有意義。
實(shí)際運(yùn)用液晶等顯示器顯示字符時(shí),如果液晶的接口通過(guò)P0口和單片機(jī)連接,將各字符串送入p0口,實(shí)際上就是送入液晶顯示器。
實(shí)例35
#include<ctype.h>
P0=isalpha(’_’)?0xf0:0x0f;
內(nèi)部函數(shù)文件instrins.h中有_crol_()函數(shù)
實(shí)例36;應(yīng)用內(nèi)部函數(shù)文件instrins.h中有_crol_()函數(shù)來(lái)點(diǎn)亮P3口8位流水燈
_crol_(15,2)
的返回值為00111100B=0x3c思考他的應(yīng)用
實(shí)例37實(shí)例38感覺(jué)像是介紹函數(shù)以后????c語(yǔ)言應(yīng)用程序卡那可可能看看

C語(yǔ)言編譯預(yù)處理
宏定義c語(yǔ)言允許一個(gè)標(biāo)示符來(lái)表示一個(gè)字符串,稱為宏。
P125宏定義不是c語(yǔ)句,所以不需加分號(hào)。
可以用#undef命令來(lái)終止宏定義的作用域。即對(duì)#undef后面的無(wú)用。為防止歧義應(yīng)加括號(hào)及時(shí)
帶參數(shù)的函數(shù)宏和函數(shù)不同,函數(shù)是先求出實(shí)參表達(dá)式的值,然后代入形參,而帶參數(shù)的宏只是進(jìn)行簡(jiǎn)單的字符替換。
實(shí)例40文件包含應(yīng)用舉例
使用頭文件為#include<AT89X51.h>中有關(guān)特殊功能寄存器的定義
已將P3_0定義為P3.0引腳,直接應(yīng)用P3_0就可以對(duì)P3口進(jìn)行操作了。
實(shí)例41條件編譯應(yīng)用舉例
常用的條件編譯是根據(jù)某常量表達(dá)式的值的是否為真來(lái)控制編譯
即#if   常量表達(dá)式
   程序段1
#else
  程序段2
#endif??思考好的應(yīng)用

第五章單片機(jī)的定時(shí)器計(jì)數(shù)器
當(dāng)加在
定時(shí)器計(jì)數(shù)器T0或T1用作計(jì)數(shù)器時(shí),對(duì)外接晶振產(chǎn)生的振蕩信號(hào)經(jīng)12分頻后,提供給計(jì)數(shù)器,作為計(jì)數(shù)器的脈沖輸入,計(jì)數(shù)器以12分頻后的脈沖周期為基本計(jì)數(shù)單位,對(duì)輸入的脈沖進(jìn)行計(jì)數(shù),直至產(chǎn)生溢出。???
P136頁(yè)到p140頁(yè)有點(diǎn)不懂。工作方式
圖p135T0或T1引腳上的外部脈沖信號(hào)出現(xiàn)一個(gè)由1到0的負(fù)跳變時(shí),計(jì)數(shù)器加1,直至計(jì)數(shù)器溢出。
CPU是按順序進(jìn)行工作的。
實(shí)例42用計(jì)時(shí)器T0查詢方式控制P2口的8位LED閃爍
T0工作于方式1,LED燈的閃爍周期為100ms,即亮50ms,熄滅50ms;
12分頻即頻率被12等分,周期即12除頻率
定時(shí)器的初值設(shè)定需要進(jìn)行計(jì)算,總而言之,就是定時(shí)器必須達(dá)到頂值即65536.
初值需要T0的高八位寄存器TH0和低八位寄存器TL0分別存儲(chǔ)
存儲(chǔ)方法及
TH0=   /256;
TL0=   %256;
溢出標(biāo)志位是否為1若為1表示時(shí)間已到,否則,等待。
//實(shí)例42:用定時(shí)器T0查詢方式P28位控制LED閃爍
#include<reg51.h>        // 包含51單片機(jī)寄存器定義的頭文件
/**************************************************************
函數(shù)功能:主函數(shù)
**************************************************************/
void main(void)
{
  // EA=1;                  //開(kāi)總中斷
//    ET0=1;                 //定時(shí)器T0中斷允許         
      TMOD=0x01;            //使用定時(shí)器T0的模式1
      TH0=(65536-46083)/256; //定時(shí)器T0的高8位賦初值
      TL0=(65536-46083)%256; //定時(shí)器T0的高8位賦初值
      TR0=1;                //啟動(dòng)定時(shí)器T0
      TF0=0;
      P2=0xff;
   while(1)//無(wú)限循環(huán)等待查詢
    {
         while(TF0==0)//查詢標(biāo)志位是否溢出
           ;
            TF0=0;
            P2=~P2;按位取反,實(shí)現(xiàn)led燈的閃爍
       TH0=(65536-46083)/256;  //定時(shí)器T0的高8位賦初值
         TL0=(65536-46083)%256;  //定時(shí)器T0的高8位賦初值
       }
}
TFO 記憶flow溢出
TRO  記憶trigger引起啟動(dòng)
THO 記憶high高八位
TMOD 記憶mode 方式
實(shí)例43,用定時(shí)器t1查詢方式控制單片機(jī)發(fā)出1kHz音頻
//實(shí)例43:用定時(shí)器T1查詢方式控制單片機(jī)發(fā)出1KHz音頻
#include<reg51.h>        // 包含51單片機(jī)寄存器定義的頭文件
sbit sound=P3^7;   //將sound位定義為P3.7引腳
/**************************************************************
函數(shù)功能:主函數(shù)
**************************************************************/
void main(void)
{
  // EA=1;                  //開(kāi)總中斷
//    ET0=1;                 //定時(shí)器T0中斷允許         
      TMOD=0x10;            //使用定時(shí)器T1的模式1
      TH1=(65536-921)/256;  //定時(shí)器T1的高8位賦初值
      TL1=(65536-921)%256;  //定時(shí)器T1的高8位賦初值
      TR1=1;                //啟動(dòng)定時(shí)器T1
      TF1=0;
      while(1)//無(wú)限循環(huán)等待查詢
    {
         while(TF1==0)
           ;
            TF1=0;
           sound=~sound;  //將P3.7引腳輸出電平取反
       TH1=(65536-921)/256;  //定時(shí)器T0的高8位賦初值
          TL1=(65536-921)%256;  //定時(shí)器T0的高8位賦初值
       }
}
//實(shí)例44:將計(jì)數(shù)器T0計(jì)數(shù)的結(jié)果送P1口8位LED顯示
#include<reg51.h>        // 包含51單片機(jī)寄存器定義的頭文件
sbit S=P3^4;   //將S位定義為P3.4引腳
/**************************************************************
函數(shù)功能:主函數(shù)
**************************************************************/
void main(void)
{
  // EA=1;                  //開(kāi)總中斷
//    ET0=1;                 //定時(shí)器T0中斷允許         
      TMOD=0x02;            //使用定時(shí)器T0的模式2
      TH0=256-156;  //定時(shí)器T0的高8位賦初值
      TL0=256-156;  //定時(shí)器T0的高8位賦初值
      TR0=1;                //啟動(dòng)定時(shí)器T0
      while(1)//無(wú)限循環(huán)等待查詢
    {
         while(TF0==0)  //如果未計(jì)滿就等待
        {
           if(S==0)  //按鍵S按下接地,電平為0
                     P1=TL0; //計(jì)數(shù)器TL0加1后送P1口顯示
        }
          TF0=0;  //計(jì)數(shù)器溢出后,將TF0清0
           
       }
}


第六章單片機(jī)的中斷系統(tǒng)

中斷系統(tǒng)
類似寫(xiě)作業(yè)
定時(shí)器計(jì)時(shí)器實(shí)際上就是中斷源。
MCS51單片機(jī)提供5個(gè)中斷源。
外部中斷INT0一橫   編號(hào)0    由P3.2引腳輸入
定時(shí)器T0     編號(hào)1
外部中斷INT1一橫    編號(hào)2    由P3.3引腳輸入
定時(shí)器T1      編號(hào)3
串行口通信中斷RI或TI    編號(hào)4
自然優(yōu)先級(jí)從上到下逐級(jí)遞減。
P150  p151頁(yè)未看
void Time(void) interrupt1 using 0
{
}
//實(shí)例46:用定時(shí)器T0的中斷實(shí)現(xiàn)長(zhǎng)時(shí)間定時(shí)
#include<reg51.h>  //  包含51單片機(jī)寄存器定義的頭文件
sbit D1=P2^0;  //將D1位定義為P2.0引腳
unsigned char Countor; //設(shè)置全局變量,儲(chǔ)存定時(shí)器T0中斷次數(shù)
/**************************************************************
函數(shù)功能:主函數(shù)
**************************************************************/
void main(void)
{
   EA=1;                  //開(kāi)總中斷
      ET0=1;                 //定時(shí)器T0中斷允許         
      TMOD=0x01;             //使用定時(shí)器T0的模式2
      TH0=(65536-46083)/256; //定時(shí)器T0的高8位賦初值
      TL0=(65536-46083)%256; //定時(shí)器T0的高8位賦初值
      TR0=1;                 //啟動(dòng)定時(shí)器T0
      Countor=0;            //從0開(kāi)始累計(jì)中斷次數(shù)
      while(1)//無(wú)限循環(huán)等待中斷
       ;
}
/**************************************************************
函數(shù)功能:定時(shí)器T0的中斷服務(wù)程序
**************************************************************/
void Time0(void)interrupt 1 using 0 //“interrupt”聲明函數(shù)為中斷服務(wù)函數(shù)
                 //其后的1為定時(shí)器T0的中斷編號(hào);0表示使用第0組工作寄存器
{
   Countor++;  //中斷次數(shù)自加1
      if(Countor==20)  //若累計(jì)滿20次,即計(jì)時(shí)滿1s
      {
         D1=~D1;     //按位取反操作,將P2.0引腳輸出電平取反
           Countor=0;  //將Countor清0,重新從0開(kāi)始計(jì)數(shù)
      }
    TH0=(65536-46083)/256;//定時(shí)器T0的高8位重新賦初值
      TL0=(65536-46083)%256; //定時(shí)器T0的高8位重新賦初值
}
定時(shí)器T0工作于方式1時(shí),最大可計(jì)脈沖數(shù)次數(shù)為65536,對(duì)于11。0592MHz的時(shí)鐘頻率。一個(gè)脈沖的寬度為1.085μs,則最大計(jì)時(shí)長(zhǎng)度只有1.085×65536=71107μs即大約71ms,
要想計(jì)時(shí)更長(zhǎng)時(shí)間,采用  軟件計(jì)時(shí)的方法
設(shè)置一個(gè)變量counter 來(lái)存儲(chǔ)定時(shí)器T0的中斷次數(shù),即每產(chǎn)生一次中斷,使變量counter自加1,如果T0每50ms中斷一次,那當(dāng)counter自加20次時(shí),所及時(shí)間為1s。
中斷一次就要重新賦值一次
控制兩個(gè)LED燈以不同的周期閃爍,第一個(gè)LED亮滅時(shí)間為100ms,第二個(gè)LED亮滅時(shí)間為400ms,所以需要設(shè)置兩個(gè)變量counter1 和counter2來(lái)分別統(tǒng)計(jì)中斷次數(shù),且都為最小的整數(shù)倍。
//實(shí)例47:用定時(shí)器T1中斷控制兩個(gè)LED以不同周期閃爍
#include<reg51.h>  //  包含51單片機(jī)寄存器定義的頭文件
sbit D1=P2^0;  //將D1位定義為P2.0引腳
sbit D2=P2^1;  //將D2位定義為P2.1引腳
unsigned char Countor1;//設(shè)置全局變量,儲(chǔ)存定時(shí)器T1中斷次數(shù)
unsigned char Countor2;//設(shè)置全局變量,儲(chǔ)存定時(shí)器T1中斷次數(shù)
/**************************************************************
函數(shù)功能:主函數(shù)
**************************************************************/
void main(void)
{
   EA=1;                  //開(kāi)總中斷
      ET1=1;                 //定時(shí)器T1中斷允許         
      TMOD=0x10;             //使用定時(shí)器T1的模式1
      TH1=(65536-46083)/256; //定時(shí)器T1的高8位賦初值
      TL1=(65536-46083)%256; //定時(shí)器T1的高8位賦初值
      TR1=1;                 //啟動(dòng)定時(shí)器T1
      Countor1=0;            //從0開(kāi)始累計(jì)中斷次數(shù)
      Countor2=0;            //從0開(kāi)始累計(jì)中斷次數(shù)
      while(1)//無(wú)限循環(huán)等待中斷
       ;
}
/**************************************************************
函數(shù)功能:定時(shí)器T1的中斷服務(wù)程序
**************************************************************/
void Time1(void)interrupt 3 using 0 //“interrupt”聲明函數(shù)為中斷服務(wù)函數(shù)
                 //其后的3為定時(shí)器T1的中斷編號(hào);0表示使用第0組工作寄存器
7
   Countor1++;  //Countor1自加1
      Countor2++;   //Countor2自加1
      if(Countor1==2)  //若累計(jì)滿2次,即計(jì)時(shí)滿100ms
           {
              D1=~D1;     //按位取反操作,將P2.0引腳輸出電平取反
                 Countor1=0; //將Countor1清0,重新從0開(kāi)始計(jì)數(shù)
           }
      if(Countor2==8)  //若累計(jì)滿8次,即計(jì)時(shí)滿400ms
           {
              D2=~D2;     //按位取反操作,將P2.1引腳輸出電平取反
                 Countor2=0; //將Countor1清0,重新從0開(kāi)始計(jì)數(shù)
           }         
    TH1=(65536-46083)/256;//定時(shí)器T1的高8位重新賦初值
      TL1=(65536-46083)%256; //定時(shí)器T1的高8位重新賦初值
}
實(shí)現(xiàn)方法
先開(kāi)總中斷EA 分支中斷ET?,選擇方式,賦初值 ,啟動(dòng)定時(shí)器T?,聲明



音調(diào)與頻率的關(guān)系
  音調(diào)
  
  低1
  
  低2
  
  低3
  
  低4
  
  低5
  
  低6
  
  低7
  
  頻率
  
  262
  
  294
  
  330
  
  349
  
  392
  
  440
  
  494
  
  音調(diào)
  
  中1
  
  中2
  
  中3
  
  中4
  
  中5
  
  中6
  
  中7
  
  頻率
  
  523
  
  587
  
  659
  
  698
  
  784
  
  880
  
  988
  
  音調(diào)
  
  高1
  
  高2
  
  高3
  
  高4
  
  高5
  
  高6
  
  高7
  
  頻率
  
  1046
  
  1175
  
  1318
  
  1397
  
  1568
  
  1760
  
  1967
  

由于單片機(jī)的輸入輸出口只有高電平1和低電平0,因此向蜂鳴器輸送的電平信號(hào)實(shí)際是就是該音頻的方波。例如中音頻率523Hz,他的周期為1÷523秒,即1。93ms只要向蜂鳴器輸送周期為1.91ms的脈沖方波電平信號(hào)就能發(fā)出523Hz的音調(diào),該方波的半周期為1.91÷2=0.995ms。為此,需要利用定時(shí)器的中斷,讓輸送給蜂鳴器的電平信號(hào)每0。955ms取反一次即可,由于本書(shū)使用的單片機(jī)晶振為11.0952mhz,他的機(jī)器周期為12×(1÷11。0592)=1.085μs。因此需要的機(jī)器周期總數(shù)為
995μs÷1.085μs=880
定時(shí)器的定時(shí)常數(shù)為880
C=10^6μs除2f÷1.085μs=460830÷頻率
THO=(8192-C)÷32???
每分鐘為72節(jié)拍,每節(jié)拍1000×60ms÷72=833ms
//實(shí)例49:用定時(shí)器T0的中斷實(shí)現(xiàn)"渴望"主題曲的播放
#include<reg51.h>   //包含51單片機(jī)寄存器定義的頭文件
sbit sound=P3^7;    //將sound位定義為P3.7
unsigned int C;     //儲(chǔ)存定時(shí)器的定時(shí)常數(shù)
//以下是C調(diào)低音的音頻宏定義
#define l_dao 262   //將“l(fā)_dao”宏定義為低音“1”的頻率262Hz
#define l_re 286    //將“l(fā)_re”宏定義為低音“2”的頻率286Hz
#define l_mi 311    //將“l(fā)_mi”宏定義為低音“3”的頻率311Hz
#define l_fa 349    //將“l(fā)_fa”宏定義為低音“4”的頻率349Hz
#define l_sao 392   //將“l(fā)_sao”宏定義為低音“5”的頻率392Hz
#define l_la 440    //將“l(fā)_a”宏定義為低音“6”的頻率440Hz
#define l_xi 494    //將“l(fā)_xi”宏定義為低音“7”的頻率494Hz
//以下是C調(diào)中音的音頻宏定義
#define dao 523     //將“dao”宏定義為中音“1”的頻率523Hz
#define re 587      //將“re”宏定義為中音“2”的頻率587Hz
#define mi 659      //將“mi”宏定義為中音“3”的頻率659Hz
#define fa 698      //將“fa”宏定義為中音“4”的頻率698Hz
#define sao 784     //將“sao”宏定義為中音“5”的頻率784Hz
#define la 880      //將“l(fā)a”宏定義為中音“6”的頻率880Hz
#define xi 987      //將“xi”宏定義為中音“7”的頻率523H      
//以下是C調(diào)高音的音頻宏定義
#define h_dao 1046     //將“h_dao”宏定義為高音“1”的頻率1046Hz
#define h_re 1174      //將“h_re”宏定義為高音“2”的頻率1174Hz
#define h_mi 1318      //將“h_mi”宏定義為高音“3”的頻率1318Hz
#define h_fa 1396     //將“h_fa”宏定義為高音“4”的頻率1396Hz
#define h_sao 1567    //將“h_sao”宏定義為高音“5”的頻率1567Hz
#define h_la 1760     //將“h_la”宏定義為高音“6”的頻率1760Hz
#define h_xi 1975     //將“h_xi”宏定義為高音“7”的頻率1975Hz
/*******************************************
函數(shù)功能:1個(gè)延時(shí)單位,延時(shí)200ms
******************************************/
void delay()               
   {
     unsigned char i,j;
        for(i=0;i<250;i++)
          for(j=0;j<250;j++)
                     ;
   }
/*******************************************
函數(shù)功能:主函數(shù)
******************************************/     
void main(void)
  {
  unsigned char i,j;                                             
//以下是《渴望》片頭曲的一段簡(jiǎn)譜
   unsigned  int code f[]={re,mi,re,dao,l_la,dao,l_la,   //每行對(duì)應(yīng)一小節(jié)音符
                          l_sao,l_mi,l_sao,l_la,dao,
                                             l_la,dao,sao,la,mi,sao,
                                             re,                        
                                             mi,re,mi,sao,mi,
                                             l_sao,l_mi,l_sao,l_la,dao,
                           l_la,l_la,dao,l_la,l_sao,l_re,l_mi,
                                                  l_sao,
                                                  re,re,sao,la,sao,
                                                  fa,mi,sao,mi,
                                                  la,sao,mi,re,mi,l_la,dao,
                                                  re,
                                                  mi,re,mi,sao,mi,
                                                  l_sao,l_mi,l_sao,l_la,dao,
                                                  l_la,dao,re,l_la,dao,re,mi,
                                                  re,
                                                  l_la,dao,re,l_la,dao,re,mi,
                                                  re,
                                                  0xff}; //以0xff作為音符的結(jié)束標(biāo)志                           
//以下是簡(jiǎn)譜中每個(gè)音符的節(jié)拍
//"4"對(duì)應(yīng)4個(gè)延時(shí)單位,"2"對(duì)應(yīng)2個(gè)延時(shí)單位,"1"對(duì)應(yīng)1個(gè)延時(shí)單位
unsigned char code JP[]={4,1,1,4,1,1,2,  
                     2,2,2,2,8,
                                       4,2,3,1,2,2,
                                        10,
                                       4,2,2,4,4,
                                       2,2,2,2,4,
                     2,2,2,2,2,2,2,
                                       10,
                                       4,4,4,2,2,
                                       4,2,4,4,
                                       4,2,2,2,2,2,2,
                                       10,
                                       4,2,2,4,4,
                                       2,2,2,2,6,
                                       4,2,2,4,1,1,4,
                                       10,
                                       4,2,2,4,1,1,4,
                                       10
                                       };
         EA=1;         //開(kāi)總中斷
         ET0=1;        //定時(shí)器T0中斷允許
      TMOD=0x00;    // 使用定時(shí)器T0的模式1(13位計(jì)數(shù)器)
         while(1)       //無(wú)限循環(huán)
            {
                  i=0;   //從第1個(gè)音符f[0]開(kāi)始播放
           while(f[ i]!=0xff)            //只要沒(méi)有讀到結(jié)束標(biāo)志就繼續(xù)播放
                    {
              C=460830/f[ i];      
              TH0=(8192-C)/32;   //可證明這是13位計(jì)數(shù)器TH0高8位的賦初值方法
              TL0=(8192-C)%32;   //可證明這是13位計(jì)數(shù)器TL0低5位的賦初值方法
              TR0=1;             //啟動(dòng)定時(shí)器T0
                       for(j=0;j<JP[ i];j++)  //控制節(jié)拍數(shù)
                  delay();          //延時(shí)1個(gè)節(jié)拍單位
                         TR0=0;                  //關(guān)閉定時(shí)器T0
                     i++;                 //播放下一個(gè)音符
                     }                                               
           }               
}
/***********************************************************
函數(shù)功能:定時(shí)器T0的中斷服務(wù)子程序,使P3.7引腳輸出音頻的方波
************************************************************/
void Time0(void ) interrupt 1 using 1  
  {
    sound=!sound;      //將P3.7引腳輸出電平取反,形成方波  
    TH0=(8192-C)/32;   //可證明這是13位計(jì)數(shù)器TH0高8位的賦初值方法
    TL0=(8192-C)%32;   //可證明這是13位計(jì)數(shù)器TL0低5位的賦初值方法
  }
           
           、
實(shí)例51
本例用單片機(jī)U1P14引腳輸出正脈寬為250μs的方波,再利用單片機(jī)U2into引腳檢測(cè),驗(yàn)證方波的正脈沖寬度,有點(diǎn)沒(méi)看懂
//實(shí)例51-2:定時(shí)器T0的模式2測(cè)量正脈沖寬度
#include<reg51.h>   //包含51單片機(jī)寄存器定義的頭文件
sbitui=P3^2;  //ui位定義為P3.0INT0)引腳,表示輸入電壓
/*******************************************
函數(shù)功能:主函數(shù)
******************************************/     
void main(void)
  {
    TMOD=0x0a;   // TMOD=0000 1010B,使用定時(shí)器T0的模式2GATE1
    EA=1;         //開(kāi)總中斷
       ET0=0;       //不使用定時(shí)器T0的中斷     
       TR0=1;       //啟動(dòng)T0
       TH0=0;       //計(jì)數(shù)器T08位賦初值
       TL0=0;       //計(jì)數(shù)器T08位賦初值
       while(1)      //無(wú)限循環(huán),不停地將TL0計(jì)數(shù)結(jié)果送P1
     {
         while(ui==0)  //INT0為低電平,T0不能啟動(dòng)
             ;
            TL0=0;      //INT0為高電平,啟動(dòng)T0計(jì)時(shí),所以將TL00
            while(ui==1) //INT0高電平期間,等待,計(jì)時(shí)
              ;
           P1=TL0;    //將計(jì)時(shí)結(jié)果送P1口顯示      
      }
}

           

//實(shí)例51-1:輸出正脈寬為250微秒的方波
#include<reg51.h>   //包含51單片機(jī)寄存器定義的頭文件
sbit u=P1^4;    //將u位定義為P1.4
/*******************************************
函數(shù)功能:主函數(shù)
******************************************/     
void main(void)
  {
   TMOD=0x02;            //TMOD=0000 0010B,使用定時(shí)器T0的模式2
   EA=1;                    //開(kāi)總中斷
      ET0=1;                 //定時(shí)器T0中斷允許         
      TH0=256-250;   //定時(shí)器T0的高8位賦初值
      TL0=256-250;  //定時(shí)器T0的高8位賦初值
      TR0=1;                 //啟動(dòng)定時(shí)器T0
      while(1)               //無(wú)限循環(huán),等待中斷
       ;
}
/**************************************************************
函數(shù)功能:定時(shí)器T0的中斷服務(wù)程序
**************************************************************/
void Time0(void)interrupt 1 using 0 //"interrupt"聲明函數(shù)為中斷服務(wù)函數(shù)
{
   u=~u; //將P1.4引腳輸出電平取反,產(chǎn)生方波

}
           
7
MCS51單片機(jī)串行4中工作方式??、
為了能夠在計(jì)算機(jī)端看到單片機(jī)發(fā)出的數(shù)據(jù),較好的方法是借助于調(diào)試軟件“串口調(diào)試助手”
8
P197頁(yè)圖
9
I^2C總線是Inter Integrated Circuit Bus 內(nèi)部集成電路總線

千萬(wàn)不要認(rèn)為只要程序?qū)α耍瑔纹瑱C(jī)就可以永遠(yuǎn)正確運(yùn)行,實(shí)際工作環(huán)境的各種干擾會(huì)導(dǎo)致單片機(jī)死機(jī)。
X5045
具有上電復(fù)位和降壓管理的功能,還具有看門(mén)狗定時(shí)器和具有塊保護(hù)功能的串行EEPROM
上電復(fù)位;上電就產(chǎn)生復(fù)位信號(hào),
看門(mén)狗; 規(guī)定時(shí)間沒(méi)有電平信號(hào) 就產(chǎn)生復(fù)位信號(hào),利用該功能可以讓單片機(jī)死機(jī)后自動(dòng)重新復(fù)位

10
A/D轉(zhuǎn)換器;逐次逼近(常用) 雙積分牛但慢 并行
紅外信號(hào)接收
紅外發(fā)射部分包括鍵盤(pán)矩陣,編碼調(diào)制 LED紅外發(fā)送器 接收器包括光電轉(zhuǎn)換放大器
解調(diào)電路 解碼電路
  
中斷定時(shí)器程序其實(shí)隱藏了調(diào)用。
定時(shí)中斷一次還需重新賦值一次。
void Time0(void)interrupt 1 using 1每個(gè)字符都要空格
LED0=!LED0;  //P3.0引腳取反
While(1)前面賦值確定原先的狀態(tài)
判斷端口是否是低電平應(yīng)該這樣if(S1==0)
而不是if(S1=0)
函數(shù)功能:鍵盤(pán)掃描子程序
**************************************************/
void key_scan(void)
{
if((P1&0xf0)!=0xf0)         //第一次檢測(cè)到有鍵按下
                {
                      delay30ms();   //延時(shí)20ms再去檢測(cè)
                            if(S1==0)      //按鍵S1被按下
                             keyval=1;
                            if(S2==0)      //按鍵S2被按下
                             keyval=2;
                            if(S3==0)      //按鍵S3被按下
                             keyval=3;
                          if(S4==0)     //按鍵S4被按下
                             keyval=4;
sbit S1=P1^4;        //將S1位定義為P1.4引腳
sbit S2=P1^5;        //將S2位定義為P1.5引腳
sbit S3=P1^6;        //將S3位定義為P1.6引腳
sbit S4=P1^7;        //將S4位定義為P1.7引腳
有零則與邏輯與一起必然為零               }        


完整的Word格式文檔51黑下載地址:
51單片機(jī)c語(yǔ)言總結(jié).doc (143.5 KB, 下載次數(shù): 40)



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏4 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:696451 發(fā)表于 2020-2-22 11:40 | 只看該作者
你好。。。。。。
回復(fù)

使用道具 舉報(bào)

板凳
ID:375003 發(fā)表于 2020-2-22 17:25 | 只看該作者
這個(gè)51單片機(jī)語(yǔ)言總結(jié)的好
回復(fù)

使用道具 舉報(bào)

地板
ID:696708 發(fā)表于 2020-2-22 20:50 | 只看該作者
很不錯(cuò)的啊,很好
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表