单片机实验报告.doc
单片机试验汇报
试验目的
纯熟使用Keil、Protues两款软件
通过上机操作,增强个人动手实践能力
加深对理论知识的理解
培养运用汇编语言进行初步编写程序的能力
二、试验内容
将片外RAM3050-306FH中数据转移至片内70-8FH中。
规定:可以从Keil或Protues上看到RAM的数据转移成果。
设计一种外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮番循环点亮。
规定:开发板或Prrotues演示
将片内存储器80H中寄存的BCD码转换为ASCII码,规定使用表格查询技术。
规定:在Keil或Protues上看到数据转换成果。
各使用中断方式和查询方式设计一种方波发生器,频率为50HZ。
规定:Protues使软件间示波器显示方波。
三、试验程序
1.\\将片外RAM3050-306FH中数据转移至片内70-8FH中
ORG0000H
AJMPMAIN\\上电,转向主程序
ORG0030H\\主程序入口
MAIN:MOVDPTR,#3050H\\数据指针指向地址3050H
MOVA,#04H\\将立即数04H送A寄存器
MOVR0,#20H
NEXT:MOVX@DPTR,A
INCDPTR\\数据指针DPTR自加一
DJNZR0,NEXT\\判断与否跳转到NEXT或继续向下执行
MOVDPTR,#3050H
MOVR0,#70H
MOVR2,#20H
NEXT1:
MOVXA,@DPTR
MOV@R0,A
INCDPTR
INCR0
DJNZR2,NEXT1
SJMP$\\等待
END
2.\\设计一种外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮番循环点亮
ORG0000H
SJMPMAIN\\上电,转向主程序
ORG0003H\\外部中断0向量入口
AJMPINSER
ORG0030H\\主程序入口
MAIN:SETBEX0\\容许外部中断0中断
SETBIT0\\选择边缘触发方式
SETBEA \\CPU开中断
HERE:SJMPHERE\\等待中断
ORG0200H
INSER: MOVR2,#08H\\设置循环次数
MOVA,#01H\\赋初值,设置高电平亮
NEXT:MOVP2,A\\将初值送往P2口
LCALLDELAY\\延时
RLA\\左移一位
DJNZR2,NEXT\\判断循环次数,与否跳转到NEXT或继续向下执行
RETI\\中断返回
DELAY:MOVR3,#0FFH\\延时程序
DEL2:MOVR4,#0FFH
DEL1:NOP
DJNZR4,DEL1
DJNZR3,DEL2
RET
END
3.\\将片内存储器80H中寄存的BCD码转换为ASCII码,规定使用表格查询技术
ORG0000H
LJMPMAIN
ORG0030H\\主程序起始地址
MAIN:
MOV80H,#05H\\将立即数50H转送内存单元80H
MOVA,80H\\将内存单元80H中的内容送寄存器A
MOVDPTR,#TAB
MOVCA,@A+DPTR\\A寄存器内容加指针偏移量后送A寄存器
MOV80H,A
RET
TAB:DB30H,31H,32H,33H,34H
DB35H,36H,37H,38H,39H
4.1\\中断方式产生50HZ方波
ORG0000H
AJMPMAIN
ORG0030H \\主程序入口
MAIN:MOVTMOD,#10H \\设置定期器工作模式为模式1
MO