《《单片机总复习》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《单片机总复习》PPT课件.ppt(35页珍藏版)》请在三一办公上搜索。
1、单片机原理及应用总复习,2012.12.25,杭州电子科技大学 Hangzhou Dianzi University,单片机原理及应用,考试时间:2013-01-19 18:0020:00考试地点:第6教学楼 122,杭州电子科技大学 Hangzhou Dianzi University,考试题目形式,一.选择填空题(每小题2分,共30分)二.简答题:(每小题5分,共20分,4小题)三.程序分析题(共26分,5小题)四.编程题(共24分,3小题),杭州电子科技大学 Hangzhou Dianzi University,基本内容,一、MCS-51单片机的硬件结构二、MCS-51单片机指令系统三、
2、汇编语言程序设计四、C51语言及程序设计五、MCS-51单片机系统扩展技术六、中断与定时七、MCS-51单片机存储器与IO扩展八、串行通信及其接口九、DA/AD转换接口,杭州电子科技大学 Hangzhou Dianzi University,杭州电子科技大学 Hangzhou Dianzi University,一、MCS-51单片机的硬件结构,CPU-中央处理单元,完成运算和控制功能内部数据存储器(RAM)低128B:按用途分三个区,通用寄存器区、位寻址区、堆栈/用户 数据区。各区地址与主要用途。高128B:分布21个可寻址SFR。PSW、A、SP、PC功能与复位状态内部数据存储器(RAM)
3、8031 无 EA-08051、8751、AT89C51 4KB2个16位定时器/计数器 具有定时、计数功能4个并行I/O端口P0、P1、P2、P3均有I/O功能,注意读引脚操作,P0外接上拉电阻总线扩展ABP2P0(16)DBP0(8)CB-ALE、PSEN、WR、RD、EA,杭州电子科技大学 Hangzhou Dianzi University,一、MCS-51单片机的硬件结构,串行口RXD、TXD全双工串行口串口数据传送方式与特点。中断控制系统5个中断源入口地址与中断控制时钟电路振荡器周期机器周期指令周期工作方式复位信号、状态、方式程序运行低功耗运行掉电保护停振,仅保存RAM数据,复位方
4、法待机不停振,CPU暂停,中断正常,复位方法,杭州电子科技大学 Hangzhou Dianzi University,二、MCS-51单片机指令系统,指令系统机器指令集寻址方式确定操作数单元地址的方式。支持字节操作,位操作常用指令数据类传送MOV MOVC MOVX SWAP POP PUSH运算类ADD ADDC SUBB DIV MUL逻辑运算ANL ORL XRL CPL RR RRC RL RLC控制类DJNZ CJNE JZ JNZ SJMP LJMP ACALL LCALL RET RETI位操作MOV SETB CLR JC JNC JB JNB JBC,杭州电子科技大学 Han
5、gzhou Dianzi University,三、汇编语言程序设计,数据传送数制转换软件定时运算程序查表程序关键字查找位操作程序,杭州电子科技大学 Hangzhou Dianzi University,三、程序设计,例:把内部RAM中起始地址为data的数据串传送到外部RAM以buffer为首地址的区域,直到发现$(24H)字符的ASCII码为止。同时规定数据串的最大长度为32个字节。,程序设计:SUB1:MOV R0,#dataMOV DPTR,#bufferMOV R1,#20HLOOP:MOV A,R0CJNE A,#24H,LOOP1SLMP BACKLOOP1:MOVX DPTR,
6、AINC R0INC DPTRDJNZ R1,LOOPBACK:RET,MOV DPTR,#2100H;设置起始地址 MOV R0,0;设置当前所在地址SCH_PRO0:MOV DPL,R0;设置当前地址 MOVX A,DPTR;取出当前地址的内容 INC R0;地址指针加1 CJNE A,#24H,SCH_PRO1;判断当前地址内容是否为“$”MOV DPTR,#1500H;是则存储到1500H单元中并结束 MOVX DPTR,A RETSCH_PRO1:CJNE R0,32,SCH_PRO0;判断当前是否已取完;并结束 RET,三、程序设计,系统时钟为12MHz时,延时子程序 ORG 20
7、00H 需机器周期数 nn EQU 40H;DELAY:MOV A,nn;1LOOP:DEC A;1 NOP;1 NOP;1 NOP;1 NOP;1 NOP;1 JNZ LOOP;2 RET;2,已知查表程序,内部RAM的(27H)=09H,BCD_LED:MOV A,27H MOV DPTR,#TAB MOVC A,A+DPTR CPL A;MOV 27H,A RETTAB:DB 0C0H,0F9H,0A4H,0B0H,99H;LED字形表 92H,82H,0F8H,80H,90H,串行接口接收,晶振频率为12MHz,以方式1进行串行数据通信,其波特率为1200。B机接收程序:Recieve
8、:MOV TMOD,#20H;定时器T1工作于模式2 MOV TH1,#0E6H;设置波特率为1200的计数初值 MOV TL1,#0E6H SETB TR1 MOV SCON,#50H;串行接口工作于工作方式1,允许接收 LOOP:JNB RI,LOOP;等待接收数据 MOV A,SBUF;CLR RI RET,通信程序,设fosc=11.0592MHz:#include“reg51.h”#include“string.h”char s=“MCS-51 Serial Communication Bus.”;main()unsigned char a,b=6;TMOD=0 x20;SCON=0
9、 x50;/*SM0=SM2=0,SM1=1,REN=1*/TH1=0 xfa;TL1=0 xfa;TR1=1;a=strlen(s);for(;ba;b+)SBUF=s b;while(!TI);TI=0;,6 产生周期为40mS的等宽方波脉冲。#include sbit P1_=P14;void TimerInt(void)interrupt 3 using 1P1_4=!P1_4;TH1=-(20000/256);TL1=-(20000%256);main()SP=0 x60;P1_4=0;TMOD=0 x11;TH1=-(20000/256);TL1=-(20000%256);EA=1
10、;ET1=1;TR0=0;TR1=1;dowhile(1);,杭州电子科技大学 Hangzhou Dianzi University,四、C51与程序设计,goto、break、continue 语句return do while、while switch casefor(;)sfr、sfr16unsigned char、intdata、IDATA、PDATA、BDATA,杭州电子科技大学 Hangzhou Dianzi University,五、MCS-51单片机系统扩展技术,MCS-51系统扩展总线数据总线P0地址总线P2P0控制总线ALE PSEN RD WR EA存储器扩展扩展能力:1
11、6位地址线,寻址范围64KB存储器地址映像:高位片选地址+存储器片内地址形成16 位系统地址编址ROM与片外RAM独立编址,寻址空间为64KB片外RAM与I/O扩展统一编址,总寻址空间为64KB地址译码:线选法、译码法,杭州电子科技大学 Hangzhou Dianzi University,扩展电路注意的问题读写控制片选控制地址的分配:地址是一个范围空间,杭州电子科技大学 Hangzhou Dianzi University,六、中断与定时,中断CPU暂停当前程序,转向中断处理程序,结束转回中断响应及响应条件中断入口地址中断响应优先级同级响应顺序中断嵌套中断服务程序设计定时器/计数器功能计数,
12、定时4种工作方式,TMOD设置,初值计算,初值重置方式程序设计中断方式、查询方式,例1:单片机用内部定时方法产生频率为0kHz等宽矩形波,假定单 片机的晶振频率为12MHz,请编程实现。解:(方式2)定时常数的计算:TC=28-10/1=246 TH0=246,TL0=246。通过P1.0产生脉冲,查询方式定时源程序如下:ORG 0000HLJMP MAINORG 0030HMAIN:MOVTMOD,#02HMOVIE,#00HSETBTR0 MOVTH0,#246MOVTL0,#246LOOP:JNB TF0,LOOPCPL P1.0CLRTF0LJMPLOOPEND,用语言写:#inclu
13、de sbit P1_=P1;void TimerInt()interrupt P1_=!P1_;main()SP=0 x60;P1_=0;TMOD=0 x;TH1=256-10;TL1=-10;EA=1;ET0=1;TR0=0;dowhile(1);,如果查询方式:,#include sbit P1_=P1;main()SP=0 x60;P1_=0;TMOD=0 xH;TH1=256-10;TL1=-10;EA=1;ET0=1;TR0=0;while(1)if(TF0)P1_=!P1_;TF0=0;,例2:有晶振频率为6MHz的MCS-51单片机,使用定时器0以定时方法在P1.0输出周期为4
14、00us,占空比为 5:1 的矩形脉冲,以定时方式2编程实现。分析:中断定时时间为40us 中断计数器初值=5 定时初值X=256-40/2=236,主程序如下:ORG 0000HLJMP MAINORG 000BHLJMP T0-IPGORG 0030HMAIN:MOVSP,#60HMOVTMOD,#02HMOVTH0,#236MOVTL0,#236MOVR0,#5MOVIE,#82HSETBTR0SJMP$,中断服务程序:T0-IPG:DJNZ R0,BACKMOV R0,#5SETB P1.0RETIBACK:CLR P1.0 RETI,include sbit P1_0=P10;uns
15、igned char nn;main()SP=0 x60;P1_0=0;TMOD=0 x02;TH1=-20;TL1=256-20;EA=1;ET0=1;TR0=0;nn=5;dowhile(1);,void TimerInt(void)interrupt 1 nn=nn-1;if(nn=0)P1_0=1;nn=5;else P1_0=0;,用语言写:,已知时钟频率为6MHz,P1.0每秒钟产生一个机器周期的正脉冲,P1.1每分钟产生一个机器周期的正脉冲。,中断方式定时源程序:D10MS EQU 30H D1S EQU 31HORG 0000HLJMP MAINORG 000BH;T0INT
16、LJMP T0INT ORG 0030HMAIN:MOVSP,#60HMOVTMOD,#02HMOVTH0,#256-250;0.5msMOVTL0,#256-250 MOVIE,#82HCLR P1.0 CLR P1.1SETBTR0 MOV D10MS,#0MOV D1S,#0SJMP$,T0INT:INC D10MS MOV A,D10MS CJNE A,#20,T0INT1 MOV D10MS,#0 SETB P1.0 CLR P1.0 INC D1S MOV A,D1S CJNE A,#60,T0INT1 MOV D1S,#0 SETB P1.1 CLR P1.1T0INT1:RET
17、I,用语言:,include sbit P1_0=P10;sbit P1_1=P11;unsigned char d10ms,d1s;main()SP=0 x60;P1_1=0;P1_0=0;TMOD=0 x02;d10ms=0,d1s=0;TH1=-250;/0.5ms TL1=256-250;EA=1;ET0=1;TR0=0;dowhile(1);,void TimerInt(void)interrupt 1 d10ms+;if(d10ms=20)d10ms=0;d1s+;P1_0=1;P1_0=0;if(d1s=60)P1_1=1;P1_1=0;d1s=0;,杭州电子科技大学 Hangz
18、hou Dianzi University,七、MCS-51单片机I/O扩展及应用,简单I/O扩展输入:接口电路,控制信号,操作指令MOV A,DPTR 输出:接口电路,控制信号,操作指令MOV DPTR,A键盘接口及其应用独立式按键,机械式按键键码识别流程及编程行列式按键,扫描法键码识别流程查询/中断方式电路连接LED接口及其应用共阴/共阳LED及其字形码静态显示动态显示电路设计显示程序流程图及其程序设计,七、MCS-51单片机I/O扩展及应用,四、单片机矩阵键盘接口和键功能的实现,行列式键盘(如图8.1.4所示)按键识别有两种方法:行扫描法和线反转法 1、键盘接口处理的内容,(1)键扫描首
19、先是判定有没有键被按下,先经输出口向所有列线输出低电平,然后再输入各行线状态,2)软件消抖是利用延时来跳过抖动过程,3)判断被按键的位置,(4)键值计算,unsigned char code table=0 x3f,0 x06,0 x5b,0 x4f,0 x66,0 x6d,0 x7d,0 x07,0 x7f,0 x6f;unsigned char Count,d1,d2,d3,d4;void display(void)P2/关位码,void delay(void)unsigned int i;for(i=0;i2000;i+);void main(void)while(1)display()
20、;/其他工作,杭州电子科技大学 Hangzhou Dianzi University,八、串行通信及其接口,串行传输按位顺序传送数据分异步、同步距离远,数据线少。异步传送数据帧格式:起始位、数据位、校验位、停止位串行口的4种工作方式适用范围波特率选择程序设计:查询方式、中断方式,程序设计,1、假定甲、乙机进行串行数据通信,其波特率为1200。甲机将内部RAM 40H4FH单元的内容传送到乙机外部RAM 1000H100FH单元,请编程实现。,ORG 0000HLJMPMAINORG0023HLJMPT_PGORG0030HMAIN:MOV SP,#60HMOV TMOD,#20HMOV TH1
21、,#0F3HMOV TL1,#0F3HMOV PCON,#00HMOV SCON,#40H MOV R0,#40HMOV R1,#10HSETB EASETB ES,假设fsoc=6MHz,串行工作方式2,smod=0,则计数初值为:X=256-6*106*20/(384*1200)=256-13=FFH+1-13=0F3H,SETB TR1MOV A,R0CLR TIMOV SBUF,A SJMP$T_PG:DJNZ R1,NEXTCLR ESCLR TR1LJMP BACKNEXT:INCR0MOVA,R0CLR TIMOVSBUF,ABACK:RETI,smod=0,方式1,REN=0,
22、中断允许,取数,发送,甲机发送程序:,程序设计,1、假定甲、乙机进行串行数据通信,其波特率为1200。甲机将内部RAM 40H4FH单元的内容传送到乙机外部RAM 1000H100FH单元,编程实现。,ORG 0000HLJMPMAINORG0023HLJMPR_PGORG0030HMAIN:MOV SP,#60HMOV TMOD,#20HMOV TH1,#0F3HMOV TL1,#0F3HMOV PCON,#00HMOV SCON,#50H MOV DPTR,#1000HMOV R1,#10HSETB EASETB ESSETB TR1CLR RISJMP$,R_PG:MOVA,SBUFMO
23、VDPTR,ACLR RIINC DPTRDJNZ R1,BACKCLR ESCLR TR1BACK:RETI,smod=0,方式1,REN=1,中断允许,接受,送外存,乙机接受程序:,杭州电子科技大学 Hangzhou Dianzi University,九、DA/AD转换接口,D/A转换转换原理:数字量 模拟电流,模拟电流 模拟电压用途:CPU只能进行数字量传送。CPU 数字量模拟量执行机构D/A转换器主要性能指标A/D转换A/D转换器的主要类型及适用性计数法-转换时间长,结构简单逐次逼近法-精度较高,转换速度中等双斜率积分法-精度较高,转换速度慢并行转换法-精度高,转换速度快,结构复杂V/F转换远距离传送用途:输入通道,传感器模拟量 数字量 CPUADC0809 的转换控制程序,