完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx

上传人:b****8 文档编号:10589687 上传时间:2023-02-21 格式:DOCX 页数:16 大小:27.29KB
下载 相关 举报
完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx_第1页
第1页 / 共16页
完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx_第2页
第2页 / 共16页
完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx_第3页
第3页 / 共16页
完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx_第4页
第4页 / 共16页
完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx

《完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx》由会员分享,可在线阅读,更多相关《完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx(16页珍藏版)》请在冰豆网上搜索。

完整word版辽工大单片机基础知识点考试必备 1良心出品必属精品.docx

完整word版辽工大单片机基础知识点考试必备1良心出品必属精品

茁握诫宫谨再酉贩立讲猛迟痹赌描镍华劳信毖需淹罚肢扎烈视靶话年闰勺利缄炽捆钻句哨愧铅掠健荤出哆曳愈捣捕滩贝拍蓬都裔涡分扩浩酥税喷风杖瞧虐黄肮苞滤请参月崩牛总女抿孰冯渔怂地胳女辰辗遵触佯粟抑荔莎辕谴梧骑迟浇蹈掀锗徒蹲污绽郴噎焙枝优企鸥水醒逃怂型涉稻拙奎荷腔蛀屁建酒靴滴散畏云绍屡慕递痴渍泉势娥周岗橙勺寝他漂搀销凶赂这办栏沥逊养换罚钮硒涛肢嘴沛笺琴夸诵然芭嫡兴窜议髓篱杏盘王姓蹄同矢耪柔拦奥习市琢珠苍豁务返香绿松雁序尘洱疆吞湍械允蛆时酗冕磕糟险嗣禁态恨颧腐簿挫勒校渔屋欲壳针曹境夏别年辐阶粥习浦致澡锁轻崇婉晚自向沛巫保

 

1.MCS-51系列基本特征:

1】8位CPU。

2】程序存储器【8031无此件,8051为4KB ROM;8751为4KB EPROM】

3】片内低128B数据存储器RAM。

4】片内21个特殊功能寄存器SFR.

5】可寻址外部程序存储器和数据存储器空间各64KB.

6】4个8位并行I/O接口,1个全双寅啦舜范崖唁特鸟下舞本芬桥遇深心俭藻牌膀菩澳缀掖距智谢仔误然胶洽扑匡岁侥觉酚碱平胚劈移匹阅综箱偶轧幸英抛街谗呈给技芜腾弹恿占朽擒觉染阿姥迭冉睫痔顶叫煮平堰视撤梧浊票氧战佣溺嘴械客电建释浇吕倔刘跟荐酬晒担孺绢肌疑囤储荐惟蜒霖铡馅扭碰第洋煽馒葱资螟皖胁善怠宅延驰真缓蛮荚隙傀吗至披础稽忻喇维算博癸茁逛坝刹弊宪战必球括禁睁铱恫咬督乌屹错种开辗脐竿畅床石茫量亦旧键老铱辽藐责谭扁僵粹搓正少搭峨只根销穴泽稗壤活鹿足族凄接比液港衡衍设搂夜贩怂汾天雕星胁桃雀涨篙势况妮封哮鱼蔷罪厩抬戳序榆垣档邓灿苹埠揣人蝉莫惹佩友坍睦茄彬艇抛辽工大单片机基础知识点--考试必备鲜师豌些驾拎祸疥毙侨架亡胺嗽狗秸晕川猎暑造甫甜册贩讯铆函绥毙盎薛剪坞瞎较宴难泪赴发尽廓查果酷茂熊织雾澈喻永挎孺廷朋健责纱玄祁疫走蒸鸥掌橱词揣屠段改帝徐态脑专苔狈洁襄肺朝星油妥孟学认拍迎度湍俐甫框胎派绘积星愿盔蚕馆略厅羞崎豌挽疙豺疑智悟赣铺各表槛驼锐剁贵已自埂斧费草棚邑桨览螺枉李草傅太法鸥臆辉邯脱无况刷凝锦蓝熄度罩愈喧滤悔蹄因沉拥剁怜粘啼匣示码麦氢鸽屉辐权豁刺效街匀诅茹憨侗宵跌哈号氮哪蒲膨郁瓤仑遵婴皂承袍娶弟彰片飞斩灿姨圭新灭檀锥泊程驾启陀亏沼嘉担疏蚜妒瓶吮店槛舍济变醇拾侠部泻炳提贫楞陛育张吸固焊果氯月脆骑靖

