ImageVerifierCode 换一换
格式:DOCX , 页数:52 ,大小:63.60KB ,
资源ID:3203670      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-3203670.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机上机试题.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机上机试题.docx

1、单片机上机试题1.片内RAM 40H、41H单元中分别存放着两个8位二进数,要求取出两个单元中的低半字节合并成一个字节存放在42H。(40H的低半字节在高位上)常用直接寻址方式:ORG 0000HSTART: MOV A,40H ANL A,#0FH SWAP A MOV 42H,A MOV A,41H ANL A,#0FH ORL 42H,A SJMP $ END 采用间址: ORG 0000HSTART: MOV R1,#40H MOV A,R1 ANL A,#0FH SWAP A INC R1 XCH A,R1 ANL A,#0FH ORL A,R1 INC R1 MOV R1,A SJ

2、MP $ END使用变量: BUF EQU 40H ORG 0000H MOV R1, #BUF MOV A, R1 ANL A, #0FH SWAP A INC R1 XCH A, R1 ANL A, #0FH ORL A, R1 INC R1 MOV R1, A SJMP $ END2. 编制程序使y按下式赋值: VAR EQU 30H FUNC EQU 31HSTART: MOV A,VAR JZ COMP JNB ACC.7,POSI MOV A,#0FFH SJMP COMP POSI: MOV A,#01HCOMP: MOV FUNC,A SJMP $ END3. 求无符号数累加和

3、。 片内RAM从60H开始的连续8个单元数据之和,放在R3R4中 ORG 0000H LJMP ADD1 ORG 0100HADD1: MOV R3,#00H MOV R4,#00H MOV R2,#8 MOV R0,#60H LOOP: MOV A,R4 ADD A,R0 MOV R4,A CLR A ADDC A,R3 MOV R3,A INC R0 DJNZ R2,LOOP SJMP $ END4已知数据09的平方,设变量x的值在工作寄存器R0中,查表后求x2的值放回累加器,试编制程序。ORG 0000HMOV A,R0MOV DPTR,#TABLEMOVC A,A+DPTRSJMP $

4、TABLE:DB 00H,01H,04H,09H,16H,25H,36H,49H,64H,81HEND5. 用程序实现c=a2+b2。设a、b均小于10,a存在片内RAM31H单元中,b存在32H单元中,把c存入33H单元中。ORG 0000HMOV SP,#60HMOV A,31HLCALL SQRMOV R1,AMOV A,32HLCALL SQRADD A,R1MOV 33H,AL: SJMP L;子程序SQR: MOV DPTR,#TABMOVC A,A+DPTRRETTAB: DB 0,1,4,9,16,25,36,49,64,81END6. P1.0P1.3为输出口, P3.0P3

5、.3 为输入口,使LED灯显示开关的状态。 ORG 0000H L1:MOV C, P3.0 MOV P1.0,C MOV C, P3.1 MOV P1.1, C MOV C, P3.2 MOV P1.2, C MOV C, P3.3 MOV P1.3, C SJMP L1 END7. 使用外部中断0,以P1口的8个LED灯显示外部中断次数。每中断一次,LED指示灯显示按照二进制加1。同时,采用P3.4P3.7控制4个LED灯进行“跑马灯” 循环显示,来模拟CPU执行主程序。 ORG 0000H LJMP MAIN ORG 0003H ;中断入口 LJMP INTN0 ORG 0030H MA

6、IN: MOV 30H, #00H ;计中断次数,开始清零 SETB EX0 ;允许INT0中断 SETB IT0 ;边沿触发方式 SETB EA ;开中断 MOV P1,#0FFH ;P1口指示灯初始状态 ;-模拟主程序- LOOP1: MOV A, #0EFH LOOP: MOV P3,A LCALL DELAY ;延时0.25S RL A JB ACC.0, LOOP SJMP LOOP1 ;-中断服务程序 - INTN0: PUSH ACC ;保护现场 INC 30H ;中断次数加1 MOV A, 30H CPL A MOV P1,A ;点亮指示灯 POP ACC ;恢复现场 RETI

