1、单片机知识点总结单片机考点总结1. 单片机由CPU、存储器及各种I/O接口三部分组成。2. 单片机即单片微型计算机,又可称为微控制器和嵌入式控制器。3. MCS-51系列单片机为8位单片机,共40个引脚,MCS-51基本类型有8031、8051和8751.(1) I/O引脚(2) 8031、8051和8751的区别: 8031片内无程序存储器、8051片内有4KB程序存储器ROM、8751片内有4KB程序存储器EPROM。4. MCS-51单片机共有16位地址总线,P2口作为高8位地址输出口,P0口可分时复用为低8位地址输出口和数据口。MCS-51单片机片外可扩展存储最大容量为216=64KB
2、,地址范围为0000HFFFFH。(1.以P0口作为低8位地址/数据总线;2.以P2口作为高8位地址线)5. MCS-51片内有128字节数据存储器(RAM),21个特殊功能寄存器(SFR)。(1)MCS-51片内有128字节数据存储器(RAM),字节地址为00H7FH; 00H1FH: 工作寄存器区;00H1FH: 可位寻址区;00H1FH: 用户RAM区。(2)21个特殊功能寄存器(SFR)(21页23页);(3)当MCS-51上电复位后,片内各寄存器的状态,见34页表2-6。PC=0000H, DPTR=0000H, Acc=00H, PSW=00H, B=00H, SP=07H,TMO
3、D=00H, TCON=00H, TH0=00H, TL0=00H, TH1=00H,TL1=00H, SCON=00H, P0P3=FFH6. 程序计数器PC:存放着下一条要执行指令在程序存储器中的地址,即当前PC值或现行值。程序计数器PC是16位寄存器,没有地址,不是SFR.7. PC与DPTR的区别:PC和DPTR都用于提供地址,其中PC为访问程序存储器提供地址,而DPTR为访问数据存储器提供地址。8. MCS-51内部有2个16位定时/计数器T0、T1,1个16位数据指针寄存器DPTR,其中MOVE DPTR, #data16 是唯一的16位数据传送指令,用来设置地址指针DPTR。(4
4、6页)定时/计数器T0和T1各由2个独立的8位寄存器组成,共有4个独立寄存器:TH1、TL1、TH0、TL0,可以分别对对这4个寄存器进行字节寻址,但不能吧T0或T1当作1个16位寄存器来寻址。即:MOV T0,#data16 ; MOV T1,#data16 都是错的,MOV TH0,#data; MOV TL0,#data是正确的。9.程序状态字寄存器PSW(16页)(1)PSW的格式:D7D6D5D4D3D2D1D0PSWCyAcF0RS1RS0OVPD0H(2)PSW寄存器中各位的含义;Cy:进位标志位,也可以写为C。Ac:辅助进位标志位。RS1、RS0:4组工作寄存区选择控制位。RS
5、1RS0所选的4组寄存器000区(内部RAM地址00H07H)011区(内部RAM地址08H0FH)102区(内部RAM地址10H17H)113区(内部RAM地址18H1FH)P为奇偶标志位:该标志位用来表示累加器A中为1的位数的奇偶数P=1, A中1的个数为奇数;P=0, A中1的个数为偶数。另:使用加法指令时,累加器A中的运算结果对各个标志位的影响:(1)如果位7有进位,则置1进位标志位Cy,否则清0 Cy;(2)如果位3有进位,置1辅助进位标志位Ac,否则清0 Ac;(3)如果位6有进位,而位7没有进位,或者位7有进位,而位6没有,则溢出标志位OV置1,否则清0 OV。即只要位7和位6中
6、有一个进位,而另一个没进位,OV就置1.10. MCS-51指令系统的七种寻址方式,熟练掌握各寻址方式。(40页)。寻址方式使用的变量寻址空间寄存器寻址方式R0R7、A、B、C(位)DPTR、AB4组通用工作寄存区、部分特殊功能寄存器直接寻址方式内部RAM128B、特殊功能寄存器寄存器间接寻址方式R1,R0,SP片内RAMR1,R0, DPTR片外数据存储器立即寻址方式#data基址寄存器加变址寄存器间接寻址方式A+DPTR, A+PC程序存储器位寻址方式内部RAM20H2FH单元的128个可寻址位、SFR中的可寻址位(85个)相对寻址方式PC+偏移量程序存储器11.访问MCS-51单片机中:
7、(1)访问片内RAM应使用MOV指令;(2)访问片外RAM应使用MOVX指令;(3)访问程序存储器应使用MOVC指令。12. MCS-51有5个中断源,2级中断优先级。5个中断源名称及其中断入口地址分别是什么?哪些中断源的中断请求标志位在响应中断时由硬件自动清除?那些中断源的中断请标志位必须使用软件清除?记住各个中断请求标志位,优先级标志位,触发方式标志位。(102页108页)中断源入口地址响应中断时中断请求标志位外部中断00003H硬件自动清除IE0定时器/计数器T0000BH硬件自动清除TF0外部中断10013H硬件自动清除IE1定时器/计数器T1001BH硬件自动清除TF1串行口中断00
8、23H软件清除TI或RI前面4种都是硬件自动清0,串行中断必须使用软件清除,因为串行接收和发送共享串行中断,在中断处理中必须使用T1和R1判断串行接收还是发送中断。13. MCS-51的串行口为全双工的异步串行通信口,串行口有几种工作方式?每种工作方式的帧格式和波特率是什么?串行口有4种工作方式:SM0SM1方式功能说明000同步异位寄存器方式(用于扩展I/O口)波特率固定,为fosc/120118位异步收发,波特率可变(有定时器控制)1029位异步收发,波特率为fosc/64或fosc/321139位异步收发,波特率可变(有定时器控制)SM0、SM1:串行口4中工作方式的选择位。(1)方式0
9、:帧格式及波特率D0D1D2D3D4D5D6D7方式1的波特率是固定的,为fosc/12(2)方式1:帧格式及波特率起始位 停止位方式1的波特率为2SMOD/32定时器T1的溢出率(3)方式2:帧格式及波特率起始位 停止位方式2的波特率为2SMOD/64fosc(3) 方式3:帧格式及波特率起始位 停止位方式3的波特率为2SMOD/32定时器T1的溢出率14. 8255A可扩展3个8位并行I/O口(PA口、PB口和PC口),其中PC口具有按位置为/复位功能。15.系统总线(仅了解)所谓总线,就是连接计算机各部件的一组控制信号。MCS-51使用的是哈佛结构,即并行总线结构(程序存储器和数据存储器
10、的空间是截然分开的),按其功能通常把系统总线分为三组:(1)、地址总线(Address Bus ,简写AB)地址总线用于传送单片机发出的地址信号,以便进行存储单元和I/O端口的选择。地址总线是单向的,只能由单片机向外送出。地址总线的数目决定着可直接访问的存储单元数目。MCS-51单片机最多可以扩展64KB,即65536个地址单元,因此,地址总线为16条。(2)、数据总线(Data Bus,简写DB)数据总线用于单片机与存储器之间或单片机与I/O之间传送数据。MCS-51单片机是8位字长,所以,数据总线的位数也是8位的。数据总线是双向的,可以进行2个方向的传送。(3)、控制总线(Control
11、Bus,简写CB)控制总线实际上就是一组控制信号线,包括单片机发出的,以及从其它部件传送给单片机的。15.单片机外部扩展存储器地址分配的方法线选法和译码法。外部扩展存储器容量大小的确定方法(1)由该存储器芯片上的地址根数决定,如程序存储器芯片27128有A0A13共14根地址线,故27128的存储容量=214=16KB;(2)用存储器芯片型号后面的数字8 即可得到该芯片的存储容量,如27128的存储容量=1288=16KB;16.存储器扩展的读写控制:(做最后一题时需要用到)外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为 O E和 W E。外扩的RAM的读写控制引脚分别与MC
12、S-51的R D和 WR引脚相连。外扩的EPROM在正常使用中只能读出,不能写入,故EPROM的芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与MCS-51 的PSEN相连。17.在MCS-51单片机系统中,外接程序存储器和数据存储器共用16位地址线和八8位数据线,为何不发生冲突?外接程序存储器和数据存储器虽然共用16位地址线和8位数据线,但由于访问程序存储器时是PSEN信号有效, 而访问数据存储器时是R D或 WR 信号有效。而这些控制信号是由MCS-51执行访问外部外序存储器和或访问外部数据存储器的指令产生,任何时候只能执行1种指令,只产生1种控制信号,所以不会产生数据冲突的问题。1
13、7. 8段共阴极数码管的断码如何编写。(227页)记两点即可:(1)共阴极时1为亮0不亮;(2)abcdef是按照顺时针走的,知道g,dp的位置。18.单片机晶振频率fosc 与机器周期Tcy的关系式:1Tcy=12/fosc 。19.编程题(1)循环程序的编写(即延时程序的编写)(94页 例417)例4-17、50ms延时程序。(注:一条DJNZ指令消耗两个机器周期)DEL: MOV R7,#200DEL1: MOV R6,#125DEL2: DJNZ R6,DEL2MOV R7,DEL1RET(2)中断初始化程序的编写(104页 例51,107页 例52)知识点:(1)中断允许寄存器IEM
14、CS-51的CPU的中断源的开放或屏蔽,是由片内的中断允许寄存器IE控制的。IE的字节地址为A8H,可进行位寻址。 EA-ESET1EX1ET0EX0EA:中断允许总控制位; ES:串行口中断允许位;ET1:定时器/计数器T1的溢出中段允许位; EX1:外部中断1中段允许位;ET0:定时器/计数器T1的溢出中段允许位; EX0:外部中断0中段允许位;注:当上述值置为0时,表示禁止;置为1时表示允许。如当ET1=0表示禁止T1溢出中断,ET1=1表示允许T1溢出中断。(2)中断优先级寄存器PMCS-51的片内有一个中断优先级寄存器IP,其字节地址为B8H,可位寻址。-PSPT1PX1PT0PX0
15、PS:串行口中断优先级控制位;PT1:定时器T1中断优先级控制位;PX1:外部中断1中断优先级控制位;PT0:定时器T0中断优先级控制位;PX0:外部中断0中断优先级控制位;注:当上述值置为0时,表示定义为低优先级中断;置为1时表示高优先级中断。例5-1、若允许片内2个定时器/计数器中断,禁止其它中断源的中断请求。请编写出设置IE的相应程序段:(A)、用位操作指令编写如下程序段: CLR ES ;禁止串行口中断CLR EX1 ;禁止外部中断1中断CLR EX0 ;禁止外部中断0中断SETB ET0 ;允许定时器/计数器T0中断SETB ET1 ;允许定时器/计数器T1中断SETB EA ;CP
16、U开中断(B)、用字节操作指令来编写:MOV IE,#8AH 例5-2、设置IP寄存器的初始值,使得MCS-51的2个外中断请求为高优先级,其它中断请求为低优先级。(A)、用位操作指令编写如下程序段:SETB PX0 ; 2个外中断请求为高优先级SETB PX1 CLR PS ;串行口、2个定时器/计数器为低优先级中断CLR PT0 CLR PT1 (B)、用字节操作指令来编写:MOV IP,#05H (3)定时/计数器T0或T1在指定工作方式下产生一个定时或者计数的程序编写。(125页 例61,130页 例64)(4)书中有一道程序编写,但不知是哪一道,所以都找出来了(99页第10题、第11
17、题,117页第9题、14,136页第4题)4.10 试编写程序,查找在内部 RAM 的 30H50H 单元中是否有 0AAH 这一数据。若有,则将 51H 单元置为“01H”;若未找到,则将 51H 单元置为“00H”。 ORG 0000H MOV R0,#30H MOV R2,#21H LOOP: MOV A,R0 CJNE A,#0AAH,NOT MOV 51H,#01H SJMP DEND NOT: INC R0 DJNZ R2,LOOP MOV 51H,#00H DEND: SJMP DEND 4.11 试编写程序,查找在内部 RAM 的 20H40H 单元中出现“00H”这一数据的次
18、数。并将查找到的结果存入 41H 单元。 ORG 0000H MOV R0,#20H MOV R2,#21H MOV 41H,#00H LOOP: MOV A,R0 CJNE A,#00H,NOTE INC 41H NOTE: INC R0 DJNZ R2,LOOP END 5.9 编写出外部中断 1 为跳沿触发的中断初始化程序。 ORG 0000H AJMP MAIN ORG 0013H AJMP PINT1 ORG 0100H MAIN: SETB IT1 SETB EX1 SETB EA HERE: AJMP HERE PINT1: RETI END 5.14 某系统有 3 个外部中断源
19、 1、2、3,当某一中断源变为低电平时,便要求 CPU 进行处理,它们的优先处理次序由高到低依次为 3、2、1,中断处理程序的入口地址分别为 1000H,1100H,1200H。试编写主程序及中断服务程序(转至相应的中断处理程序的入口即可)。 ORG 0000H AJMP MAIN ORG 0003H LJMP PINT0 ORG 0100H MAIN: SETB IT0 SETB EX0 SETB EA HERE: SJMP HERE PINT0: PUSH PSW PUSH A JNB P1.3,IR3 JNB P1.2,IR2 JNB P1.1,IR1 PINTIR: POP A POP
20、 PSW RETI IR3: LJMP IR3INT IR2: LJMP IR2INT IR1: LJMP R1INT ORG 1000H IR3INT: LJMP PINTIR ORG 1100H IR2INT: LJMP PINTIR ORG 1200H IR1INT: LJMP PINTIR END 6.4 采用定时器/计数器 T0 对外部脉冲进行计数,每计数 100 个脉冲后,T0 转为定时工作方式。定时 1ms 后,又转为计数方式,如此循环不止。假定 MCS-51 单片机的晶体震荡器的频率为 6MHZ,请使用方式 1 实现,要求编写出程序。 ORG 0000H AJMP MAIN O
21、RG 000BH LJMP PT0J ORG 0100H MAIN: MOV TMOD,#05H;00000001 MOV TH0,#0FFH;X=65436 MOV TL0,#9CH CLR F0 SETB TR0 SETB ET0 SETB EA HERE: AJMP HERE PT0J: JB F0,PT0D MOV TMOD,#01H;00000001 MOV TH0,#0FEH;X=65036 MOV TL0,#0CH SETB F0 RETI PT0D: CLR F0 MOV TMOD,#05H MOV TH0,#0FFH MOV TL0,#9CH RETI END (5)最后一道大题的程序编写(185页 例81,189页 例84)20.
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1