教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 高等教育 >

中南大学单片机实验报告(2)

来源:网络收集 时间:2025-10-17
导读: 2. 拆字程序 流程图为 程序如下: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV DPTR,#7000H ; MOV A,#12H ; MOVX @DPTR,A ; RR A ; RR A ; RR A ; RR A ; ANL A,#0FH ; MOV DPTR,#7001H ; MOVX @DPTR,A ; MOV DPTR,#7

2. 拆字程序

流程图为

程序如下: ORG 0000H LJMP MAIN

ORG 0100H

MAIN: MOV DPTR,#7000H ; MOV A,#12H ;

MOVX @DPTR,A ; RR A ; RR A ; RR A ; RR A ;

ANL A,#0FH ; MOV DPTR,#7001H ; MOVX @DPTR,A ; MOV DPTR,#7000H ;

MOVX A,@DPTR ;

高位送7001H低位

中南大学单片机实验报告

ANL A,#0FH ; 低位送7002H低位

MOV DPTR,#7002H ; MOVX @DPTR,A ; SJMP $ ;设置断点, 观察实验结果中的内容 END 结果如下:

3.拼字程序

流程图如下:

程序如下:

ORG 0000H LJMP MAIN

ORG 0100H

MAIN: MOV DPTR,#7000H ; MOV A,#01H ; MOVX @DPTR,A ; ANL A,#0FH ;屏蔽高位

SWAP A ;

MOV B,A ;

MOV DPTR,#7001H ;送7001H MOV A,#0AH ; MOVX @DPTR,A ;

中南大学单片机实验报告

ANL A,#0FH ;

ORL A,B ;拼送后送7002H

MOV DPTR,#7002H ; MOVX @DPTR,A ; SJMP $ ;设置断点, 观察实验结果中的内容 END

结果如下:

4. 数据传送程序设计

把(R2,R3)源RAM中首地址内的(R6,R7)个字节数据传送到(R4,R5)目的RAM中。 流程图如下

程序: ORG 0000H

LJMP MAIN ORG 0100H

MAIN: MOV R2,#70H ;

MOV R3,#00H ;源地址 MOV R4,#71H ;

中南大学单片机实验报告

MOV R5,#00H ;目的地址 MOV R6,#00H ;

MOV R7,#07H ;传送个数 MOV R1,#10H ; MOV R0,#07H ;

MOV DPH,R2 ; MOV DPL,R3 ;

MOV A,R1 ; L0:

MOVX @DPTR,A ; INC DPTR ; DJNZ R0,L0 ;赋值

L2: MOV R7,#0FFH ; L1: MOV DPH,R2 ; MOV DPL,R3 ; MOVX A,@DPTR ;

INC DPTR ; MOV R2,DPH ; MOV R3,DPL ; MOV DPH,R4 ; MOV DPL,R5 ; MOVX @DPTR,A ; INC DPTR ; MOV R4,DPH ; MOV R5,DPL ; DJNZ R7,L1 ; DJNZ R6,L2 ; SJMP $ END

结果如下:

把7000h中的8个数据发给7100h中:

中南大学单片机实验报告

5. 排序程序

程序如下:

ESELSORT :MOV R7,N DEC R7 ESST1 :MOV A,R7 MOV R6,A MOV DPL,ADDPL MOV R1,DPL MOV DPH,ADDPH MOV R0,DPH MOVX A,@DPTR MOV B,A ESST2 :INC DPTR MOVX A,@DPTR CLR C SUBB A,B JC ESST3 MOV R0,DPL MOV R1,DPH MOVX A,@DPTR MOV B,A

ESST3 :DJNZ R6,ESST2 MOVX A,@DPTR XCH A,B MOVX @DPTR,A MOV DPL,R0 MOV DPH,R1 MOV A,B MOVX @DPTR,A DJNZ R7,ESST1 RET

中南大学单片机实验报告

6. 散转程序

流程图如下:

程序如下:

ORG 0000H LJMP MAIN

ORG 0100H MAIN:

MOV R0,#02 MOV A,R0 RL A ADD A,R0

MOV DPTR,#TA JMP @A+DPTR TA: LJMP PM0 LJMP PM1 LJMP PM2 LJMP PM3

PM0: MOV R1,#01H LJMP MAIN PM1: MOV R2,#02H LJMP MAIN PM2: MOV R3,#03H LJMP MAIN PM3: MOV R4,#04H LJMP MAIN OVER: SJMP $ END

结果如下:

当修改A=02h时跳转到pwm2 即使R1=03

中南大学单片机实验报告

当修改A=00时即使R1=01,结果如下:

第四章 硬件设计

硬件部分我主要做了三个实验,前两个是用c完成的,后一个是同学指导用汇编完成的,个人觉得用c来做程序还是比会变简单明了很多,而且原理也是一样的。

1. 数字量输入输出实验

任务:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。(要求一定要用到8255) 1)硬件构造如下:

因为要加入8255,所以在硬件与程序中还是遇到了一些小麻烦的,在protus7.0中的8255是有问题的,后来转为7.5才好,可是在实际中又运行不了,只能仿真。

中南大学单片机实验报告

2)程序如下:

#include<reg51.h> unsigned char count;

sbit A0=P2^0; sbit A1=P2^1;

sbit WR_8255=P2^3; sbit CS=P2^4;

sbit RESET_8255=P2^2;

void SendData(unsigned char dat);

void delay(void) {

unsigned char a,b,c; for(c=19;c>0;c--)

for(b=20;b>0;b--)

for(a=130;a>0;a--); }

void main()

{ unsigned char i,value;

IT0=1; //设置外部中断0下降沿触发 EX0=1; //允许外部中断0 EA=1; //开总中断

RESET_8255=1; //上电复位8255 for(i=0;i<10;i++); RESET_8255=0;

中南大学单片机实验报告

while(1)

if(count==0) {

value=0x01;

for(i=0;i<8;i++) {

//左移

{

WR_8255=0; A0=1; A1=1; P0=0x80;

//设置8255A口输出工作方式

CS=0;

for(i=0;i<10;i++); WR_8255=1; CS=1;

SendData(value); delay();

SendData(0x00); value=value<<1;

} }

if(count==1) {

value=0x80;

for(i=0;i<8;i++) //右移 {

SendData(value); delay();

SendData(0x00); value=value>>1;

}

}

if(count==2) { }

SendData(0xFF); //闪烁 delay();

SendData(0x00); delay();

} }

中南大学单片机实验报告

//外部中断0中断服务程序,用于选择LED的方式 void extra() interrupt 0 { count=(count+1)%3; }

//向8255的A口写一个数据 void SendData(unsigned char dat) { }

unsigned char i; WR_8255=0; A0=0; A1=0; P0=dat;…… 此处隐藏:2673字,全部文档内容请下载后查看。喜欢就下载吧 ……

中南大学单片机实验报告(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/123833.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)