导航:首页 > 操作系统 > 单片机实训题目

单片机实训题目

发布时间:2023-03-12 03:41:26

‘壹’ 简单的单片机实验题目!编了下,不知道对不对!麻烦指点!

本题目涉及到两个片外地址。
传统的单片机,只有一个片外数据指针DPTR,地址的处理就比较麻烦。
稍新一些的单片机,如AT89S52,就有两个DPTR。
楼主的题目,像是学校里面的作业,一般是不使用两个DPTR的。
本题目,数据量很小,可以先全部倒到片内,再传送到片外的目的地。
这样便于大批数据的修改,但是,为了解决现在的小问题,程序未免嫌长。
还是在楼主的程序上,稍加修改。
程序如下:
;
MOV DPTR, #1000H ;第一块地址
MOV R7, #10H ;第二块地址
MOV R6, #10H ;此处修改了,原为00H
MOV R2, #8
LOOP:
MOVX A, @DPTR ;取第一地址内容
MOV B, A ;暂时存放
PUSH DPH
PUSH DPL
MOV DPH, R7
MOV DPL, R6 ;DPTR = 1010H
MOVX A,@DPTR ;取第二地址内容
XCH A, B
MOVX @DPTR, A ;交换存放
INC DPTR
MOV R7, DPH ;保存第二地址
MOV R6, DPL
POP DPL ;恢复第一地址
POP DPH
XCH A, B
MOVX @DPTR, A ;将首地址1010H的内容放到1000H
INC DPTR
DJNZ R2,LOOP
;完

‘贰’ 单片机实验(proteus+keil)串行通信实验

我给你

程序:

#include<reg51.h>

volatilechartemp;

volatilecharflag;

voidmain(void)

{

P3|=0x03;

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

TR1=1;

EA=1;

ES=1;

SM0=0;

SM1=1;

REN=1;

IP=0x00;

flag=0;

while(1)

{

while(flag==0);

flag=0;

TI=0;

SBUF=temp;

while(!TI);

}

}

voidSerialIsr(void)interrupt4

{

if(RI)

{

RI=0;

temp=SBUF;

flag=1;

}

}

‘叁’ 单片机汇编实验

1将80C51片内RAM的20H~2EH共15个单元置以初值0A0H~0AEH,
mov r0,#20H
mov a,#0a0h
loop:
mov @r0,a
inc r0
inc a
cjne r0,#2fh,loop

然后再将8700H~870EH单元的内容传送到片内RAM的60H~6EH中。
mov dptr,#8700h
mov r0,#60h
loop2:
movx a,@dptr
mov @r0,a
inc dptr
inc r0
mov a,dpl
cjne a,#0fh,loop2
最后将20H~2EH单元的内容传送到片外RAM的8700H~870EH
mov dptr,#8700h
mov r0,#20h
loop3:
mov a,@r0
movx @dptr,a
inc dptr
inc r0
cjne r0,#2fh,loop3
end

2用P1口的p1.0-p1.7八个端口做输出口,接8只发光二极管(LED),编写程序使LED循环点亮。
mov a,#1
loop:
rl a
mov p1,a
;delay
mov r1,#0ffh
loop2:mov r2,#0ffh
djnz r2,$
djnz r1,loop2
;delay end
sjmp loop
end
3题目: P1口接8只发光二极管(L0~L7), T1作定时器,系统晶振6MHz。编写程序,让第1秒时L0~L3点亮, L4~L7暗;第2秒时L0~L3暗, L4~L7亮;第3秒时L0~L7全亮;第4秒时L0~L7全暗;第5秒时L0~L3点亮, L4~L7暗;如此循环下去......
;这个有点复杂了……
org 0h
sjmp start
org 0bh
mov th0,#0bh
mov tl0,#0dch
inc r7;R7是计数器,满8次表示1秒到了
cjne r7,#8,exit
mov r7,#0
inc r6
cjne r6,#4,skip
mov r6,#0
skip:
mov a,r6
movc a,@a+dptr
mov p1,a
exit:reti
start:
mov tmod,#1
setb ea
setb et0
setb tr0
mov dptr,#tab
sjmp $
tab:db 0f0h,0fh,0h,0ffh

‘肆’ 单片机汇编编程实验题求解,必采纳

MOV 40H,#68H ;
MOV A,40H ;取压缩BCD数。
ANL A,#0F0H ;屏蔽低4位,保留高4位。
SWAP A ;高低四位交换。
MOV 41H,A ;保存高4位。
MOV A,40H ;再取压缩BCD数
ANL A,#0FH ;屏蔽高4位,保留低4位。
MOV 42H,A ;保存低4位。

‘伍’ 单片机实训题目:8位逻辑电平模块上的LED小灯呈现右侧4盏先闪烁3次,左侧4盏再闪烁3次,状态间隔为2秒。

根据你的要求,我理解为,单片机控制8位逻辑输入采集与8位LED输出指示,那么做模型的时候,用8路开关量输入,8个LED灯做输出,系统启动的时候闪烁3次,间隔2秒,然后开始采集输入信号,在对应的输出端用LED显示出来!

原理图如下:

‘陆’ 单片机的简单实验编程题

循环3次即可。
MOV R0, #20H ;加数1地址、和的地址
MOV R1, #30H ;加数2地址
CLR C
MOV R2, #3 ;循环3次
A_LOOP:
MOV A, @R0 ;取
ADDC A, @R1 ;加
MOV @R0, A ;存
INC R0
INC R1
DJNZ R2, A_LOOP

CLR A
ADDC A, #0 ;得到进位
MOV 23H, A ;保存

RET

阅读全文

与单片机实训题目相关的资料

热点内容
云服务器服务模型架构 浏览:899
删文件夹什么指令 浏览:507
极速抖音已加密怎么办 浏览:601
matlab拉格朗日算法框图 浏览:428
华为公司计算机视觉算法顾问 浏览:252
夏老师讲的单片机 浏览:296
在编程中如何将图片放大 浏览:161
appstore怎么看是否付费 浏览:603
程序员和硕士 浏览:951
gcc编译消耗内存过多 浏览:281
昌邑网站制作源码 浏览:127
单片机的反向编译 浏览:463
subsample算法 浏览:899
苹果免费看书app哪个最好 浏览:885
c语言加密怎么弄 浏览:842
c语言编译的错误提示 浏览:767
验机苹果app哪个最好 浏览:666
光遇国际服安卓如何购买礼包 浏览:55
163app怎么下载 浏览:247
电脑程序员下场 浏览:45