通过实验熟悉dais软件**环境和mcs-51系列单片机指令系统。掌握程序编制、调试方法和技巧。
1、把r1中内容传送至r0中。
2、把内部数据存储器20h单元中的内容传送至内部数据存储器30h单元中。
3、把外部数据存储器2000h单元中的内容传送至内部数据存储器20h单元中。
4、把外部程序存储器2000h单元中的内容传送至内部数据存储器20h单元中。
5、应用movc a,@a+pc指令求累加器a的平方值y(设y<=255),并把结果送至r7中保存。
6、将(r2r3)和(r4r5)中的双字节无符号数相加,结果存放在40h和41h单元中。
7、设自变量x为一无符号数,存放在内部数据存储器的vax单元,函数y存放在func单元,请编写满足如下关系的程序:
当x>=50时 y=x;
当x<50时 y=5x。
8、在外部数据存储器从2000h到2030h地址单元中存放有一数据块,请将它们分别传送至3000h单元到3030h单元中。
9、将8051片内的数据存储器20h单元中存放的单字节二进制数,转化为ascii码,存放在30h31h单元中,(要求将ascii码转换部分设计为子程序)。
汇编语言程序如下。
1、把r1中内容传送至r0中。
2、把内部数据存储器20h单元中的内容传送至内部数据存储器30h单元中。
3、把内部数据存储器20h单元中的内容传送至外部数据存储器2000h单元中。
4、把外部程序存储器2000h单元中的内容传送至内部数据存储器20h单元中。
org 0000h
mov r1,#22h ;1、把r1中内容传送至r0中。
mov a,r1
mov r0,a
mov 20h,#33h ;2、把内部数据存储器20h单元中的内容传送至内部数据存。
器30h单元中。
mov 30h,20h
mov dptr,#2000h ; 3、把内部数据存储器20h单元中内容传送至外部数据存储。
器2000h单元中。
mov a,20h
movx @dptr,a
mov dptr,#2000h ;4、把外部程序存储器2000h单元中的内容传送至内部数据存。
储器20h单元中。
clr amovc a,@a+dptr
mov 20h,a
sjmp $
org 2000h
db 88h
end5、应用movc a,@a+dptr指令求累加器a的平方值y(设y<=255),并把结果送至r7
中保存。org 0000h
mov a,#03h ;查3的平方值。
mov dptr,#tab ;指向平方表的表头。
movc a,@a+dptr ;查表指令。
sjmp $
tab:db 0,1,4,9,16,25,36,49,64,81,100,121,144,169,196,255;平方表。
end6、将(r2r3)和(r4r5)中的双字节无符号数相加,结果存放在40h和41h单元中。
org 0000h
clr cmov r2,#22h
mov r3,#33h
mov r4,#44h
mov r5,#55h
mov a,r3
add a,r5
mov 40h,a
mov a,r2
addc a,r4
mov 41h,a
sjmp $
end7、设自变量x为一无符号数,存放在内部数据存储器的vax单元,函数y存放在func
单元,请编写满足如下关系的程序:
当x>=50时 y=x;
当x<50时 y=5x。
vax equ 30h
func equ 40h
org 0000h
mov vax,#
mov a,vax
cjne a,#50,fen1
fen1:jc fen2 ;小于50跳到fen2
sjmp exit1
fen2:mov b,#
mul ab
exit1:mov func,a
sjmp $
end8、在外部数据存储器从2000h到2030h地址单元中存放有一数据块,请将它们分别传送。
至3000h单元到3030h单元中。
org 0000h
mov dptr,#2000h
mov r2,#31h
loop:movx a,@dptr
mov dph,#30h
movx @dptr,a
inc dpl
mov dph,#20h
djnz r2,loop
sjmp $
end9、将8051片内的数据存储器20h单元中存放的单字节二进制数,转化为ascii码,存放。
在30h,31h单元中,(要求将ascii码转换部分设计为子程序)。
org 0000h
mov 20h,#2ah
mov a,20h
anl a,#0fh
acall asc1
mov 30h,a
mov a,20h
anl a,#0f0h
swap a
acall asc1
mov 31h,a
sjmp $
asc1:cjne a,#10,fen1 ;ascii码转换子程序。
fen1:jc fen2
add a,#7h
fen2:add a,#30h
retend
熟悉定时器/计数器的工作原理并掌握其编程方法和技巧,加深对中断的理解及运用。
1、利用定时器t0的方式1编制一段程序,在p1.7引脚上输出一个方波控制一个红色指示灯。
输出周期为40ms的方波,观察指示灯的变化。
输出周期为200ms的方波,观察指示灯的变化。
2、利用计数器t1(p3.5)记录脉冲的个数。每计满10个脉冲,使灯亮1秒,然后重新计数,循环以上操作。外部脉冲通过实验箱右上角的/sp获得。
1、熟悉mcs-51系列单片机定时器/计数器系统硬件结构与工作原理。
2、掌握定时器/计数器的编程方法,初值的计算方法等。
3、掌握查询方法和中断方式两种方法处理定时/计数的问题。
1、注意定时器/计数器4种工作模式的选择以及初值的计算方法。
2、注意中断程序的应用方法。
3、实验系统的晶振为6mhz。
汇编语言程序如下。
1、利用定时器t0的方式1编制一段程序,在p1.7引脚上输出一个方波控制一个红色指示灯。
①输出周期为40ms的方波,观察指示灯的变化。
②输出周期为200ms的方波,观察指示灯的变化。
实验二 1、①
org 0000h
ajmp main
org 000bh
ajmp t0fw
org 0030h
main:mov tmod,#01h ;t0定时器方式1
mov th0,#0d8h ;20ms=10000个mc,因为计数1个内部脉冲为2微妙。
mov tl0,#0f0h ;初值=65536-10000=55536=0d8f0h
setb ea
setb et0
setb tr0
sjmp $
t0fw:mov th0,#0d8h
mov tl0,#0f0h
cpl p1.7
retiend
;实验二 1、②
org 0000h
ajmp main
org 000bh
ajmp t0fw
org 0030h
main:mov tmod,#01h ;t0定时器方式1
mov th0,#3ch ;100ms=50000个mc
mov tl0,#0b0h ; 初值=65536-50000=15536=3cb0h
setb ea
setb et0
setb tr0
mov r7,#05h
sjmp $
t0fw:mov th0,#3ch
mov tl0,#0b0h
djnz r7,rt
mov r7,#05h
2023年单片机实习
实习报告。姓名 麻泽宇学号 081114214 同组人 李俊婵。1 实验目的。1 熟悉集成电路开发环境。11年6月20日 2 基础应用实验1 熟悉集成开发环境的使用方法 掌握用spce061a单片机c语言编写应用程序的方法。11年6月21日 3 基础应用实验2 掌握spce061a单片机c语言的编程...
2023年党委工作要点 修改版
x公司党委2011年工作要点。草稿 一 2011年党委工作指导思想和方针。年是 十二五 规划的开局之年,是 x公司跨越发展 做强做大的关键一年。2011年分公司党委工作的指导思想是 深入学习贯彻党的十七届五中全会精神,全面落实科学发展观,围绕总公司生产经营中心任务,以创先争优活动为总抓手,不断增强党...
2023年责任书 修改版
2011年度九冶三安公司。部室专业管理目标责任书。公司代表人部室责任人 2011年月日2011年月日。九冶三安公司2011年度部室专业管理目标责任书。为了顺利完成公司2011年度的经营目标,经经理办公会议研究,决定对各部室签订本责任书。一 目标责任书责任人。责任人 各部室部长 含主持工作的副部长 二...