7、 ;中断返回 ;- DELAY: MOV R5,#04H ;延时子程序 DL1: MOV R6,#0 DL2: MOV R7,#0 DJNZ R7,$ DJNZ R6,DL2 DJNZ R5, DL1 RET 8.P1口接有8个发光二极管,编程使8个指示灯轮流点亮,每个灯亮0.25s,单片机晶振为12MHz。 分析:fosc=12MHz, 1M=1s 16位定时器最大定时时间: t=(216-初值) 机器周期 =(65536-0) 1s=65.5ms 0.25s=5 50ms 定时50ms初值: 50 103=65536-初值; 初值=15536=3CB0H ORG 0000H AJMP MA

8、IN ORG 000BH ;中断入口 AJMP INTT0 ORG 0030H ;主程序 MAIN:MOV 31H, #0FEH MOV P1, 31H ;置第一个LED亮 MOV TMOD, #01H ;T0工作于定时方式1 MOV TH0, #3CH MOV TL0, #0B0H ;定时50ms SETB TR0 ;启动T1工作 SETB ET0 ;允许T1中断 SETB EA MOV 30H,#00H ;软件计时单元 WAIT:SJMP WAIT ;等待中断 INTT0:MOV TH0,#3CH ;中断服务程序 MOV TL0,#0B0H ;重装计数初值 INC 30H ;计时单元加1

9、MOV A, 30H CJNE A, #05H, L1 ;0.25S到? MOV 30H, #00H ;计时单元清0 MOV A, 31H RL A ; 左移一位 MOV 31H, A MOV P1, A ;下一个发光二极管亮 L1:RETI ;中断返回 9. P1口接有8个发光二极管,使用T1作为计数器,计外部脉冲的个数,每计3个脉冲产生中断,利用LED指示灯显示中断的次数。 ORG 0000H AJMP MAIN ORG 001BH ;T1中断入口 AJMP INTT1 ORG 0030H ;主程序 MAIN:MOV TMOD,#60H ;T1工作于计数方式2 MOV TH1,#253 ;

10、T1计数初值(256-3) MOV TL1,#253 SETB TR1 ;启动T1工作 SETB ET1 ;允许T1中断 SETB EA ;开中断 MOV 30H, #00H ;中断次数计数单元清零 WAIT:SJMP WAIT ;等待中断;-;中断服务程序 INTT1:INC 30H ;次数单元加1 MOV A,30H CPL A MOV P1,A RETI ;中断返回10. 方式0数据发送的设计查询方式:ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV SCON,#00H ;串口方式0 MOV SBUF,#0fH ;发送数据 L1: JNB TI,L1 ;等待

11、串口方式完毕 CLR TI ;清发送中断标志 SJMP $ END采用中断方式 ORG 0000H LJMP MAIN ORG 0023H ;串口中断向量入口 LJMP UARTINT ORG 0030H MAIN: MOV SP,#60H MOV SCON,#00H ;串口方式0 SETB EA ;开中断 SETB ES ;允许串口中断 MOV SBUF,#0f0H ;发送数据 SJMP $ UARTINT:CLR TI ;中断服务程序 RETI END11. 让P1口灯轮流亮起来 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV A, #0FEH ;初始值 M

12、OV SCON, #00H ;串口方式0 L1: MOV SBUF, A ;发送数据 JNB TI, $ ;发送完毕? CLR TI LCALL DLEAY ;延时0.3S RL A ;左移1位 JB ACC.7, L1 ;8位循环完毕? L2:MOV SBUF, A ;发送数据 JNB TI, $ CLR TI LCALL DLEAY ;延时 RR A ;右移1位 JB ACC.0, L2 ;8位循环完毕? SJMP L1 ;重新开始 DLEAY:MOV R7, #03H DL1: MOV R6, #0 DL2: MOV R5, #0 DJNZ R5, $ DJNZ R6, DL2 DJNZ