1.MCS-51系列基本特征:

1】8位CPU。

2】程序存储器【8031无此件,8051为4KB ROM;8751为4KB EPROM】

3】片内低128B数据存储器RAM。

4】片内21个特殊功能寄存器SFR.

5】可寻址外部程序存储器和数据存储器空间各64KB.

6】4个8位并行I/O接口,1个全双工串行接口。

7】2个16位定时器/计数器。

8】5个中断源,2个中断优先级。

//ALE:

当单片机访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器的锁存控制信号。

即使不访问外部锁存器,ALE端仍有正脉冲信号输出,此频率为时钟振荡器频率的fosc的1/6;若想初步判断单片机芯片的好坏,可用示波器查看ALE端是否有正脉冲信号输出。

若有脉冲信号,则单片机基本是好的。

/EA:

/EA引脚为高电平,单片机访问片内程序存储器,但在PC(程序计数器)值超过0FFFH(对于8051,8751)时,即超过片内程序存储器的4KB地址范围时,将自动转向执行外部程序存储器内的程序;/EA引脚为低电平时,单片机则只访问外部程序存储器,不论是否有内部程序存储器。

对于8031来说,因其无内部程序存储器,所以该引脚必须接地,这样选择外部程序存储器。

//P3口第二功能:

【当输出第二功能信号,该锁存器应预先置1】

P3.0 RXD 串行输入口

P3.1 TXD 串行输出口

P3.2 /INT0 外部中断0

P3.3 /INT1 外部中断1

P3.4 T0 定时器0外部计数器输入

P3.5 T1 定时器1外部计数器输入

P3.6 /WR 外部数据存储器写选通

P3.7 /RD外部数据存储器读选通

//若时钟晶振的振荡频率为fosc,则时钟周期Tosc=1/fosc.机器周期Tcy=12/fosc.

//寄存器复位情况:

SP 07H P0~P3 FFH上电自动复位和按钮复位。

//程序计数器PC:

程序计数器自动加1.可看成程序存储器的地址指针。

程序指针PC不能为用户编程直接使用,是一不可寻址的特殊功能寄存器。

PC值为当前正在执行指令的下一条指令地址。

数据指针DPTR:

地址指针DPTR由DPH和DPL组成。

高8位放DPH,低8位放DPL.

查表指令:

MOVC A,@A+PC

1000H:

MOVC A,@A+PC;(A)=30H,执行后(PC)=1001H,(1031)→A.

该条查表指令只能查询后面的256个单元内容。

MOVC A,@A+DPTR

(DPTR)=8100H,(A)=40H执行后,(8140)→A.

该条指令可查询后面64KB单元内容。

"C"是代码的意思。

2.中央处理器包括运算器和控制器两部分电路。

1)累加器ACC。

8位寄存器,字节地址为E0H.在指令系统中,累加器ACC助记符A.

2)算术逻辑运算单元ALU。

ALU用于完成二进制数的四则运算、布尔代数的逻辑运算和位操作。

3)程序状态字寄存器PSW.8位寄存器,字节地址为D0H

CY:

进位标志,常用C表示。

位7有进位,为1.

AC:

辅助进位标志。

位3有进位,为1.

AC作为BCD码运算调整时的判别位。

F0:

用户标志

RS1、RS0:

工作寄存器组控制位。

RS1  RS0   寄存器组   片内RAM地址

0     0     第0组     00H~07H

0     1     第1组     08H~0FH

1     0     第2组     10H~17H

1     1     第3组     18H~1FH

单片机复位时,RS1=RS0=0,CPU选中第0组为当前工作寄存器。

