单片机总复习ppt课件.ppt

上传人:本田雅阁 文档编号:2309327 上传时间:2019-03-19 格式:PPT 页数:35 大小:499.51KB
返回 下载 相关 举报
单片机总复习ppt课件.ppt_第1页
第1页 / 共35页
单片机总复习ppt课件.ppt_第2页
第2页 / 共35页
单片机总复习ppt课件.ppt_第3页
第3页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机总复习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单片机的硬件结构 二、 MC

2、S-51单片机指令系统 三、 汇编语言程序设计 四、C51语言及程序设计 五、 MCS-51单片机系统扩展技术 六、 中断与定时 七、 MCS-51单片机存储器与IO扩展 八、 串行通信及其接口 九、 DA/AD转换接口,杭州电子科技大学 Hangzhou Dianzi University,杭州电子科技大学 Hangzhou Dianzi University,一、 MCS-51单片机的硬件结构,CPU-中央处理单元,完成运算和控制功能 内部数据存储器(RAM) 低128B:按用途分三个区,通用寄存器区、位寻址区、堆栈/用户 数据区。各区地址与主要用途。 高128B:分布21个可寻址SFR。

3、PSW、A、SP、PC功能与复位状态 内部数据存储器(RAM) 8031 无 EA - 0 8051、8751、AT89C51 4KB 2个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个中断源入口地址与中断控制 时钟电路 振荡器周期 机

4、器周期 指令周期 工作方式 复位信号、状态、方式 程序运行 低功耗运行 掉电保护停振,仅保存RAM数据,复位方法 待机不停振,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

5、 ACALL LCALL RET RETI 位操作 MOV SETB CLR JC JNC JB JNB JBC,杭州电子科技大学 Hangzhou Dianzi University,三、 汇编语言程序设计,数据传送 数制转换 软件定时 运算程序 查表程序 关键字查找 位操作程序,杭州电子科技大学 Hangzhou Dianzi University,三、 程序设计,例:把内部RAM中起始地址为data的数据串传送到外部RAM以buffer为首地址的区域,直到发现$(24H)字符的ASCII码为止。同时规定数据串的最大长度为32个字节。,程序设计: SUB1: MOV R0, #data M

6、OV DPTR, #buffer MOV R1, #20H LOOP: MOV A, R0 CJNE A, #24H, LOOP1 SLMP BACK LOOP1: MOVX DPTR, A INC R0 INC DPTR DJNZ R1, LOOP BACK: 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

7、; 是则存储到1500H单元中并结束 MOVX DPTR,A RET SCH_PRO1: CJNE R0,32,SCH_PRO0 ;判断当前是否已取完;并结束 RET,三、 程序设计,系统时钟为12MHz时,延时子程序 ORG 2000H 需机器周期数 nn EQU 40H ; DELAY: MOV A , nn ; 1 LOOP: 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 MO

8、VC A, A+DPTR CPL A ; MOV 27H, A RET TAB: DB 0C0H, 0F9H, 0A4H, 0B0H, 99H ;LED字形表 92H, 82H, 0F8H, 80H, 90H,串行接口接收,晶振频率为12MHz,以方式1进行串行数据通信,其波特率为1200。 B机接收程序: Recieve:MOV TMOD, #20H ;定时器T1工作于模式2 MOV TH1, #0E6H ;设置波特率为1200的计数初值 MOV TL1, #0E6H SETB TR1 MOV SCON, #50H ;串行接口工作于工作方式1,允许接收 LOOP: JNB RI, LOOP

9、;等待接收数据 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=0x20; SCON=0x50; /*SM0=SM2=0,SM1=1,REN=1*/ TH1=0xfa; TL1=0xfa; TR1=1; a=strlen (s); for ( ; ba ; b+) SBUF=s b; while (! TI); TI

10、=0; ,6 产生周期为40mS的等宽方波脉冲。 #include sbit P1_=P14; void TimerInt(void) interrupt 3 using 1 P1_4=!P1_4; TH1= -(20000 / 256); TL1= -(20000 % 256); main() SP=0x60; P1_4=0; TMOD=0x11; TH1= -(20000 / 256); TL1= -(20000 % 256); EA=1; ET1=1; TR0=0; TR1=1; dowhile(1); ,杭州电子科技大学 Hangzhou Dianzi University,四、 C5

