单片机原理及应用模拟题1

上传人:第*** 文档编号:34255573 上传时间:2018-02-22 格式:DOC 页数:8 大小:56KB
返回 下载 相关 举报
单片机原理及应用模拟题1_第1页
第1页 / 共8页
单片机原理及应用模拟题1_第2页
第2页 / 共8页
单片机原理及应用模拟题1_第3页
第3页 / 共8页
单片机原理及应用模拟题1_第4页
第4页 / 共8页
单片机原理及应用模拟题1_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《单片机原理及应用模拟题1》由会员分享,可在线阅读,更多相关《单片机原理及应用模拟题1(8页珍藏版)》请在金锄头文库上搜索。

1、- 1 -单片机原理及应用模拟题 1除非特别声明,编程题可以使用汇编语言编写,也可以使用 C 语言编写1、分析程序的执行结果,将结果填写到空格中。 ORG 0000HMOV 30H,#50HMOV R0,#30HMOV A,R0 ;(A= 50H )MOV A,#79HMOV B,#20H ;(A= 79H B= 20H )DIV AB ;(A= 03H B= 19H )PUSH BMOV B,#0AHMUL AB ;(A= 1EH B= 0 )POP BADD A,B ;(A= 37H B= 19H )MOV 30H,A ;(30H 单元的内容= 37H )MOV 20H,30HCLR 01

2、H ;(20H 单元的内容=37H )MOV A,20H ;(PSW 中 P 的内容 = 1 )CPL ARR A ;( PSW 中 C 的内容= 0 )SWAP A ;(A= 46H )ADDC A,#0F0H ;(A= 36H );(PSW 中 P 的内容 = 0 );( PSW 中 C 的内容= 1 )RL A ;(A= 6CH );(PSW 中 P 的内容 = 0 );( PSW 中 C 的内容= 0 )LOOP: AJMP LOOP2、将 MCS51 内部 RAM60H65H 单元存放的 12 个 16 进制数变为 ASCII 码,放到 0090H 单元开始的外部 RAM 中。使用汇

3、编语言编写 ORG 0000HAJMP MAINORG 0030HMIAN:MOV R0,#50HMOV R1,#06HMOV R2,#02H- 2 -MOV DPTR,#2800HMOV A,R0MOV B,ACH:ANL A,#0FHPUSH ACCSUB A,#0AHJNC AD37POP ACCADD A,#30HJMP SAVAD37:POP ACCADD A,#37HSAV:DJNZ R2,LLMOVX DPTR,AINC DPTRSWAP BMOV B,AJMP CHLL:INC R0DJNZ R1,DONEDONE:HLTEND3、某一故障检测系统,当出现故障 1 时,线路 1

4、 上出现上升沿;当出现故障2 时,线路 2 上出现下降沿。没有故障时,线路 1 为低电平,线路 2 为高电平。出现故障时,相应的指示灯变亮。故障消失后,指示灯熄灭。试用MSC1211 为单片机实现该故障检测功能,画出电路原理图,并写出相应程序。 解答:如下图所示:故障 1 从 P32 输入,利用 INT0, 故障 2 从 P33 输入,利用 INT1,使用 L1 作为故障 1 的指示灯,L2 作为故障 2 的指示灯。- 3 -程序清单:ORG 0000HAJMP MIANORG 0003HAJMP GU1ORG 0013HAJMP GU2ORG 1000HMAIN: MOV TCON,#05H

5、MOV IE,#85HHERE: SETB P1.0SETB P1.1GU1:CLR P1.0JB P3.2,GU1RETIGU2:CLR P1.1JB P3.3,GU2RETIEND4、用 MSC1211 的 T0 定时 /计数器,设计程序,实现在 P1.0 输出周期为200ms 的占空比为 1:1 的方波,输出 500 个方波后停止输出。 设频率为 6MHz TCOUNT EQU 30HORG 00HSTART: MOV R0,#5MOV TCOUNT,#00HMOV TMOD,#01HMOV TH0,#3CHMOV TL0,#B0HSETB TR0- 4 -WAIT: JNB TF0,W

6、AITCLR TF0MOV TH0,# 3CHMOV TL0,# B0HCPL P1.0INC TCOUNTMOV A,TCOUNTCJNE A,#200,WAITMOV TCOUNT,#00HDJNZ R0,WAITEND解:ORG 0000HLJMP MAINORG 000BH ;T0 口中断服务程序入口地址LJMP INT_T0MAIN: MOV TMOD,#00H ;T0 工作于方式 0 定时MOV TL0,#0CHMOV TH0,#1EH ;设定秒中断周期为 1msMOV A,200 ;设定输出周期为 200 msMOV R2,1000 ;输出 500 个方波SETB TR0SETB