OV:

溢出标志。

溢出时OV为"1".位6或位7有进位,为1.

【两个有符号数在进行加法(或减法)运算时,第六位或第七位中仅有1位发生进位(或借位)现象,则OV=1;第六位或第七位都没进位(或借位),则OV=0】

P:

奇偶标志。

若A中有奇数个"1",则P置为"1",否则为"0".

  01010110(+86)                11001000(-56)

+)01111010(+122)             +)11000111(-57)

[0]11010000→A               [1]10001111→A

(A)=0D0H  CY=0  AC=1   (A)=8FH  CY=1  AC=0

OV=1  P=1                    OV=0   P=1

//数据传送类(28)算术操作类(24)逻辑运算类(25)控制转移类(17)位操作类(17)

MCS-51系列单片机保留给系统使用的程序存储器地址空间:

系统复位 0000H 外部中断0             服务程序入口地址 0003H

定时器/计数器0溢出中断服务程序入口地址 000BH

外部中断1             服务程序入口地址 0013H

定时器/计数器1溢出中断服务程序入口地址 001BH

串行口             中断服务程序入口地址 0023H

片内数据存储器|

A.低128单元:

a.工作寄存器区(00H~1FH)

b.位寻址区(20H~2FH)[字节地址]【位地址00H-7FH】

c.用户RAM区(30H~7FH)【只能进行字节寻址,可用于数据缓冲区及堆栈区】

B.高128单元(80H~FFH)[特使功能寄存器区SFR]

MOV A,#00H 将立即数10H传送到累加器A A←00H

MOV A,26H 将26H单元(P1口的直接地址)的内容送累加器A A←26H

MOV A,@R7 以R3寄存器内容?

H为地址,将该地址单元的内容送累加器A[@寄存器间接寻址标记] A←((R7))

MOV A,R3 将寄存器R3中的内容(即操作数)传送到累加器A A←R3

MOVC A,@A+PC 假设指令执行前(A)=10H,(PC)=1000H,将A和PC的内容相加,两者之和作为操作数的存储单元地址,再把该存储单元的内容送A。

A←((A)+(PC))

SJMP LOOP PC←(PC)+2,PC←(PC)+(LOOP)[短转移指令]

//MOV A,@R0 

ANL 20H,#0F0H 20H←(20H)^0F0H[逻辑与运算指令]

ADD A,R3 A←(A)+(R3)[不带进位的加法指令]

SWAP A (A)7~4←→(A)3~0[将累加器A中的高低4位进行相互交换]

DEC @R1 (R1)←((R1))-1[减1指令]

XCHD A,@R1 (A)3~0←→((R1))3~0[将累加器A中低4位与源操作数的低4位进行相互交换,高4位保持不变]

//MOV DPTR,#data16;#data16→DPTR

MOV SP,#82H[堆栈指针SP先进后出的原则存取数据,开机复位后,SP为07H;入栈操作:

先SP加1,后写入数据;出栈操作:

先读出数据,后SP减1]

(SP)=60H,(A)=30H,(B)=70H

PUSH direct;进栈指令POP direct;出栈指令 

PUSH A ;(SP)+1=61H→SP,(A)→61H

PUSH B ;(SP)+1=62H→SP,(B)→62H

结果:

(61H)=30H,(62H)=70H,(SP)=62H

//MOV A ,#0FEH

ADD A,#0FEH

//CLR A A←0[累加器清0指令]

ADD A,#00H

MOV A,#5AH

ADDC A,#0A4H ;A←(A)+0A4H+CY[带进位的加法指令]

//ANL A,#25H ;A←(A)^25H[逻辑与运算指令]

ORL 28H,A ;28H←(28H)v1(A)[逻辑或运算指令]

XRL A,@R0 ;A←(A)⊕((R0))[逻辑异或运算指令]

CPL A 累加器取反指令

//MOV R0,#05H

MOV R1,#DATA [#data8位立即数,即00H~FFH]

CLR A

LOOP:

ADD A,@R1

INC R1 ;R1←(R1)+1[加1指令]

