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

单片机实训题目

发布时间: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

阅读全文

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

热点内容
优信二手车解压后过户 浏览:61
Windows常用c编译器 浏览:778
关于改善国家网络安全的行政命令 浏览:833
安卓如何下载网易荒野pc服 浏览:654
javainetaddress 浏览:104
苹果4s固件下载完了怎么解压 浏览:1003
命令zpa 浏览:285
python编译器小程序 浏览:944
在app上看视频怎么光线调暗 浏览:540
可以中文解压的解压软件 浏览:593
安卓卸载组件应用怎么安装 浏览:913
使用面向对象编程的方式 浏览:339
程序员项目经理的年终总结范文 浏览:929
内衣的加密设计用来干嘛的 浏览:432
淮安数据加密 浏览:292
魔高一丈指标源码 浏览:982
松下php研究所 浏览:168
c回调java 浏览:399
梦幻端游长安地图互通源码 浏览:745
电脑本地文件如何上传服务器 浏览:313