




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第2章:2、CIP-51有哪些存储空间?各个存储空间的功能及寻址范围是什么?有程序存储器、内部数据存储器、外部数据存储器、特殊功能寄存器和位寻址区五个独立的地址空间。程序存储器:寄存程序和常数,容量为64KB,地址范围0000H-0FFFFH内部数据存储器:用于通用寄存器和寄存数据的临时存储器,容量为256B,地址范围00H-0FFH外部数据存储器:用于寄存数据,容量为64KB(有4KB在芯片内部),地址为0000-0FFFFH特殊功能寄存器(SFR):提供对片内资源和外设的访问和控制,以及与外设的数据互换,C8051F020有122个,离散分布在地址80H-0FFH中。位地址空间:寄存位变量,进行布尔运算,容量为256位,有内部RAM的20H-2FH(16字节,128位)和部分SFR(字节地址可以被8整除的)构成,地址范围为00H-0FFH3、CIP-51的内部RAM空间有多少字节?它们在应用中有什么专门用途?堆栈一般应设置在什么位置?内部RAM有256字节低128B中的00H-1FH用于通用寄存器,20H-2FH既可以字节寻址也可以位寻址,30H-7FH作一般存储器用;高128B由于与SFR地址重叠,故只能间接寻址,也作一般存储器用理论上堆栈可以设在内部数据存储器的任何位置,复位时堆栈指针SP为07H,但为了避开通用寄存器和位地址空间,一般设在30H-0FFH。5、读写内部RAM与外部RAM的数据时,使用的指令有什么区别?读程序存储器的数据的指令又有什么不一样?读写内部RAM用MOV指令;读写外部RAM用MOVX指令;读程序存储器用MOVC指令,写程序存储器用MOVX指令,但为与写外部RAM相辨别,需要对对应SFR的有关位进行设置。6、若(PSW)=0x10,则目前的R0~R7在内部RAM中有哪些单元?由(PSW)=0x10可知RS1RS0=10,故通用寄存器R0-R7在内部RAM的0x10-0x17单元。(PSW的格式P22)第一次作业存在的问题:第一题:5个存储空间,有的同学写的不全,漏SFR和位寻址区;有的同学对位寻址区的寻址范围写的不对,应为0x00-0xff而非0x20-0x2f。第三题:内部RAM每一部分的专门作用,尤其低128B要再分类阐明;片内XRAM不算片内RAM;堆栈一般在0x30-0xff,而非0x30-0x7f。第六题:部分同学不会做;要查询PSW的格式,RS1RS0的作用,P22表2-28、请论述中断的响应过程。一种中断祈求从提出到CPU响应最短要多长时间?假如CPU响应中断的条件所有具有,响应中断最长的时间是多少?在什么样的状况下会出现这个响应时间?C8051F的每个系统时钟周期对中断标志采样并对优先级译码,假如容许中断响应,则置位对应的优先级状态触发器,然后执行一条硬件长调用指令,控制转移到对应的入口,清对应中断祈求标志(有些需要在中断服务程序中清除,如RI、TI),接着PC压栈(但不保护PSW),将中断服务程序的入口地址送给PC,完毕中断响应。最快需要5个系统时钟周期:1个中断检测周期,4个对ISR的调用周期(LCALL)。最慢发生在CPU正在执行RETI指令的时候,需要再执行一条指令才能进入中断服务程序,而最慢的指令是DIV需要8个系统时钟周期。因此,最慢需要18个系统时钟周期:1个中断检测周期,5个执行RETI的周期,8个执行DIV指令的周期,4个对ISR的调用周期(LCALL)。9、C8051F020单片机的外部RAM有片内和片外之分,怎样实现片外的RAM?复用与非复用方式的外部RAM是什么意思?数据总线和地址总线是怎样连接的?通过外部数据存储器接口EMIF实现片外数据存储器,用并行口P0-P3或P4-P7实现数据总线和地址总线,数据线和地址线可以复用也可以非复用,由EMIOCF控制。复用是指数据总线和地址总线的低8位共用一组端口信号线。非复用是指数据总线和地址总线的低8位各用单独的一组端口信号线。若用低端端口实现,复用时用P2口提供地址高8位,P3口提供地址低8位和数据线;非复用时用P1口提供高8位地址线,P2口提供地址线低8位,P3口提供数据线。若用高端端口实现,非复用则用P5、P6提供地址高、低8位,P7做数据线,复用则用P6提供地址线高8位,P7提供地址低8位和数据线。10.什么是优先权交叉开关译码器?C8051F020单片机有多少数字I/O口?C8051F单片机的引脚与片内资源是怎样对应的?C8051F单片机没有为定期器、串行口、A/D、D/A等提供单独的引脚信号线,而是用并行口P0-P3提供,C8051F单片机容许使用部分数字和模拟外设,没有用到的就不用分派引脚信号,因此内部提供了一种优先交叉开关译码电路,实现P0-P3和这些资源的可编程连接,这就是优先交叉开关译码器。C8051F单片机有64位数字I/O端口。其中P0-P3可以按照优先交叉开关译码的方式为片内资源分派引脚,用端口I/O交叉开关寄存器XBR0-XBR2实现。11、假如一种单片机应用系统中要用到的资源位UART0、SMBus、SPI、和CP0分派端引口(共9个引脚)。此外将外部存储器解耦配置为复用方式并使用低端口。同步还将P1.2、P1.3、P1.4配置为模拟输入,以便用ADC1测量加在这些引脚上的电压。试用Config软件进行优先权交叉开关译码器的配置,写出配置环节,配置XBR0~XBR2等有关SFR的值。(1)按UART0EN=1(XBR0.2)、SMB0EN=1(XBR0.0)、SPI0EN=1(XBR0.1)、CP0E=1(XBR0.7)、EMIFLE=1(XBR2.1)设置XBR0、XBR1、XBR2得XBR0=0x87、XBR1=0x00、XBR2=0x02;(2)存储器接口配置为复用方式并使用低端口,有PTRSEL=0(EMIOCF.5)、EMD2=0(EMIOCF.4);(3)P1.2~P1.4配置为模拟输入方式有:P1MDIN=0xe3;(4)设置XBARE=1使能交叉开关,则XBR2=0x42。UART0优先级最高,P0.0、P0.1分派给TX0、RX0;SPI优先权次之,P0.2~P0.4分派给SCK、MISO、MOSI、P0.5~P0.7分派给ALE、/RD、/WR、P1.0分派给NSS;下一种优先的是SMBUS,P1.1分派给SDA、P1.2~P1.4做模拟量输入,跳过,P1.5分派给SCL;再下面的优先权是CP0,P1.6分派给CP0;(5)UART0的TX0(P0.0)、ALE(P0.5)、/RD(P0.6)、/WR(P0.7)的输出设置为推挽方式,P0MDOUT=0xe1;(6)P2、P3设置为推挽方式P2MDOUT=0xff、P3MDOUT=0xff;(7)P1设置为漏极开路方式,并严禁3个模拟输入的输出驱动:P1MDOUT=0x00、P1=0xff。13、8051F单片机进入空闲方式时,单片机的振荡器与否工作?采用何种措施能使单片机退出空闲方式?工作。复位或中断。14、C8051F020有几种复位源,分别是什么?自己的项目中最常使用的是什么复位源?7个:上/电复位、外部/RST引脚复位、外部CNVSTR信号复位、软件命令复位、比较器0复位、时钟丢失检测器复位、WatchDog超时复位。15、再简朴的试验程序中,假如看门狗定期器复位不使用,该怎样禁用?向WDTCN写入0xDE后,4个系统时钟周期内再写入0xAD。该过程不应被中断。C51代码:EA=0;//严禁中断WDTCN=0xDE;WDTCN=0xAD;EA=1;//容许中断第三章:1、片外RAM从1000H~10FFH单元有一数据块,用汇编语言编写程序将其传送到片外RAM的2500H单元开始的区域中。ORG0000HSJMPMAINORG0100HORG0000HSJMPMAINORG0100HMAIN:MOVR4,#0MOVDPL,#0NEXT:MOVDPH,#10HMOVXA,@DPTRMOVDPH,#25MOVX@DPTR,AINCDPLDJNZR4,NEXT(CJNEDPL,#0,NEXT)SJMP$END;若两个区域的低8位地址不一样,该措施不可以$INCLUDE(C8051F020.INC)org0000hmovdptr,#1000hmovEMIOCN,#25Hmovr2,#0Hmovr0,#00Hloop:movxa,@dptrmovx@r0,aincdptrincr0djnzr2,loopsjmp$endorg0000hmovdptr,#1000hmovr2,#256(movr2,#0)movr3,#25hmovr4,#00hloop:movxa,@dptrpushdphpushdpl或者movdph,r3movdpl,r4movx@dptr,Apopdplpopdphincdptrincr4djnzr2,loopsjmp$end3、用汇编语言编写将累加器A的一位十六进制数(A的高4位为0)转换为ASC=2\*ROMANII码的程序,转换成果仍寄存在累加器A中,规定用查表和非查表两种方式实现。ADDA,#30HCJNEA,#3AH,CONTCONT:JNCADD7JMPEXITADD7:ADDA,#7EXIT:SJMP$END用汇编语言编程实现函数,设x的值寄存在片内RAM的35H单元,y的值寄存在片内RAM的36H单元。y=x+1,x>10;0,5<=x<=10;-1,x<5MOVA,35H;取xCJNEA,#11,NEXT1;与11比较,不等于11,转NEXT1NEXT1:JNCNEXT2;不小于等于11,转NEXT2CJNEA,#5,NEXT3;不不小于11,再与5比较,不等于5转NEXT3NEXT3:JNCNEXT4;无借位(不小于等于5),转NEXT4MOVA,#-1;不不小于5AJMPNEXT5补充:符号函数MOVA,35H补充:符号函数MOVA,35HJZDONEJNBACC.7,POSIMOVA,#-1(0FFH)SJMPDONEPOSI:MOVA,#1DONE:MOV36H,ASJMP$END或MOVA,35HJZDONEMOVR0,#0FFHJBACC.7,NEGMOVR0,#01HNEG:MOVA,R0DONE:MOV36H,ASJMP$ENDAJMPNEXT5NEXT2:ADDA,#1;不小于10NEXT5:MOV36H,ASJMP$END或(同学作业):XEQU35HYEQU36HORG0000HAJMPSTARTORG0100HSTART:MOVA,XCLRC SUBBA,#05HJNCNEXTMOVY,#0FFHAJMPDONENEXT:MOVA,XCLRCSUBBA,#0BHJNCNEXT1MOVY,#00HAJMPDONENEXT1:MOVA,XINCAMOVY,ADONE:SJMPDONEEND$INCLUDE(C8051F020.INC)XDATA30HYEQU20HORG0000HAJMPSTARTORG0100HSTART:MOVDPTR,#TABMOVSP,#3FHMOVR1,#X$INCLUDE(C8051F020.INC)XDATA30HYEQU20HORG0000HAJMPSTARTORG0100HSTART:MOVDPTR,#TABMOVSP,#3FHMOVR1,#XMOVY,#00HMOVA,R0LOOP:MOVB,02HDIVABPUSHACCMOVA,BMOVCA,@A+DPTRMOV@R1,APOPACCINCR1INCYJNBY.3,LOOPSJMP$TAB
:DB‘0’,’1’ENDMOVR1,#30HMOVR7,#8MOVA,R0NEXT:RLCAJC0NEMOV@R1,#30HJMPEXIT或者ONE:MOV@R1,#31HEXIT:INCR1DJNZR7,NEXTSJMP$END用汇编语言编程求两个无符号数据块中最大值的乘积。数据块的首地址分别为片内RAM的60H和70H,每个数据块的第一字节用来寄存数据块的长度。成果存入片内MOVR0,#60HACALLMAXMOVB,A;第一种数据块最大值MOVR0,#70HACALLMAXMULAB;两个数据块最大值相乘MOV5FH,BMOV5EH,ASJMP$MAX:MOVA,@R0;数据块长度DECAMOVR7,AINCR0MOVA,@R0;第一种数据LOOP:CLRCMOVB,AINCR0MOVA,@R0SUBBA,B;两个比较,也可以用CJNE实现JNCNEXTMOVA,BSJMPNEXT1NEXT:ADDA,BNEXT1:DJNZR7,LOOP(下一行)RET第4章:5.运用C8051F020单片机的T0计数,每计10个脉冲,P1.0取反一次,试用查询和中断两种方式编程。确定工作方式,计算初值:选方式2计数方式,初值=256-10=246=0xf6;查询方式程序:sbitP1_0=P1^0;voidmain(void){//关看门狗WDTCN=0xde;WDTCN=0xad;//配置交叉开关XBR1=0x02;//容许T0外部输入XBR2=0x40;//使能交叉开关//初始化定期器0TMOD=0x06;//方式2计数TL0=OxF6;TH0=OxF6;TR0=1;//启动T0While(1){While(!TF0);//等待计数溢出TF0=0;P1_0=!P1_0;}}IE|=0x82;//容许T0中断While(1);//等待中断}IE|=0x82;//容许T0中断While(1);//等待中断}voidT0_ISR(void)interrupt1{P1_0=!P1_0;}sbitP1_0=P1^0;voidmain(void){//关看门狗WDTCN=0xde;WDTCN=0xad;//配置交叉开关XBR1=0x02;//容许T0外部输入XBR2=0X40;//初始化定期器0TMOD=0x06;//方式2计数TL0=OxF6;TH0=OxF6;TR0=1;//启动T08.在C8051F020单片机中,已知系统时钟频率为12MHz,编写程序使P1.0和P1.1分别输出周期为2ms和50μs的方波。解:P1.0和P1.1分别每1ms和25μs取反一次即可。选T0方式1定期25μs,每溢出40次P1.0取反一次。初值计算:由P157公式:,选T0M=0得:a=216-25=65511=0xffe7;程序:sbitP1_0=P1^0;sbitP1_1=P1^1;intcount=40;voidmain(void){//关看门狗WDTCN=0xde;WDTCN=0xad;//使能交叉开关XBR2=0x40;//初始化定期器0TMOD=0x01;//方式1定期TL0=0xe7;TH0=0xff;IE|=0x82;//容许T0中断TR0=1;//启动T0While(1);//等待中断}voidT0_ISR(void)interrupt1{TL0|=0xe7;TH0=0xff;P1_0=!P1_0;Count--;If(Count==0){P1_1=!P1_1;Count=40;}}15.当C8051F020的串行口工作在方式2、3时,它的第9数据位可用作“奇偶校验位”进行传送,接受端用它来查对接受到的数据对的与否。试编写串行口方式2带奇偶校验的发送和接受程序。解:发送程序:voidsend(charch){ACC=ch;TB80=P;SBUF0=ch;While(!TI0);TI0=0;}接受程序:charreceive(void){While(!RI0);RI0=0;ACC=SBUF0;If(RB80==P)returnch;}设甲乙两机采用UART0方式1通信,波特率为4800,甲机发送0、1、2…、1FH,乙机接受并寄存在内部RAM以20H为首地址的单元,试用查询和中断两种方式编写甲、乙两机的程序(系统时钟为12MHz)设运用T1工作在定期方式2(自动重装初值)提供波特率,T1M=0(按振荡器12分频)计数,SMOD0=0,T1初值计算如下:X=256-=256-=250=FAH#include<c8051f020.h>unsignedcharxdatatbuf[]={0x0,0x1,…,0x1f};voidmain(void){unsignedchari;unsignedcharxdata*p=tbuf;XBR0=0x04;//配置交叉开关XBR2=0x40;P0MDOUT|=0x01;//TX0(P0.0)为推挽输出方式TMOD=0x20; //初始化并启动T1 TH1=0xfa; TL1=0xfa; TR1=1; SCON0=0x40; //UART0初始化 for(i=0;i<32;i++) { SBUF0=*p; //一字节送发送SBUF0 p++; while(!TI0); //等待发送完毕 TI0=0;}}查询方式接受程序:#include<c8051f020.h>voidmain(void){ unsignedchari;chardata*p; //发送数据块地址指针XBR0=0x04;//配置交叉开关XBR2=0x40;P0MDOUT|=0x01;//TX0(P0.0)为推挽输出方式TMOD=0x20; //初始化并启动T1 TH1=0xfa; TL1=0xfa; TR1=1; SCON0=0x50; //UART0初始化,容许接受 p=0x20; //地址指针初始化 for(i=0;i<32;i++) { while(!RI0); //等待UART0接受一种字符 RI0=0;*p=SBUF0; //放入接受缓冲区 p++; }}……参照P195例4.7正弦波发生器程序:DAC0输出更新发生在写DAC0H时:#include<c8051f020.h>#include<math.h>sfr16DAC0=0xd2voiddac0_init(void);voidmain(void){uninsignedinti;floatx,y;WDTCN=0xde;//关看门狗WDTCN=0xad;dac0_init();//DAC0初始化while(1){ for(x=0;x<(2*3.14159);x+=0.1) {//12位DAC的数字容量为4K(0-0FFFH),y的值最大为4096y=2048*(sin(x)+1); DAC0=y;//设置待转换的值并启动DA转换 for(i=0;i<=200;i++);//延时可变化正弦波的周期}}}voiddac0_int(void){ REF0CN=0x03; DAC0CN|=0x08;}方波输出:定期器T3溢出时DAC更新。#include<c8051f020.h>sfr16TMR3RL=0x92;srf16DAC0=0xd2;#defineSYSCLK000voidTimer3_Init(intcounts);voidTimer3_ISR(void);voidDAC_Init(void);voidmain(void){ unsignedi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 矿用流体输送电焊钢管企业数字化转型与智慧升级战略研究报告
- 发票机企业数字化转型与智慧升级战略研究报告
- 成形及专用刀具企业县域市场拓展与下沉战略研究报告
- 休闲专用车企业数字化转型与智慧升级战略研究报告
- 节能墙体材料企业数字化转型与智慧升级战略研究报告
- 邮政包装企业数字化转型与智慧升级战略研究报告
- 管束式干燥机企业数字化转型与智慧升级战略研究报告
- 电影设备零件和附件企业数字化转型与智慧升级战略研究报告
- DB3206T 1098-2024政府合同合法性审核指引
- 深圳市乡村振兴和协作交流局关于“深圳农场”建设实施工作方案
- 生日宴会祝福快闪演示模板
- 2024年青海省中考英语试卷真题(含答案解析)
- 2020中等职业学校英语课程标准
- 高标准农田设计实施方案(技术标)
- 创伤失血性休克中国急诊专家共识2023解读课件
- 云计算白皮书(2024年)解读
- 电力电子技术智慧树知到期末考试答案章节答案2024年中国石油大学(华东)
- 2024年四川省乐山市中考地理·生物合卷试卷真题(含答案)
- 2024年内蒙古航开城市投资建设有限责任公司招聘笔试冲刺题(带答案解析)
- 境内直接投资基本信息登记业务申请表(一)(版)
- 黑龙江省佳木斯市2023-2024学年八年级下学期期中联考数学试题(无答案)
评论
0/150
提交评论