中南大学单片机实验报告

更新时间:2023-08-25 20:51:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中南大学单片机实验报告

单片机实验报告

学 专业班级:自动化0705 姓 名: 学 指导老师:

中南大学单片机实验报告

目录

第一章 综述................................................................................................................... 0 第二章 实验要求............................................................................................................ 0 第三章 软件设计 ............................................................................................................. 1

1.清零程序 ............................................................................................................. 1 2. 拆字程序 ............................................................................................................. 3 3.拼字程序 ............................................................................................................. 4 4. 数据传送程序设计 ................................................................................................ 5 5. 排序程序 .............................................................................................................. 7 6. 散转程序 .............................................................................................................. 8 第四章 硬件设计 ............................................................................................................. 9

1. 数字量输入输出实验 .......................................................................................... 9

1)硬件构造如下: ............................................................................................ 9 2)程序如下: ................................................................................................. 10 2. 定时器/计数器实验............................................................................................ 12

1)硬件构造如下: .......................................................................................... 12 2)程序如下: ................................................................................................. 13 3. A/D、D/A转换实验 ...................................................................................... 15 1)硬件构造如下: .......................................................................................... 15 2)程序如下: ................................................................................................. 15 4.静态存储器扩展实验............................................................................................ 18

1)程序如下: ................................................................................................. 18 5 串行通信软件设计 ............................................................................................... 19

1)硬件如下: ................................................................................................. 20 2)程序如下: ................................................................................................. 20

第五章 调试过程及体会 ................................................................................................. 23

1 调试过程 ............................................................................................................. 23

2 收获体会 ............................................................................................................. 24

中南大学单片机实验报告

第一章 综述

单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!

单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。

1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。 2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。

Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。

3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。

MCS51系列微控制器应用广泛,在家电、汽车甚至航空等领域都有其活跃的身影。然而,普通51系列微控制器内部资源有限,像我用Proteus构建微控制器虚拟实验室选用的AT89C52只有三个定时器、一个全双工的串行口和中断控制,并且其数据处理能力有限,不适合对大量数据进行复杂分析和运算。

因此,在不重新选型(可选用SoC)的前提下,为实现我们所需要的功能,就需要进行外围扩展。针对微控制器的特点,我们首先考虑串行扩展,因为微控制器的I/O引脚有限,并行扩展一则外围芯片面积比较大,二则对抑制EMI不利。

第二章 实验要求

中南大学单片机实验报告

1、 学习Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;

2、 熟悉TD-51单片机系统板及实验系统的结构及使用;

3、 进行MCS51单片机指令系统软件编程设计与硬件接口功能设计;

4、 学习并掌握Keil C51与Proteus仿真软件联机进行单片机接口电路的设计与编程调试;

5、 完成指定MCS51单片机综合设计题

下面主要分为软件和硬件部分来介绍

软件部分:清零程序与拆字程序设计

拼字程序与数据传送程序设计

排序程序与散转程序设计

硬件部分:静态存储器扩展实验

要求:阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“4.2 FLASH存储器扩展实验”实验项目(P60)。

数字量输入输出实验

LED灯控制(使用8255接口芯片)

要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控 制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。

定时器/计数器实验

定时器控制LED灯

要求:由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。编写程序模拟时序控制装置。开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮 一直循环下去。

A/D、D/A转换实验

要求:Proteus环境下完成小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。 串行通讯实验

要求:Proteus环境下完成利用单片机实验系统,实现与PC机通讯。功能要求:将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。

第三章 软件设计

1.清零程序

因为清零看不出效果,故改为全部写为01,从7000-8000H空间。

中南大学单片机实验报告

程序如下:

ORG 0000H LJMP MAIN

ORG 0100H

MAIN: MOV DPTR,#7000H ;片内RAM首地址 MOV A, #01H ;写入数据初值

MOV R6, #20H

;循环变量

;写数据到RAM

LOOP2: MOV R7, #80H

LOOP1: MOVX @DPTR, A INC DPTR ;地址加1 DJNZ R7, LOOP1 DJNZ R6, LOOP2 SJMP $

END

结果如下:

单步运行下,第一步为:

最后一步为: 8000h为0

中南大学单片机实验报告

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;

CS=0;

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

2. 定时器/计数器实验

定时器控制LED灯

要求:由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。编写程序模拟时序控制装置。开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮 一直循环下去。

1)硬件构造如下:

中南大学单片机实验报告

2)程序如下:

#include<reg51.h> unsigned char count;

void main() {

中南大学单片机实验报告

unsigned char value, i;

TMOD=0x01; TH0=0x4C; TL0=0x00; ET0=1; PT0=1; EA=1; TR0=1; while(1)

{ if( count==20) P1=05H; if (count==40) P1=0AH;

if (count==60) P1=50H;

if (count==80)

P1=0A0H;

if (count==100) P1=55H;

if (count==120) P1=0AAH; if (count==140) P1=0FFH;

if (count==160) P1=00H;

count=0; }

}

void Timer0()interrupt 1 {

TR0=0; TH0=0x4C; TL0=0x00; TR0=1; count++;

}

中南大学单片机实验报告

3. A/D、D/A转换实验

要求:Proteus环境下完成小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。 1)硬件构造如下:

2)程序如下:

PRO_DA EQU 7FFFH PRO_AD EQU 0BFFFH ORG 0000H MAIN:

SJMP MAIN ORG 001BH LJMP KEYSCAN ORG 0030H SETB EA SETB EX1 SETB IT1 MOV P1,#0FH MOV R5,#0FFH MOV R5,#03H CJNE R5,#01H,L1 LCALL SQUARE AJMP TEST

CJNE R5,#02H,L2 LCALL TRIANGLE AJMP TEST

CJNE R5,#03H,L3

TEST:

L1: L2:

中南大学单片机实验报告

LCALL SAWTOOTH AJMP TEST

;键盘扫描中断

L3: KEYSCAN: KEY1:

ACALL T12MS ;MOV R6,A ACALL SCAN JNZ KEY1 SJMP EXIT MOV R2,A

MOV R3,#07FH MOV R4,#03H

MOV P1,R3 MOV A,P1

LOOP1: KEY2:

CPL A

ANL A,#0FH

JNZ KEY2 MOV A,R3 RR A

MOV R3,A

DJNZ R4,LOOP1 SJMP EXIT DEC R4

CJNE R2,#01H,LOOP3 MOV A,#01H

SJMP LOOP6

LOOP3: CJNE R2,#02H,LOOP4 LOOP4:

MOV A,#04H SJMP LOOP6

CJNE R2,#04H,LOOP5

MOV A,#07H SJMP LOOP6

LOOP5: CJNE R2,#08H,LOOP6 MOV A,#0AH LOOP6: ADD A,R4 MOV R5,A

MOV P1,#0FH

;MOV A,R6 EXIT: RETI

;延时后再次扫描有无按键按下

SCAN: MOV P1,#0FH MOV A,P1 CPL A

ANL A,#0FH

本文来源:https://www.bwwdw.com/article/vvei.html

Top