久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11526|回復: 2
打印 上一主題 下一主題
收起左側

C51單片機基礎知識整理(部分)

[復制鏈接]
跳轉到指定樓層
樓主
ID:743558 發表于 2021-4-24 10:10 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
雖然學習這一門新的語言充滿種種困難,但是只有困難的東西才值得去學習,去突破,由學習知識到熱愛知識再到使用知識,掌握一門有區分度的知識這才是以后工作的堅實后盾,加油!
第一部分基礎知識
1單片機定義
2單片機結構
3基本的關系與計算
4基本數據類型
5基本語句
必會知識點:
1掌握單片機最小系統運作的必要條件(電源 晶振 復位電路)
2掌握對單片機I/O接口的操作(輸出控制電平高低 輸入檢測電平高低)
3定時器 (重點掌握最常用方式2
4中斷  (掌握外部中斷,定時中斷,串口中斷)
5串口通信(掌握單片機之間的通信,單片機與計算機之間的通信)
第一部分——基礎
1單片機定義:單片機就是在一片硅片上集成微處理器,存儲器及各種輸入輸出端口芯片,這塊芯片具有計算機的屬性所以被稱為單片微型計算機,簡稱單片機。
解釋:通俗地講就是一塊集成芯片,但這個集成芯片有特殊功能,這些功能的實現是靠使用者自己來編程控制各個引腳在不同時候輸出不同電平,進而控制外圍電路電氣狀態。
2各類有代表性的51芯片
公司
                      產品
ATAtmel
AT89C51  AT89C52  
Intel(英特爾)
i87C54   i87C58
STC
STC89C51RC  STC89C52RC  
芯片標號解釋:STC89C51RC 40C-PDIP 0707CU813.00D
STC——表示STC公司的產品
8——表示該芯片為8051內核芯片
9——內部含有flash 存儲器  0表示內部含有Mask ROM存儲器  7表示內含有紫外線可擦除存儲器
C——表示該器件為CMOS 產品  LVLE表示該芯片為低壓產品 S表示含有可串行下載flash存儲器
5——固定不變
1——表示該芯片內部程序存儲空間大小14KB,28KB,程序存儲空間(ROM=n4KB
RC——內部隨機讀寫存儲器(RAM)為512B  RD+表示內部RAM1280B
40——芯片外最高接入40MHZ晶振 AT單片機一般是24
C——產片級別 C表示商業級,溫度范圍0-70  I表示工業級,溫度范圍-40-85
              A表示汽車用產品  溫度范圍-40-125 M 軍用產品  溫度范圍-55-150
PDIP——雙列直插式封裝 PLCC 塑料封裝 QFP,PFP塑料扁平式封裝 PGA 插針網絡陣列封裝 BGA 球柵陣列封裝
單片機應用:
智能儀表:數字示波器 數字萬用表   通信:手機  小靈通
武器裝備:飛機 軍艦 坦克 魚雷制導
單片機學習方法:
1首先51單片機作為入門芯片,適合初學者學。
2只用軟件仿真是學不會單片機的,要把硬件擺在面前(開發板)親自操作,體會。
3不能只看書,也不能不看書,需要大致了解單片機各個引腳功能,了解寄存器。
4實踐最重要,自己買一塊單片機開發板只需要有流水燈,數碼管,鍵盤(獨立,矩陣),A\D,D\A轉換,液晶,I2R總線,USB擴展就夠了
單片機有40個引腳,按照功能可以分為三類:
電源及時鐘引腳:VCC GND XTAL1 XTAL2(必會)
I/O口引腳:   P1 P2 P3 四組8I/O接口(必會)
編程控制引腳:RST PSEN ALE\PROG EA/VPP(了解)
XTAL1 片內振蕩電路輸入端,XTAL2 片內振蕩電路輸出端
8051芯片時鐘振蕩有兩種方式:
1片內振蕩 兩個引腳接石英晶體振蕩器和電容(10PF-30PF
2外部時鐘 外部時鐘信號從XTAL2XTAL1 接地
I/O口引腳——P0P1P2P3
P0口(39-32腳)
每個口可獨立控制,無內置上拉電阻,使用時需要外接
P1口(1-8腳)
每個口可獨立控制, 內置上拉電阻 ,使用時需要進行寫1操作
P2口(21-28腳)
P0
P3口(10-17
P1
P3引腳第二功能定義
標號
引腳
第二功能
說明
P3.0
10
RXD
串行輸入
P3.1
11
TXD
串行輸出
P3.2
12
TNT0\
外部中斷0
P3.3
13
TNT1\
外部中斷1
P3.4
14
T0
定時器/計數器0外部輸入端
P3.5
15
T1
定時器/計數器1外部輸入端

電平特性
數字電路只有兩種電平高電平1和低電平0
TTL型集成:+5V1  0V0
CMOS型集成:VCC可達12V,高電平為0.9VCC 低電平為0.1VCC
二進制和十六進制
十進制
二進制
十六進制
十進制
二進制
十六進制
0
0
0
8
1000
8
1
1
1
9
1001
9
2
10
2
10
1010
A
3
11
3
11
1011
B
4
100
4
12
1100
C
5
101
5
13
1101
D
6
110
6
14
1110
E
7
111
7
15
1111
F
二進制邏輯運算

必須都有,否則就沒有  C語言中的符號 & 運算規則:0&0=0&1=1&0=0 1&1=1

只要其中之一有就有 C語言中的符號 | 運算規則: 0|1=1|0=1|1=1  0|0=0

求反運算          C語言中的符號 ! 運算規則: !1=0 0=1

C51中的基本數據類型
作用:設定變量前要聲明這個變量類型,好讓單片機分配合適的存儲空間
數據類型
關鍵字
所占位數
表示數范圍
無符號字符型
unsigned char
8
0-255
有符號字符型
char
8
-128-127
無符號整型
unsigned int
16
0-65535
有符號整型
int
16
-32768-32767
無符號長整型
Unsigned long
32


無符號長整型
long
32


單精度實型
float
32


雙精度實型
double
64


位類型
bit
1
0-1

二進制兩個數每個數所占空間就是1位(b)位也是單片機存儲器最小的單位 字節B1B=8b
floatdouble區別:float只能提供7位有效數字,double可以提供6位有效數字。
數據類型擴充定義:
背景:當我們需要在程序中操作這些特殊功能寄存器時,必須在程序最前面將這些名稱加以聲明,就是把寄存器器地址編碼賦給這個名稱,這樣編譯器才認識。
sbit ——特殊功能位聲明,聲明某個特殊寄存器的某一位
C51中的運算符
分為算術運算符 邏輯運算符 位運算符
算術運算符
邏輯運算符
位運算符
  算術運算符
含義
邏輯運算符
含義
位運算符
含義
+
>
大于
&
邏輯與
-
<
小于
!
邏輯或
*
>=
大于等于
^
異或
/
<=
小于等于
~
取反
++
自加
==
測試相等
>>
左移
--
自減
=
測試不等
<<
右移
%
求余
& &
按位與








||
按位或








!




C51中的基礎語句
語句
類型
If
選擇語句
while
循環語句
for
循環語句
switch/case
多分支選擇語句
do-while
循環語句
for 語句
格式:for(表達式1;表達式2;表達式3
        {語句(可以為空)}
執行過程:
1求解第一次表達式1
2求解表達式2,若為真則執行for中的語句,然后執行第3步,否則結束for語句,直接跳出,不執行第3
3第三步:求解表達式3
4步:跳到第2步重復執行
delayms(uint xms)
{
uint  i,j;
for(i=xms;i>0;i--)
     for(j=110;j>0;j--);     //延時xms
}

while()語句
格式:while(表達式)
      {內部語句(內容可為空)}
特點:先判斷表達式,后執行語句
原則:若表達式不為0即為真,執行語句,否則跳出while循環,執行后面語句
應用:1讓程序停止   while(1);
      2不停地執行某段程序
      while1
      {
P0=0xfe;
      }
If語句
格式:if(表達式)
      {內部語句}
特點:如果條件表達式為真(非0值),就執行后面的語句;如果條件表達式為假(0值),就不執行后面的語句
解釋:使用條件語句if可以構成分支結構,它通過用戶給定的條件進行判斷,根據判斷的結果決定執行不同的分支程序
if(key1=0)        //如果key=1(按下S2鍵)
{
  delayms(10);    //延時去抖
  if(key1=0);  //再次檢測按鍵是否按下,如果按下
   {
num++;          //數字自加1
if(num=60)     //如果數字與60測試相等
     num=0;    //則回到0
while(!key1);  //等待按鍵釋放
}
}



switch-case語句
背景;if語句一般用來處理兩個分支,處理多個分支需要用if—else—if結構,但若分支較多,就要用switch語句,又稱開關語句,switch語句可以直接處理多個分支
格式:
switch(表達式)
{
  case常量表達式1:(注意這里是“:”)       執行過程:   
語句1;                                首先計算switch后面表達式的值
break;                                用此值一次與各個case后常量表達式比較
case常量表達式2:   如果此值與某個case后面常量表達式值相等就執行此case后語句
語句2;            當執行遇到break語句就退出switch語句                  
break;      若表達式值與所有case后面表達式都不相等則執行default后語句并退出
......
case常量表達式n:
語句n;
break;
default:
  語句n+1;
  break;
}
應用:根據輸入考試成績的等級,輸出百分制分數段
switch(grade)
{
caseA:
   printf(85-100\n)
   break;
caseB:
   printf(70-84\n);
   break;
caseC:
   printf(60-69\n);
   break;
caseD:
   printf(<60\n);
   break;
default:
   printf(error!\n);
}

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:789476 發表于 2021-4-25 16:38 | 只看該作者
整理的非常詳細,作為小白的我 很容易看懂。
回復

使用道具 舉報

板凳
ID:289013 發表于 2021-4-28 18:49 | 只看該作者
這篇是精華!很全面!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美成人精品一区 | 九九久久精品视频 | 久久久免费 | 成人乱人乱一区二区三区软件 | 久久香蕉精品视频 | 亚洲网站在线播放 | www.jizzjizz| 欧美成人精品欧美一级 | 精品视频免费 | 韩日三级 | 美女久久视频 | 精品国产18久久久久久二百 | 亚洲精品视频免费看 | 午夜影晥| 亚洲精品在线看 | 国产十日韩十欧美 | 精品国产青草久久久久福利 | 欧美日韩一区在线播放 | 亚洲国产福利视频 | 亚洲aⅴ | 人妖一区 | 在线观看欧美日韩视频 | 日韩在线视频播放 | av中文字幕在线观看 | 99久久夜色精品国产亚洲96 | 一级片在线视频 | 亚洲精品高清视频在线观看 | 日日天天| 国产一区不卡 | 日韩免费av| 一区观看 | 国产这里只有精品 | 一区二区三区四区电影视频在线观看 | 亚洲成人免费av | 欧美精品一区二区在线观看 | 91精品国产色综合久久不卡蜜臀 | 欧美日本一区二区 | 91国内精品久久 | 91福利网| 拍拍无遮挡人做人爱视频免费观看 | 精品国产99 |