13、 R7, DL1 RET 12. 在某控制系统中有甲、乙两个单片机,甲单片机首先将P1口上拨动开关状态发送给乙单片机。乙单片机将接收的数据输出至P1,点亮相应端口的LED。设串口波特率采用9600(实验台fosc=11.0592MHz),电路如图所示: 方式1的波特率: B=T1的溢出率2SMOD/32 =2SMOD/32fosc/(12(256-TH1) 取SMOD=0则:9600=11.0592106/(12(256-TH1)32) TH1=253,串口禁止中断。 定时器T1工作于方式2(8位自动重装初值),禁止中断。ORG 0000H MOV TMOD,#20H ;T1方式2 MOV T

14、H1,#253 ;初值253,B=9600 MOV TL1,#253 MOV SCON,#40H ;串口方式1 MOV PCON,#00H ;SMOD=0 SETB TR1 ;启动T1 LL:MOV P1,#0FFH MOV SBUF,P1 ;发送数据 JNB TI,$ CLR TI SJMP LL END ORG 0000H MOV TMOD,#20H ;T1方式2 MOV TH1,#253 ;初值253,B=9600 MOV TL1,#253 MOV SCON,#40H ;串口方式1 MOV PCON,#00H ;SMOD=0 SETB TR1 ;启动T1 SETB REN ;允许串口接收

15、 LL:MOV P1,SBUF ;接收数据 JNB RI,$ CLR RI SJMP LL END13.P1口控制LED进行倒计时显示。 ORG 0000H LJMP 0030H ORG 000BH LJMP INTT0 ORG 0030H MOV TMOD,#01H MOV TH0,#3CH MOV TL0,#0B0H ;50ms SETB TR0 SETB ET0 SETB EA MOV 30H,#00 ;计时单元清零 MOV 31H,#09H ;初值 MOV DPTR,#TAB MOV A,31H MOVC A,A+DPTR MOV P1,A ;显示“9” SJMP $ ;-INTT0:

16、MOV TH0,#3CH MOV TL0,#0B0H INC 30H MOV A,30H CJNE A,#20,L2 ;1S到? MOV 30H,#0 ;计时单元清零 DEC 30H ;倒计时单元减1 MOV A,30H CJNE A,#0FFH,L1 ;9秒完成? CLR TR0 SJMP L2 L1:MOV DPTR,#TAB MOVC A,A+DPTR ;转换成七段码 MOV P1,A L2:RETI TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH ;共阳极7段码表 14.

17、在LED显示器上显示“12345678”使用P1口作段口、P3口作位口 ;- ; 74LS138: C-P27,B-P26,A-P25, Y7-8255CS, A1A0-A1A0 ;- ORG 0000H LJMP 0030H ORG 0030H MOV R0,#30H ;显示缓冲器首址 MOV A,#01 MOV R7,#08 ;8个LED CHU:MOV R0,A INC A ;送入12345678 INC R0 DJNZ R7,CHU ;- MOV DPTR,#7FFFH ;8255初始化 MOV A,#10000000H ;控制字 MOVX DPTR,A ;- STAR:LCALL D

18、ISP AJMP STAR ;- DISP:MOV R0,#30H ;显示缓冲器首址 MOV R3, #01H ;位码 MOV R7,#08H ;8个LED DIR1:MOV A, R0 ;取显示数据 MOV DPTR, #TAB ;7段码表 MOVC A, A+DPTR ;查表求得7段码 MOV DPTR,#7FFCH MOVX DPTR, A ;7段码送段口 MOV A, R3 ;位码 INC DPTR MOVX DPTR, A ;位码送位口 LCALL DL1 ;延时1ms RL A ;位码左移 MOV R3, A INC R0 ;指向下一位 DJNZ R7,DIR1 ;8位显示完毕?

19、MOV DPTR,#7FFCH ;段口 MOV A,#00H ;暗码 MOVX DPTR,A ;关显示 RET ;- TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H DB 80H,90H,88H,83H,0C6H,0A1H,86H,8EH ;共阳极7段码表 ;- DL1: MOV R6, #02H ;1ms延时 DL11:MOV R5, #248 DJNZ R5, $ DJNZ R6, DL11 RET ;- 15 YE_JING.ASM ;-; E=P10 RW=P11 RS=P12 I/O操作;- COM EQU 27H ;命令寄存器单元 TIME

20、EQU 30H ;延时单元;- HANG1 EQU 80H ;液晶第一行 HANG2 EQU 90H ;液晶第二行 HANG3 EQU 88H ;液晶第三行 HANG4 EQU 98H ;液晶第四行;- E EQU P1.0 RW EQU P1.1 RS EQU P1.2 ;- ORG 0000H AJMP 0030H ORG 0030H LCALL INI ;初始化 ;- MAIN1:MOV COM,#HANG1 ;第1行 MOV DPTR,#WEL_1 LCALL W_LINE MOV COM,#HANG2 ;第2行 MOV DPTR,#WEL_2 LCALL W_LINE MOV COM

21、,#HANG3 ;第3行 MOV DPTR,#WEL_3 LCALL W_LINE MOV COM,#HANG4 ;第4行 MOV DPTR,#WEL_4 LCALL W_LINE ;- STAR:LJMP STAR ;- W_LINE:MOV A,COM LCALL SEND_I ;写行 MOV R2,#16 ;16个 W_L1:MOV A,#00H MOVC A,A+DPTR ;取数据 LCALL SEND_D INC DPTR DJNZ R2,W_L1 RET ;- INI:MOV A,#33H ;基本指令,8bit模式,基本指令 LCALL SEND_I LCALL DELAY MOV

22、 A,#0cH ;显示开,游标关,反白关 LCALL SEND_I LCALL DELAY MOV A,#01H ;清除显示 LCALL SEND_I LCALL DELAY MOV A,#06H ;进入设定点,游标右移,画面不移动 LCALL SEND_I LCALL DELAY RET ;- DELAY:MOV R7,#6 ;延时3ms D2:MOV R6,#248 DJNZ R6,$ DJNZ R7,D2 RET ;- WEL_1:DB 山东理工大学 WEL_2:DB 电气电子工程学院 WEL_3:DB 单片机互动教学室 WEL_4:DB DTS-A 教学平台 ;- ; 发送数据子程序

23、;- SEND_D:LCALL CHK_BUSY ;检测模块内部工作状态 SETB RS ;RS=1 选择数据寄存器 CLR RW ;RW=0 写状态 MOV P0,A ;送数据到数据口 SETB E NOP NOP CLR E RET ;- ; 发送指令子程序 ;- SEND_I:LCALL CHK_BUSY ;检测模块内部工作状态 CLR RS ;RS=0 选择指令寄存器 CLR RW ;RW=0 写状态 MOV P0,A ;送数据到数据口 SETB E NOP NOP CLR E RET ;- ; 测忙碌子程序 ;-CHK_BUSY:MOV P0,#0FFH CLR RS ;RS=0 选

24、择指令寄存器 SETB RW ;RW=1 读状态 SETB E JB P0.7,$ ;判别BF位 CLR E RET;- 16. 8255做显示器接口1、设计8255的译码电路; 2、确定8255的端口地址; 3、在LED显示器上显示“12345678” ;- ; 74LS138: C-P27,B-P26,A-P25, Y7-8255CS, A1A0-A1A0 ;- ORG 0000H LJMP 0030H ORG 0030H MOV R0,#30H ;显示缓冲器首址 MOV A,#01 MOV R7,#08 ;8个LED CHU:MOV R0,A INC A ;送入12345678 INC

25、R0 DJNZ R7,CHU ;- MOV DPTR,#7FFFH ;8255初始化 MOV A,#10000000H ;控制字 MOVX DPTR,A ;- STAR:LCALL DISP AJMP STAR ;- DISP:MOV R0,#30H ;显示缓冲器首址 MOV R3, #01H ;位码 MOV R7,#08H ;8个LED DIR1:MOV A, R0 ;取显示数据 MOV DPTR, #TAB ;7段码表 MOVC A, A+DPTR ;查表求得7段码 MOV DPTR,#7FFCH MOVX DPTR, A ;7段码送段口 MOV A, R3 ;位码 INC DPTR MOVX DPTR, A ;位码送位口 LCALL DL1 ;延时1ms RL A ;位码左移 MOV R3, A INC R0 ;指向下一位 DJNZ R7,DIR1 ;8位显示完毕? MOV DPTR,#7FFCH ;段口 MOV A,#00H

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2