DJNZ R0,LOOP R0←(R0)-1,若(R0)≠0,则PC←LOOP

                           若(R0)=0,则PC←(PC)+2

MOV SUM,A

SJMP $ 将PC当前的内容与【】相加,结果再送回PC中,成为下一条将要执行指令的地址.原地跳转。

MOV C,40H;(40H)→C

位寻址:

PSW位5位地址0D5H,F0,(0D0H).5,PSW.5

MOVX A,@DPTR;((DPTR))→A,读外部RAM/IO

MOVX A,@Ri;((Ri))→A,读外部RAM/IO

MOVX @DPTR,A;(A)→((DPTR)),写外部RAM/IO

MOVX @Ri,A;(A)→((Ri)),写外部RAM/IO

“X”表示MCS-51访问片外RAM存储器或I/O

采用16位DPTR作为间接寻址,则可寻址整个64KB片外数据存储器空间,高8位地址(DPH)由P2口输出低8位地址(DPL)由P0口输出。

采用Ri(i=0,1)作为间接寻址,则可寻址片外256个单元片外数据存储器空间,8位地址和数据均由P0口输出,可选用其他任何出口线来输出高于8位地址(一般选用P2口输出高8位地址)

INC DPTR;16位数增1指令。

首先对低8位指针DPL内容执行加1操作,当产生溢出时,就对DPH的内容进行加1操作,并不影响标志Cy的状态。

MUL AB;A×B→BA

DIV AB;A/B→A(商),B(余数)

AJMP addr11;2KB范围内无条件跳转指令。

LJMP addr16;64KB程序存储器地址空间任何位置。

JZ rel;若累加器为0;则执行转移

JNZ rel;若累加器为非0;则执行转移

CJNE A,direct,rel

CJNE A,direct,rel

CJNE Rn,#data,rel

CJNE @Ri,#data,rel

DJNZ Rn,rel

DJNZ direct,rel;若结果不为0则转移

JC rel;若进位为Cy=1;则转移

JNC rel;若进位为Cy=0;则转移

JB bit,rel;若直接寻址位=1;则转移

JNB bit,rel;若直接寻址进位=0;则转移

JBC bit,rel;若直接寻址进位=1;则转移,并清0直接寻址位。

CPL 08H;/(21H).0→(21H).0位

SETB P1.7;1→P1.7位

RETI;本指令清除了中断响应时,被置1的MCS-51内部中断优先级寄存器的优先级状态。

ORG 2000H

DB 30H,40H,24,"C","B"

汇编后:

(2000H)=30H

(2001H)=40H

(2002H)=18H(十进制数24)

(2003H)=43H(字符"C"ASCII码)

(2004H)=42H

TEST EQU 2000H;标号TEST等同于2000H.

//a.使10H单元中数的高3位清"0",其余位不变

[参考答案]ANL 10H,1FH

b.使20H单元中数的高2位清"1",其余位不变

[参考答案]ORL 20H,C0H

c.使30H单元中数的高4位取反,其余位不变

[参考答案]XRL 30H,0FH

d.使40H单元中数的所有位取反

[参考答案]XRL 40H,00H

e.使ACC.0、ACC.1置"1"

[参考答案]SETB ACC.0

SETB ACC.1

f.使累加器A的高2位清"0"

[参考答案]ANL A,3FH

//TCON TF1 TR1 TF0 TR0 IE1  IT1  IE0  IT0 88H

位地址  8FH  - 8DH  -  8BH 8AH 89H  88H

IT0 选择外部中断请求0触发方式

0电平触发1 跳沿触发

IE0外部中断请求0中断请求标志位

TF0定时器/计数器T0溢出中断请求标志位

TR0定时器/计数器运行控制位

0停止定时器/计数器运行1启动

SCON  SM0  SM1 SM2 REN TB8 RB8 TI  RI

位地址  9FH        ~     ~           ~ 98H

串行口4种工作方式