7、 ET0SETB EASETB P1.0SJMP $INT_T0:MOV TL0,#0CHMOV TH0, #1EH ;T0 重装时间常数CPL P1.0 P1.0 位取反DEC R2JZ ENDP ;若 R2 为 0,则结束程序,否则返主程序继续输出RETI ;返主程序ENDP: END5、利用 MSC1211 或 8051 设计应答方式下的多机通讯程序。通讯参数:晶振为 11.0592MHz,9600,n,8,1。通讯过程如下:主机首先发送从机地址,从机收到地址后进行比较,如果地址相符,则将从机地址回发给主机作为应答信号。主机收到从机的地址应答信号后,将内存单元中的 120 个数据发送给从

8、机,并进行数据块校验(将各个数据进行异或) ,若校验正确,则- 5 -从机发送 00H 给主机,否则发送 0FFH 给主机,主机重新发送数据。 (应在适当的地方加程序注释) 解答:主机通信的子程序ORG 0000HAJMP MAINORG 0030HMAIN: MOV SP,#10HMOV R4,#120; 传送数据的个数MOV TMOD,#21HMOV TH1,#0FAHMOV TL1,#0FAH; 设置波特率为 9600MOV SCON,#0D0H; 设置串行通信的方式为方式 3MOV PCON,#80H; 设置 SMOD=1SETB TR1S_COMN: MOV A,R2; R2 为被寻

9、址的从机的地址SETB TB8MOV SBUF,ATI_LOW1: JNB TI,TI_LOW1CLR TIRI_LOW1: JNB RI,RI_LOW1; 接收到返回的地址CLR RI MOV A,SBUFXRL R2,AJNZ J_STARTTX_NEXT: MOV A,R0; R0 位发送数据的首地址CLR TB8MOV SBUF,ATI_LOW2: JNB TI,TI_LOW2CLR TI INC R0DJNZ R4,TX_NEXT; R4 为发送数据的长度J_START: SETB TB8MOV A,#0FFH; 若地址不对,使所有的从机 SM2 置 1MOV SBUF,ARI_LO

10、W2: JNB RI ,RI_LOW2CLR RI- 6 -AJMP S_COMNEND从机接受数据的中断程序ORG 0000HAJMP MAINORG 0023HSJMP S_SORG 0030HMAIN: MOV SP,#10HMOV TMOD,#21HMOV TH1,#0FAHMOV TL1,#0FAH; 设置波特率为 9600MOV SCON,#0D0H; 设置串行通信的方式为方式 3MOV PCON,#80H; 设置 SMOD=1SETB TR1SETB ESSETB EASJMP $S_S: PUSH ACCJNB RI,$CLR RI JNB RB8,D_COMNMOV A,SB

11、UFCJNE A,#0FFH,S_ADDRSETB SM2CLR 7FHSJMP S_RETS_ADDR: CJNE A,#01H,S_RETMOV SBUF,ACLR SM2 AJMP S_RETD_COMN: MOV A,SBUFMOV R0,AINC R0 DJNZ R7,S_RET; 判断接收是否完毕SETB SM2S_RET: POP ACCRETI- 7 -END6、利用 MSC1211 的 A/D 构成数据采集系统。使用模拟通道 0 进行连续数据采集,采集 8 次后取得平均值,存放到预先分配好的 100 个内存单元中,这 100 个单元存满后,再从第一个单元进行覆盖保存。写出完整

12、的程序清单(应在适当的地方加程序注释) 。解:#include#includeextern void autobaud(void);/声明外部函数extern void bipolar(void);float a100=0,w8=0;int out=0;long result,temp;int j;int AUXinterrupts(void)interrupt6 using1/中断服务程序if(PAI=6) /处理 AD 中断wout+=bipolar();temp=wout;SUMR0=tempSUMR1=(temp8)SUMR2=(temp16)SUMR3=(temp24)if(out=

13、8)SUM=SUMR3=100)j=0;min(void)float dummy;int decimation;decimationg=1440;/抽取因子- 8 -PDCON&=0x77;/打开 ADCACLK=9;/模拟采样频率ADMUX=0;/使用通道 0ADCON0=0x30;/内部基准 2.5V,缓冲器关,BOD 关,PGA=0ADCON1=0x01;/双极性,自动稳定模式,偏移增益自校准ADCON2=decimation/写入抽取因子低字节ADCON3=(decimation8)/写入抽取因子高字节AIE=autobaud();/等待校准for(i=0;idata unsigned int k,j,i;void main(void)PDCONADCON0=0X30;DACSEL=6;DACSEL=4;DACL=0X24;DACSEL=5;DACH=0x24;while(1)- 9 -DACSEL=0;DAC=0x8000;for(j=0;j100;j+)DAC=0;for(k=0;k151;k+=10)DACSEL=1;DAC=8*k;DACSEL=2;DAC=k*k*k;DACSEL=3;i=40*k/150;DAC=i*i*i;DACSEL=6;DACL=0Xfc;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号