单片机原理及应用C答案_第1页
单片机原理及应用C答案_第2页
单片机原理及应用C答案_第3页
免费预览已结束,剩余2页可下载查看

下载本文档

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

文档简介

.单片机原理及应用模拟卷3一、分析程序的执行结果,将结果填写到空格中 。1 、 mov 40h , #80h mov r0 , #40hmov a , r0 ; (a= 80h ) mov b , #20hdiv ab; (a= 04h b= 00h )mov r0 , a ;最终结果存于内存单元40h 中。2、mov a , #2ah rr amov b , amul ab; (a= b9h b= 01h ) (ov= 1 cy= 0 ) 3 、 mov a , #0b2hmov r1 , #055hanl a ,r1 ;(a= 10h) orl a , r1 ;( a= 55h) xrl a , r1 ;( a= 00h) swap a ;( a= 00h)4 、 mov 25h ,#39hclr 2ah;( 25h ) =( 00111001 b) cpl 2ch;( 25h ) =( 00101001 b ) setb 2eh;(25h ) =( 01101001 b) mov c , 28h; ( psw 中 c 的内容 = 1 )二、程序设计1、mcs51内 部 ram 40h 60h单元存放着有符号16 进制数,将其中能被2 整除的数, 存放到 0090h单元开始的外部ram 中。 解:org 0000h jmp startstart: mov sp , #60hmov dptr , #0090h mov r0 , #40hmov r1 , #21 loop0 : mov a , r0 mov b, #2div ab;.mov r2, bcjnz r2, #0, loop1 ; 余数为 0 则继续 ,不为 0 则转移mov a , r0 mov dptr,a inc dptr loop1: inc r0 djnz r1, loop0 end2、某一故障检测系统,当出现故障时,线路出现下降沿;没有故障时,线路为高电平。出现故障时,相应的指示灯变亮。故障消失后,指示灯熄灭。试用解msc1211 为单片机实现该故障检测功能,画出电路原理图,并写出相应程序。答:如图所示,使用p10 作为故障指示灯 ,故障源从 p32 输入,相应的程序为:org 0000hajmp main org 0003hli: clr p1.0jnb p1.0,li retiorg 1000h setb it0 setb ex0 setb eahere:setb p1.0.ajmp here end3 设有甲、乙两台单片机, 以工作方式 3 进行串行通讯, 设晶振为 11.0592mhz,波特率为 9600,甲机将内存单元中的120 个数据作补偶校验后发送给乙机,乙机对接收到的数据进行奇偶校验,若校验正确,则从机发送00h 给甲机,甲机继续发送数据,校验不正确,则发送0ffh 给甲机,甲机重新发送原数据,编写乙机的接收程序。(应在适当的地方加程序注释)解: org0000h ajmpmainorg0023hljmpse2_int main:mov sp,#60hmov tmod #20hmov th1,#0fdh ;设置波特率为 9600bps mov tl1,#0fdhmov scon,#90h ;串行口工作方式3,允许接收mov dptr,#2000h;接收数据区mov r1,#120 setb tr1 setb ea setb essjmp $ ;等待接收中断se2_int:jbri , loopa clr t1ljmpendr loopa : clr rimov a,sbufmov c,p;奇偶校验jc loop1;如 8位数是奇,则转loop1 再检测 rb8 位orl c,rb8; 如8位数为偶,再检测rb8位, rb8=1, 则9位数据为奇,补偶jc loop2;错,转 loop2ljmp loop3 ; 补偶正确,转loop3loop1:anl c, rb8;8位数为奇,再检测rb8 位jc loop3; rb8=1, 补偶正确,转loop3loop2:mov a ,#0ffh ; 检测不正确发送ff给甲机mov sbuf,ajmp endr loop3 :movx dptr ,amova,#00hmovsbuf,a incdptr djnz r1, endrclr es ; 停止接收endr:reti4、变量k从20变到200,变化步长为 20。对于每一个值, 使用整形数算术运算计算8*k ,k*k*k 和(40*k/150)3。这三个值通过 msc121的1使用电压输出模式)。试编写程序实现。解:#includereg1211.hdataunsignedinti,j; voidmain (void)d/a转换后同步输出(均pdcon &=0x37 ;/同时开启adc 和 dac 模块adcon0 =0x30 ;/内部参考电压2.5vdacsel =6;/选择将要访问dac 加载寄存器loadcon dacl = 0xfc ;/设置 dac1 、2、3 通道同步更新模式dacsel = 4;/选择 dac0 、1 控制寄存器dacl =0x24;/dac idac 关闭,内部参考电压dach =0x24;/dac1 idac 关闭,内部参考电压dacsel=5;/选择 dac2 、3 控制寄存器dacl =0x24 ;/dac2idac关闭,内部参考电压dach=0x24;/dac3idac关闭,内部参考电压while (1)dacsel = 0;/选择 dac1 数据寄存器dac = 0x8000;/ 送 dac1 要转换的数据for (j=0 ; j 100 ; j+ ) ;/延时dac =0;for (i=20 ;

温馨提示

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

评论

0/150

提交评论