2013级单片机复习重点.doc

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2013级单片机复习重点

单片机复习重点 1.单片机的堆栈指针SP始终是指示 堆栈顶 2.当程序状态字寄存器PSW状态字中RS1和RS0分别为0和1 时,系统先用的工作寄存器组为 组1 。 定时器T1的中断入口地址是 001BH 。 4.8051定时/计数器共有四种操作模式,由TMOD寄存器中M1 M0的状态决定,当M1 M0的状态为01 时,定时/计数器被设定为 16位定时/计数器 。 5.串行口的工作方式由 SCON 寄存器决定。 6. 定时器T0的溢出标志TF0,在CPU响应中断后 由硬件自动 清零。 7.扩展程序存储器2764时,需要 5 条P2口线。 8.若单片机的振荡频率为6MHz,设定时器工作在方式1需要定时1ms,则定时器初值应为 216-500 。 9.扩展存储器时要加锁存器373,其作用是 锁存寻址单元的低八位地址 。 11.8051单片机中,16位寄存器是 。 12.8051的程序计数器PC为16位计数器,其寻址范围是 0000H-FFFFH ,64KB 。 13.单片机应用程序一般存放在 ROM 中。 14.MCS-51单片机在同一优先级的中断源同时申请中断时,CPU首先响应 外部中断0 。 15.定时器若工作在循环定时或循环计数场合,应选用工作方式2 16.MCS-51单片机的外部中断1的中断请求标志是 IT1 。 17.中断入口地址一般可 存放转移指令 。 18.串行口每一次传送 1帧 字符。 19.定时器1工作在计数方式时,其外加的计数脉冲信号应连接到 P3.5/ T1 引脚。 20某应用系统需要通过P1.0输出脉宽为500us的方波,系统选用定时器/计数器0(T0),定时方式3,主频为12MHz。试写出相应的程序。 (参考课件例题) C语言程序(中断方式) : # include reg52.h //包含特殊功能寄存器库 sbit P1_0=P1^0; void main( ) { TMOD=0x03; //设置工作模式 TL0=0x06; TH0=0x06; //为定时器赋初值 ET0=1; //允许定时0中断 EA=1; TR0=1; //启动定时器0 while(1); //等待中断 } void time0_int(void) interrupt 1 { P1_0=~P1_0; } 中断方式汇编语言程序: ORG 0000H LJMP MAIN ORG 000BH ;中断处理程序 CPL P1.0 RETI ORG 0030H ;主程序 MAIN: MOV SP, #0DFH MOV TMOD,#02H MOV TL0, #06H MOV TH0, #06H SETB ET0 ;允许定时器0中断 SETB EA ;允许CPU中断 SETB TR0 ;启动定时器0 SJMP $ ;等待中断 END 采用查询方式C语言程序: # include reg52.h sbit P1_0=P1^0; void main() { TMOD=0x02; TL0=0x06; TH0=0x06; TR0=1; while (1) { while(!TF0) ; //查询计数溢出 TF0=0; P1_0=~P1_0; } } 查询方式汇编语言程序: MAIN: MOV TMOD,#02H ;主程序 MOV TL0,#06H MOV TH0,#06H SETB TR0 LOOP: JNB TF0,$ ;查询计数溢出 CLR TF0 CPL P1.0 SJMP LOOP END 将片内RAM 50H~5FH中的数据串行发送,用第9个数据位作奇偶校验位,设晶振为11.0592 MHz,波特率为2400 b/s,编制串行口方式3的发送程序。(参考课件例题) 解:用TB8作奇偶校验位,在数据写入发送缓冲器之前.先将数据的奇偶位P写入TB8,这时,第9位数据作奇偶校验用,发送采用中断方式。 C语言程序清单: #includereg52.h unsigned char i=0; unsigned char array[16] _at_ 0x50; //发送缓冲区 void main() { SCON=0xc0; //串行口初始化

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档