11、1与程序设计,goto、break、continue 语句 return do while 、while switch case for( ; ;) sfr、sfr16 unsigned char 、int data 、IDATA 、PDATA、BDATA,杭州电子科技大学 Hangzhou Dianzi University,五、 MCS-51单片机系统扩展技术,MCS-51系统扩展总线 数据总线P0 地址总线P2P0 控制总线ALE PSEN RD WR EA 存储器扩展 扩展能力:16位地址线,寻址范围64KB 存储器地址映像:高位片选地址+存储器片内地址形成16 位系统地址 编址 RO

12、M与片外RAM独立编址,寻址空间为64KB 片外RAM与I/O扩展统一编址,总寻址空间为64KB 地址译码:线选法、译码法,杭州电子科技大学 Hangzhou Dianzi University,扩展电路注意的问题 读写控制 片选控制 地址的分配: 地址是一个范围空间,杭州电子科技大学 Hangzhou Dianzi University,六、 中断与定时,中断CPU暂停当前程序,转向中断处理程序,结束转回 中断响应及响应条件 中断入口地址 中断响应优先级 同级响应顺序 中断嵌套 中断服务程序设计 定时器/计数器 功能计数,定时 4种工作方式,TMOD设置,初值计算,初值重置方式 程序设计中断

13、方式、查询方式,例1:单片机用内部定时方法产生频率为0kHz等宽矩形波,假定单 片机的晶振频率为12MHz,请编程实现。 解: (方式2)定时常数的计算: TC=28-10/1=246 TH0=246,TL0=246。 通过P1.0产生脉冲,查询方式定时源程序如下: ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV TMOD,#02H MOV IE,#00H SETB TR0 MOV TH0,#246 MOV TL0,#246 LOOP: JNB TF0, LOOP CPL P1.0 CLR TF0 LJMP LOOP END,用语言写: #include sbi

14、t P1_=P1; void TimerInt() interrupt P1_=!P1_; main() SP=0x60; P1_=0; TMOD=0x; TH1= 256-10; TL1= -10; EA=1; ET0=1; TR0=0; dowhile(1); ,如果查询方式:,#include sbit P1_=P1; main() SP=0x60; P1_=0; TMOD=0xH; TH1= 256-10; TL1= -10; EA=1; ET0=1; TR0=0; while(1) if (TF0) P1_= ! P1_; TF0 = 0 ; ,例2:有晶振频率为6MHz的MCS-5

15、1单片机,使用定时器0以定时方法在P1.0输出周期为400us,占空比为 5:1 的矩形脉冲,以定时方式2编程实现。 分析:中断定时时间为40us 中断计数器初值=5 定时初值X=256-40/2=236,主程序如下: ORG 0000H LJMP MAIN ORG 000BH LJMP T0-IPG ORG 0030H MAIN: MOV SP, #60H MOV TMOD,#02H MOV TH0,#236 MOV TL0,#236 MOV R0, #5 MOV IE,#82H SETB TR0 SJMP $,中断服务程序: T0-IPG: DJNZ R0, BACK MOV R0, #5

16、 SETB P1.0 RETI BACK: CLR P1.0 RETI,include sbit P1_0=P10; unsigned char nn; main() SP=0x60; P1_0=0; TMOD=0x02; 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每秒钟产生一个机器周期的正脉冲

17、,P1.1每分钟产生一个机器周期的正脉冲。,中断方式定时源程序: D10MS EQU 30H D1S EQU 31H ORG 0000H LJMP MAIN ORG 000BH ;T0INT LJMP T0INT ORG 0030H MAIN:MOV SP, #60H MOV TMOD,#02H MOV TH0,#256-250 ;0.5ms MOV TL0,#256-250 MOV IE,#82H CLR P1.0 CLR P1.1 SETB TR0 MOV D10MS, #0 MOV D1S, #0 SJMP $,T0INT: INC D10MS MOV A, D10MS CJNE A,#

18、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.1 T0INT1: RETI,用语言:,include sbit P1_0=P10; sbit P1_1=P11; unsigned char d10ms,d1s; main() SP=0x60; P1_1=0; P1_0=0; TMOD=0x02; d10ms=0,d1s=0; TH1= -250 ; /0.5ms TL1= 256-250; EA=1; ET0=1; TR0=

