单片机实验讲义 2023年修改版

发布 2020-02-01 08:27:28 阅读 7388

通过实验熟悉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年度的经营目标,经经理办公会议研究,决定对各部室签订本责任书。一 目标责任书责任人。责任人 各部室部长 含主持工作的副部长 二...