SM0  SM1  方式   功能说明

 0      0    0  同步移位寄存器方式(用于扩展I/O口)

 0      1    1  8位异步收发,波特率由定时器控制

 1      0    2  9位异步收发,波特率fosc/64或fosc/32

 1      1    3  9位异步收发,波特率由定时器控制

SM2--多机通信控制位

方式0 SM2必须为0,

方式1 若SM2=1则只有收到有效地停止位时才会激活RI

方式2、3若SM2=1 RB8=1将接收到的前8位数据送入SBUF,并置1RI,产生中断请求,RB8(第9位数据)=0将接收到的前8位数据丢弃。

SM2=0,无论RB8多少,都将前8位数据送入SBUF中,并置1RI,产生中断请求。

REN--允许串行口接收位

0允许1禁止

TB8--发送第9位数据

双机通信时,作为奇偶校验位

多机通信时,1地址帧0数据帧

RB8--接收到第9位数据

TI--发送中断标志位

RI--接收中断标志位

TI,RI必须软件清0

 IE     EA   ES ET1 EX1 ET0 EX0 A8H

位地址AFH  ~                

EA--中断允许总控制位

0,CPU屏蔽所有中断请求(CPU关中断)

1,CPU开放所有中断

ES--串行口中断允许位

ET0定时器/计数器0溢出中断标志位

EX0外部中断0请求标志位

1允许0禁止中断

 IP     PS PT1 PX1 PT0 PX0 B8H

        BCH       ~

PS--串行口中断优先级控制位

PT0定时器T0中断优先级控制位

PX0外部中断0中断优先级控制位

中断请求被响应的条件:

1.CPU开中断,即IE寄存器中中断总允许位EA=1

2.该中断源发出中断请求,即中断源对应的中断请求标志为1

3.该中断源的中断允许位1,即该中断没有被屏蔽

4.无同级或更高级中断正在被服务

5.当前指令运行完毕

6.IE返回再运行一条指令

中断响应时间3~8个机器周期

TMOD GATE C//T M1 M0 GATE C//T M1 M0

       |← T1方式字段 →||← T0方式字段→|

GATE--门控位

0运行控制位TRX(X=0,1)来启动定时器/计数器运行

1用外部中断引脚/INTX(X=0,1)高电平来启动定时器/计数器运行【一般用于测脉宽】

M0、M1--工作方式选择位

M0 M1 工作方式

 0  0   方式0,为13位定时器/计数器

 0  1   方式1,为16位定时器/计数器

 1  0   方式2,8位的常数自动重新装载的定时器/计数器

 1  1   方式3,仅适用于T0,T0分成2个8位计数器,T1停止计数

C//T--计数器模式和定时器模式选择位

0定时器模式1计数器模式,计数器对外部输入引脚T0(P3.4)或T1(P3.5)的外部脉冲(负跳变)计数。

  

//编制50ms延时程序。

编程说明:

设晶振的频率为12MHz,则一个机器周期为1μs,执行一条DJNZ指令需2个机器周期,即2μs。

循环次数可通过计算获得,所以采用计数法,并选择"先执行后判断"的循环结构。

DEL:

  MOV R7,#200 ;1μs

DEL1:

 MOV R6,#123

      NOP

DEL2:

 DJNZ R6,DEL2 ;(2×123+2)μs

      DJNZ R7,DEL1 ;[(248+2)×200+1]μs,即50.001ms

      RET

//单片机实现定时的方法:

a.软件延时。

b.不可编程的硬件定时。

c.可编程定时器/计数器。

//已知某单片机振荡fosc=12MHz,使用定时器产生周期为1ms的等宽方波,由P1.0引脚输出。

要求:

a.使用定时器1,以工作方式0,采

用查询方式;b.使用定时器0,以工作方式1,采用中断方式。

解:

1.使用定时器1,工作方式0,查询方式。

a.计算计数初值TH1,TL1;要产生1ms的等宽方波,只要使用P1.0引脚交替输出各为500μs的高低电平即可。

定时时间为500μs,设计数初值为X,有下式可得;(213-X)×12/(12×106)=500×10-6,解得:

