千文网小编为你整理了多篇相关的《单片机,双机通信实验报告》,但愿对你工作学习有帮助,当然你在千文网还可以找到更多《单片机,双机通信实验报告》。
单片机实验报告
一、实验目的
1.熟练使用Keil、Protues两款软件 2.通过上机操作,增强个人动手实践能力 3.加深对理论知识的理解
4.培养运用汇编语言进行初步编写程序的能力
二、实验内容
1.将片外RAM3050-306FH中数据转移至片内70-8FH中。
要求:可以从Keil或Protues上看到RAM的数据转移结果。2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。
要求:开发板或Prrotues演示
3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。
要求:在Keil或Protues上看到数据转换结果。
4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。
要求:Protues使软件间示波器显示方波。
三、实验程序
1.将片外RAM3050-306FH中数据转移至片内70-8FH中
ORG 0000H AJMP MAIN 上电,转向主程序
ORG 0030H 主程序入口
MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器
MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一
DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行
MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1
SJMP $ 等待
END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮 ORG 0000H SJMP MAIN 上电,转向主程序
ORG 0003H 外部中断0向量入口
AJMP INSER ORG 0030H 主程序入口
MAIN: SETB EX0 SETB IT0
SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行
RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP
允许外部中断0中断 选择边沿触发方式 开中断 等待中断 设置循环次数 赋初值,设置高电平亮 将初值送往P2口 延时 左移一位
判断循环次数,是否跳转到中断返回 延时程序 DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波
ORG 0000H
AJMP MAIN
ORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值
MOV TL1,#0F0H
SETB ET1 开中断
SETB EA CPU开中断
SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断 ORG 001BH T1中断向量地址
CLR TF1 将TF1清零
CPL P2.0 P2.0取反输出
MOV TH1,#0D8H 重装初值
MOV TH0,#0F0H
RETI;中断返回
END 4.2 查询方式产生50HZ方波
ORG 0000H
AJMP MAIN
ORG 0030H 主程序入口
MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值
MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待
CLR TF1
产生溢出,清标志位
CPL P2.0 P2.0取反输出
SJMP LOOP 循环
END
四、实验结果截图
1.2
3.4.1
4.2