单片机复习资料.ppt_第1页
单片机复习资料.ppt_第2页
单片机复习资料.ppt_第3页
单片机复习资料.ppt_第4页
单片机复习资料.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

,片内数据存储器中的位地址,特殊功能寄存器地址及功能表,复位状态,P3.2,P3.3,P3.7,P3.6,P3口的第二功能,扩展8KB/16KBEPROM注意:控制信号:ALE、PSEN片选信号:CE(P2.6)地址信号:A0A12、A13数据信号:O0O7,中断请求标志,1,高级,低级,内部查询,内部查询,入口地址,入口地址,中断允许控制,中断优先级,EA,中断源,中断结构图,与中断有关的特殊功能寄存器有四个:,TCON-定时控制寄存器,IE-中断允许控制寄存器,IP-中断优先级控制寄存器,SCON-及串行口控制寄存器。,1定时控制寄存器TCON,中断请求标志,触发方式选择,0低电平1下降沿,中断控制寄存器,串行中断请求标志,3中断允许控制寄存器IE,4中断优先级控制寄存器(IP),0禁止1允许,0低级别1高级别,实现两级控制注意:复位时,禁止所有中断,每一中断源可编程为高优先级或低优先级中断,以实现二级嵌套。默认的优先次序为:INT0、C/T0、INT1、C/T1、串行口中断(依次从高到低),注意:响应中断后,CPU并不清零中断标志位,必须软件清零。,2.串行口控制寄存器SCON,M1和M0-工作模式控制位。其功能如下表:,控制寄存器TCON,例4-1使用定时器T0定时时间为1ms,选择工作模式0,osc=6MHz。试确定T0初值,计算最大定时时间T。解:(1)求T0的初值X由公式:t=(213-T0初值)*机器周期Tcyt=1ms=1000s机器周期Tcy=12/osc=12/6000000s=2s得1000=(213-X)*2所以初值X=8192-500=7692=1111000001100B(一定要写全13位)TL0:00001100B=0CHTH0:11110000B=F0H,TL0的低5位和TH0的8位,采用查询方式定时,步骤如下,处理定时到事件,TMOD,TL0(TL1)TH0(TH1),TR0(TR1)=1,TF0(TF1),例4-2编程实现在P1.0口产生宽度为1ms的负脉冲,要求采用定时器T1以模式0实现1ms定时,osc=6MHz。解:(1)计算初值(同上,略)F0HTH0,0CHTL0(2)程序清单(查询方式)ORG0000HRESET:AJMPMAIN;主程序ORG0100HMAIN:SETBP1.0MOVTMOD,,MOVTL1,MOVTH1,SETBTR1CLRP1.0JNBTF1,$CLRTF1SETBP1.0END,模式0,启动定时器,等待溢出中断,#0,#0CH,#0F0H,采用中断方式定时,步骤如下,TMOD,IE,“定时到”事件在哪里处理?,TL0(TL1)TH0(TH1),TR0(TR1)=1,中断服务子程序,程序清单(中断方式)ORG0000HAJMPMAINORG001BHAJMPT1INTRORG0100HMAIN:SETBP1.0MOVTMOD,#0;T1工作在模式0MOVTL1,#0CH;赋初值MOVTH1,#0F0HMOVIE,#88H;允许T1中断,SETBTR1;开定时器CLRP1.0;SJMP$;等待中断产生T1INTR:;1ms定时到,CPLP1.0CLRTR1RETIEND,主程序,定时器T1溢出中断服务子程序,跳转到真正主程序处,定时器T1溢出中断入口,解:方法:定时1ms,对P1.0取反,然后继续定时(1)设置模式字TMOD=*0000B=00000000B=00H(2)计算初值由公式:t=(213-T0初值)*机器周期t=1ms=1000s,机器周期Tcy=12/osc=12/12000000s=1s得1000=(213-X)*1=(8192-X)*1所以初值X=7192=1110000011000BT0的低5位:11000B=18HT0的高8位:11100000B=E0H,例4-3利用T0的工作模式0产生1ms的定时,编程实现在P1.0引脚上输出周期为2ms的方波。设单片机的晶振频率osc=12MHz。,(3)程序清单方法一:中断方式(T0溢出中断)ORG0000HRESET:LJMPMAINORG000BHLJMPCTC0;主程序ORG0030HMAIN:MOVTMOD,#0;定时器0,工作模式0MOVTL0,#18H;定时1ms,赋初值MOVTH0,#0E0HSETBEA;中断初始化,允许全局中断SETBET0;允许定时器0溢出中断SETBTR0;启动定时器0SJMP$;等待中断,中断服务程序ORG0100HCTC0:MOVTL0,#18HMOVTH0,#0E0H;以上两条语句很重要CPLP1.0RETI,T0溢出中断入口,也可用MOVIE,#82H,要连续计数必须重赋初值,方法二:查询方式START:MOVTMOD,#0MOVTL0,#18HMOVTH0,#0E0HSETBTR0LOOP:JBCTF0,NEXTSJMPLOOPNEXT:MOVTL0,#18HMOVTH0,#0E0HCPLP1.0SJMPLOOP,可替换为:JNBTF0,$CLRTF0MOVTL0,#18H:,等待溢出中断产生,重赋初值,例4-4用定时器T1产生一个50Hz的方波,由P1.1输出。使用程序查询方式,设osc=12MHz。解:(1)计算初值方波周期T为:T=1/50s=0.02s=20ms定时时间为:t=T/2=10ms=10000s由公式:t=(216-X)*机器周期Tcy因Tcy=1s,得10000=(216-X)*1,10000=65536-XX=55536=D8F0H,(2)模式字TMODTMOD=0001*B=10H(3)源程序ORG0000HMOVTMOD,#10MOVTH1,#0D8HMOVTL1,#0F0HSETBTR1LP:JNBTF1,$CLRTF1MOVTH1,#0D8HMOVTL1,#0F0HCPLP1.1SJMPLP,串行口控制字及控制寄存器控制串行通信的寄存器有SCON、PCON1、串行通信控制寄存器SCON地址:98H格式如下,返回,SM0、SM1:串行口工作方式选择位。组合如下所示:SM2:多机通信控制位。1:多机通信;0:单机通信REN:允许接收控制位。1:允许接收;0:禁止接收TB8:发送的第9位数据。可为奇偶检验位,或多机通信特征位(1:地址;0:数据)RB8:接收到的第9位数据。TI、RI:分别表示发送和接收中断标志。需软件编程清0。,2.电源控制寄存器(PCON)PCON不可位寻址,字节地址为87H。它主要是为CHMOS型单片机80C51的电源控制而设置的专用寄存器。其内容如下:,与串行通信有关的只有D7位(SMOD),该位为波特率倍增位,当SMOD=1时,串行口波特率增加一倍,当SMOD=0时,串行口波特率为设定值。当系统复位时,SMOD=0。,波特率值=(2SMOD/32)(T1溢出率)T1溢出率=1/定时时间tt=(2N-初值X)*机器周期Tcy=(2N-初值X)12/osc波特率值=(2SMOD/32)osc/(12(2N-X)=osc(SMOD+1)/(384(2N-X)初值X=2N-osc(SMOD+1)/(384波特率值)13T1以模式0工作8192N=16T1以模式1工作对应2N=655368T1以模式2工作256注意:T1以模式0、1工作时,(1)需要编写中断处理程序,在程序中需重新赋初值;(2)且有时间误差,可调整初值补偿。T1以模式2工作无这些问题。,例5-18051单片机的时钟振荡频率为6MHz,选用定时器T1工作于模式2作为波特率发生器,波特率为2400b/s。设波特率加倍位SMOD=1,求T1的初值X。解:初值X=2N-osc(SMOD+1)/(384波特率值)X=256-6106(1+1)/(3842400)=243=F3H,地址译码进行外部扩展举例,DAC0832单缓冲方式接口,图中的DAC0832工作于单缓冲方式,其中输入寄存器受控,而DAC寄存器直通。假定输入寄存器地址为7FFFH,产生锯齿波的程序清单如下:MOVA,#00H;取下限值MOVDPTR,#7FFFH;指向0832口地址MM:MOVXDPTR,A;输出INCA;延时NOPNOPNOPSJMPMM;反复执行上述程序就可得到如下图所示的锯齿波。,产生矩形波电压的参考程序:ORG1100HSTART:MOVDPTR,#7FFFH;送DAC0832口地址LOOP:MOVA,#dataH;送高电平数据MOVXDPTR,ALCALLDELAYH;调用延时子程序MOVA,#dataL;送低电平数据MOVXDPTR,ALCALLDELAYL;调用延时子程序SJMPLCALL,举例:1、读入片外RAM中0080H地址单元的内容2、向端口号为8FFEH的端口写入0,或:MOVP2,#00HMOVR0,#80HMOVXA,R0,MOVDPTR,#80HMOVXA,DPTR,MOVA,#0MOVDPTR,8FFEHMOVXDPTR,A,例1:试编写程序,将片内RAM中45H单元内容的高4位清0。例2:试编写程序,将片外RAM中1045H单元内容的高4位清0。,ANL45H,#0FH,MOVDPTR,#1045HMOVXA,DPTRANLA,#0FHMOVXDPTR,A,例1:试编写程序,将片内RAM中45H单元内容的低4位置1。例2:试编写程序,将片外RAM中1045H单元内容的低4位置1。,ORL45H,#0FH,MOVDPTR,#1045HMOVXA,DPTRORLA,#0FHMOVXDPTR,A,例:试编写程序,将片外RAM中2100H单元内容的奇数位变反,偶数位不变,MOVDPTR,#2100HMOVXA,DPTRXRLA,#10101010BMOVXDPTR,A,振荡周期1/12s时钟周期1/6s机器周期1s指令周期14s,8051单片机外接晶振为12MHz时四个周期的具体值,LED数码显示器结构与原理LED数码

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论