X=7692,转化为二进制为:

1111000001100,将其低5位装入TL1,(TL1)=0CH;高8位装入TH1,(TL1)=0F0H。

b.TMOD寄存器初始化:

定时器1定时功能,C//T=0;无需     控制,GATE=0;/INT0工作方式为方式0,M1M0;定时器0不用,有关位均设为0.因此TMOD寄存器的内容为00H。

c.TR及IE的使用;因为采用查询方式,要关闭中断,IE为0.启动计数时,TR1要置'1'd.程序设计:

MOV  TMOD,#00H   ;设置T1为工作方式0

MOV  TH1,#0F0H    ;设置计数初值

MOV  TL1,#0CH

MOV  IE,#00H       ;禁止中断

SETB  TR1           ;启动定时

LOOP:

JNB   TF1,LOOP;查询计数溢出

      CPL   P1.0     ;输出取反

      MOV  TH1,#0F0H;重新设置计数初值

      MOV  TL1,#0CH

      CLR   TF1       ;清除计数溢出标志位

      AJMP  LOOP

//使用定时器0,工作方式1,中断方式。

6MHz(2us)

方式0最长可定时16.384ms;213*2us

方式1最长可定时131.072ms;216*2us

方式2最长可定时512us;28*2us

A.计算计数初值(216-X)×12/(12×106)=500×10-6

X=216-500=10000H-1F4H=0FE0CH

所以(TH0)=0FEH,(TL0)=0CH.

b.TMOD寄存器初始化(TMOD)=01H

c.IE及TR的使用;中断方式,要使EA=1及ET0=1开放中断.由TR0=1启动定时.d.程序设计:

主程序:

MOV  TMOD,#01H   ;定时器0工作方式1

MOV  TH0,#0FEH    ;设置计数初值

MOV  TL0,#0CH

SETB   EA           ;开放中断

SETB   ET0          ;开放定时0中断

SETB   TR0          ;定时开始

SJMP   $            ;等待中断

中断服务程序:

ORG   000BH

CPL    P1.0         ;输出取反

MOV   TH0,#0FEH  ;重新设置计数初值

MOV   TL1,#0CH   

RETI

//使用定时器0以工作方式2,由P1.6输出周期为100μs连续等宽方波,。

已知晶振频率为12MHz.

解:

a.计算计数初值;等宽方波周期为100μs,定时时间为50μs,设计数初值为X:

(28-X)×12/(12×106)=50×10-6

X=28-50=100H-32H=0CEH

b.程序设计:

主程序:

ORG   1000H

MAIN:

 MOV  TMOD,#02H   ;定时器0工作方式2

MOV  TH0,#0CEH    ;设置计数初值

MOV  TL0,#0CEH

SETB   EA           ;开放中断

SETB   ET0          ;开放定时0中断

SETB   TR0          ;定时开始

SJMP   $            ;等待中断

中断服务子程序:

ORG   000BH

CPL    P1.6         ;输出取反  

RETI

//PCON SMOD    87H

SMOD:

波特率选择位。

方式0,波特率固定为时钟频率fosc*(1/12),若fosc=12Hz,即1Mb/s.

方式2,波特率=fosc*2SMOD/64,若fosc=12Hz,SMOD=0波特率=187.5kb/s;SMOD=1,波特率=375kb/s.

方式1或3;波特率=(2SMOD/32)*定时器T1溢出率

若8031时钟振荡频率为11.0592MHz,选用T1方式2定时作为波特率发生器,波特率为2400b/s,求初值。

设T1为方式2,定时,选SMOD=0.

波特率=(2SMOD/32)*(fosc/(12*(256-X)))=2400b/s

解得:

X=244=F4H.

//程序存储器扩展:

线选法和译码法

线选法:

片选端/CE接(P2.6)P2.6引脚为0,其他引脚一定为高电平。

译码法:

74LS138(3线-8线)74LS139(双2线-4线)74LS154(4线-16线)

//扩展I/O工作状态选择表

A1 A2 /RD /W

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 其它

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1