19、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; ,杭州电子科技大学 Hangzhou Dianzi University,七、 MCS-51单片机I/O扩展及应用,简单I/O扩展 输入:接口电路,控制信号,操作指令MOV A, DPTR 输出:接口电路,控制信号,操作指令MOV DPTR, A 键盘接口及其应用 独立式按键,机械式按键键码识别流

20、程及编程 行列式按键,扫描法键码识别流程 查询/中断方式电路连接 LED接口及其应用 共阴/共阳LED及其字形码 静态显示 动态显示 电路设计 显示程序流程图及其程序设计,七、 MCS-51单片机I/O扩展及应用,四、单片机矩阵键盘接口和键功能的实现,行列式键盘(如图8.1.4所示) 按键识别有两种方法:行扫描法和线反转法 1、键盘接口处理的内容,(1)键扫描 首先是判定有没有键被按下,先经输出口向所有列线输出低电平,然后再输入各行线状态,2)软件消抖是利用延时来跳过抖动过程,3)判断被按键的位置,(4)键值计算,unsigned char code table=0x3f,0x06,0x5b,

21、0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; 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(); /其他工作 ,杭州电子科技大学 Hangzhou Dianzi University,八、 串行通信及其接口,串行传输 按位顺序传送数据 分异步、同步 距离远,数据线少。 异步传送数据帧格式:起始位、数据位、校验位、停止位 串行口

22、的4种工作方式 适用范围 波特率选择 程序设计:查询方式、中断方式,程序设计,1、假定甲、乙机进行串行数据通信,其波特率为1200。甲机将内部RAM 40H4FH单元的内容传送到乙机外部RAM 1000H100FH单元,请编程实现。,ORG 0000H LJMP MAIN ORG 0023H LJMP T_PG ORG 0030H MAIN: MOV SP, #60H MOV TMOD, #20H MOV TH1, #0F3H MOV TL1, #0F3H MOV PCON, #00H MOV SCON, #40H MOV R0, #40H MOV R1, #10H SETB EA SETB

23、ES,假设fsoc=6MHz,串行工作方式2,smod=0,则计数初值为: X=256-6*106*20 / (384*1200)=256-13=FFH+1-13=0F3H,SETB TR1 MOV A, R0 CLR TI MOV SBUF, A SJMP $ T_PG: DJNZ R1, NEXT CLR ES CLR TR1 LJMP BACK NEXT: INC R0 MOV A, R0 CLR TI MOV SBUF, A BACK: RETI,smod=0,方式1,REN=0,中断 允许,取数,发送,甲机发送程序:,程序设计,1、假定甲、乙机进行串行数据通信,其波特率为1200。甲

24、机将内部RAM 40H4FH单元的内容传送到乙机外部RAM 1000H100FH单元,编程实现。,ORG 0000H LJMP MAIN ORG 0023H LJMP R_PG ORG 0030H MAIN: MOV SP, #60H MOV TMOD, #20H MOV TH1, #0F3H MOV TL1, #0F3H MOV PCON, #00H MOV SCON, #50H MOV DPTR, #1000H MOV R1, #10H SETB EA SETB ES SETB TR1 CLR RI SJMP $,R_PG: MOV A, SBUF MOV DPTR, A CLR RI I

25、NC DPTR DJNZ R1, BACK CLR ES CLR TR1 BACK: RETI,smod=0,方式1,REN=1,中断 允许,接受,送外存,乙机接受程序:,杭州电子科技大学 Hangzhou Dianzi University,九、 DA/AD转换接口,D/A转换 转换原理:数字量 模拟电流, 模拟电流 模拟电压 用途:CPU只能进行数字量传送。CPU 数字量模拟量执行机构 D/A转换器主要性能指标 A/D转换 A/D转换器的主要类型及适用性 计数法-转换时间长,结构简单 逐次逼近法-精度较高,转换速度中等 双斜率积分法-精度较高,转换速度慢 并行转换法-精度高,转换速度快,结构复杂 V/F转换远距离传送 用途:输入通道,传感器模拟量 数字量 CPU ADC0809 的转换控制程序,

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1