學習51單片機雜記2

 1、與的運算符爲“·”,運算規律:0·0=0  0·1=0  1·1=1

2、或得運算符爲“+”
3、PO=0x7f;//P0.7亮     
4、使用循環左移、循環右移,需要#include <intrins.h>頭文件
5、鎖存器74HC573
6、在keil中不可以寫for(int i=0;i<10;i++),在for循環中,不可以初始化i。
7、寫流水燈是,應該爲:
P0=0xfe;
for(i=0;i<8;i++)
{
P0=_cror_(P0,1);
delay(50);
}
而不能爲:
for(i=0;i<7;i++)
{
P0=0xfe;
P0=_cror_(P0,1);
delay(50);
}
8、不能創建sbit類型的數組
9、二極管有八個,P0=0xfe;已經點亮一個燈,因此,只需循環右移7次。
P0=0xfe;
delay(50);
for(i=0;i<7;i++)
{
P0=_cror_(P0,1);
delay(50);
}
10、
0x3f  , 0x06 , 0x5b , 0x4f , 0x66 , 0x6d ,
   0  1 2     3      4       5
0x7d , 0x07 , 0x7f  , 0x6f , 0x77 , 0x7c ,
   6  7 8  9    A     B
0x39 , 0x5e , 0x79 , 0x71 , 0x00
   C     D      E      F     無顯示
11、uchar code table[]={};code (編碼表)編譯完放在程序存儲區中,不用放在隨機存儲器中。
隨機存儲器有限(數據存儲器),51爲128字節,RAM
uint 2字節,uchar 1字節
12、8051有5哥中斷源,8052有6個,可以實現二級中斷嵌套
5箇中斷源:INTO、T0、INT1、T1、(TX和TX)。共5個
13、EA中斷允許總控制器。EA=0,關閉。EA=1,開啓。
14、中斷響應條件
 中斷源有中斷請求;
 此中斷源的中斷允許位爲1;
 CPU開中斷(即EA=1)。
15、所有可以被8整除的可以直接位尋址
16、在頭文件中,已經有定義sbit EA=IE^7;
17、IT0=1;與TCON=0x01;等效。都是讓中斷以跳變沿觸發
18、定時/計數器的實質是加1計數器(16位),由高8位和低8位兩個寄存器組成。TMOD是定時/計數器的工作方式寄存器,確定工作方式和功能;TCON是控制寄存器,控制T0、T1的啓動和停止及設置溢出標誌。
19、由溢出時計數器的值減去計數初值纔是加1計數器的計數值。
20、中斷子程序中interrupt後
0代表外部中斷0
1定時/計數器0
2代表外部中斷1
3定時/計數器1
4代表串行口
21、初始化程序應完成如下工作:
對TMOD賦值,以確定T0和T1的工作方式。
計算初值,並將其寫入TH0、TL0或TH1、TL1。
中斷方式時,則對IE賦值,開放中斷。
使TR0或TR1置位,啓動定時/計數器定時或計數。
22、工作方式寄存器TMOD
工作方式寄存器TMOD用於設置定時/計數器的工作方式,低四位用於T0,高四位用於T1。其格式如下:
GATE、C/T、M1、M0、GATE、C/T、M1、M0
23、GATE:門控位。GATE=0時,只要用軟件使TCON中的TR0或TR1爲1,就可以啓動定時/計數器工作;GATA=1時,要用軟件使TR0或TR1爲1,同時外部中斷引腳或也爲高電平時,才能啓動定時/計數器工作。即此時定時器的啓動多了一條件。
c/t:定時/計數模式選擇位。c/t=0爲定時模式;c/t=1爲計數模式。
M1M0:工作方式設置位。定時/計數器有四種工作方式,由M1M0進行設置。
24、M1M0:
00 方式0 13位定時/計數器
01 方式1 16位定時/計數器
10 方式2 8位自動重裝定時/計數器
11 方式3 T0分爲兩個獨立的8位定時/計數器;T1此方式停止計數
25、中斷允許控制
CPU對中斷系統所有中斷以及某個中斷源的開放和屏蔽是由中斷允許寄存器IE控制的。
IE:
EX0(IE.0),外部中斷0允許位;
ET0(IE.1),定時/計數器T0中斷允許位; 
EX1(IE.2),外部中斷0允許位;
ET1(IE.3),定時/計數器T1中斷允許位;
ES(IE.4),串行口中斷允許位;
EA (IE.7), CPU中斷允許(總允許)位。
26、TCON的低4位用於控制外部中斷,已在前面介紹。TCON的高4位用於控制定時/計數器的啓動和中斷申請。其格式如下:
TF1、TR1、TF0、TF0
TF1(TCON.7):T1溢出中斷請求標誌位。T1計數溢出時由硬件自動置TF1爲1。CPU響應中斷後TF1由硬件自動清0。T1工作時,CPU可隨時查詢TF1的狀態。所以,TF1可用作查詢測試的標誌。TF1也可以用軟件置1或清0,同硬件置1或清0的效果一樣。
TR1(TCON.6):T1運行控制位。TR1置1時,T1開始工作;TR1置0時,T1停止工作。TR1由軟件置1或清0。所以,用軟件可控制定時/計數器的啓動與停止。
TF0(TCON.5):T0溢出中斷請求標誌位,其功能與TF1類同。
TR0(TCON.4):T0運行控制位,其功能與TR1類同。
27、具體程序如下:
void main()中:
TMOD=0x01;//設置定時器0爲工作方式1
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;//開總中斷
ET0=1;//開定時器0中斷
TR0=1;//啓動定時器0
中斷子程序:
void exter0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
tt++;
}
28、void timer0() interrupt 1 using 0  //using 0表示使用第0組通用寄存器,一共有7組.分別爲P0~P7
發佈了45 篇原創文章 · 獲贊 6 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章