单片机串并口转换实验

我也是刚入手单片机,今天编了一段小程序,就是关于单片机串口转并口和并口转串口的一个小实验,本程序在PTOTUES中完美运行。在单片机开发试板上也是完美运行。今天贴出来供大家分享,看完本历程,有助于提高您对单片机IO口的基本操作,锁存器的用法以及串并转换的使用技能

#include

本例程的电路连接图如上,在电路中使用了AT89C51单片机一块,74HC595八路串/并转换器,74HC165八路并串转换器和一片74HC573 锁存器。实验者请按上图连接好实验电路。

#include #include< intrins.h >

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

code uint a[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};

sbit SO=P1^0; //定义165的输出

sbit STCP=P1^1;

sbit DS=P1^2;

sbit SHCP=P1^3;

sbit SHLD=P1^4;

sbit CLK=P1^5;

sbit cs573=P1^6;

/**************************************************/

void delay(ulong X) //延时函数,采用了形参传递函数 {

while(X--);

}

/**************************************************/

void LED(); //函数声明

/**************************************************/

void main() //主函数

{

while(1)

{

LED ();

}

}

/****************************************************/ void LED()

{

uint i,j,k;

uchar n,m;

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

{

cs573=1;

P2=a[i]; //往P2口送流水灯字符,因为有8个流水灯,所以i=8循环八次,LED小灯依次被点亮

cs573=0; //把P2口送过来的数据锁存

SHLD=0; //74HC165开始装载数据

delay(10);

SHLD=1;

for(j=0;j<8;j++) //开始八次循环移位

{ n<<=1;

delay(10);

CLK=0;

n|=SO;

delay(10);

CLK=1;

}

P3=n;

m=n;

for(k=0;k<8;k++) //74HC595开始转换数据

{

SHCP=0;

if((m&0x80)==0x80)

DS=1;

else DS=0;

m<<=1;

SHCP=1;

delay(300);

}

STCP=0;

STCP=1;

delay(30000);

}

}

合集下载

单片机串行通信实验

单片机串行通信实验

实验四 单片机串行通信实验

一、实验目的

1、掌握单片机串行口工作方式的程序设计,及简易三线式通讯的方法。

2、了解实现串行通讯的硬环境、数据格式的协议、数据交换的协议。

3、学习串口通讯的中断方式的程序编写方法

二、实验说明

利用单片机串行口,实现两个实验台之间的串行通讯。其中一个实验台作为发送方,另一侧为接收方。发送方读入按键值,并发送给接收方,接收方收到数据后在LED上显示。

三、实验仪器

计算机

伟福实验箱( lab2000P )

四、实验内容与软件流程图

1、8051的RXD、TXD接线柱在POD51/96仿真板上。

2、通讯双方的RXD、TXD信号本应经过电平转换后再行交叉连接,本实验中为减少连线可将电平转换电路略去,而将双方的RXD、TXD直接交叉连接。也可以将本机的TXD接到RXD上,这样按下的键,就会在本机LED上显示出来。

3、若想与标准的RS232设备通信,就要做电平转换,输出时要将TTL电平换成RS232电平,输入时要将RS232电平换成TTL电平。可以将仿真板上的RXD、TXD信号接到实验板上的“用户串口接线”的相应RXD和TXD端,经过电平转换,通过“用户串口”接到外部的RS232设备。可以用实验仪上的逻辑分析仪采样串口通信的波形

4、软件流程图

5、实验电路连接方式

①双机串行通信方式。TXD脚和RXD脚分别用于发送和接收数据。

②单机通信的情况下,只需将自己的TXD脚与RXD脚连接就可以,不用公地操作。

五、思考题

1、接收到的数据加1显示出来;

2、保存前一个接收到的数据,数据向前推动显示。

六、源程序修改原理及其仿真结果

实验结果图

源程序:

加1显示:

接收到的数据先前推送:

七、心得体会

通过这次实验,我掌握了单片机串行口工作方式的程序设计,及简易三线式通讯的方法。了解了实现串行通讯的硬环境、数据格式的协议、数据交换的协议。学习了串口通讯的中断方式的程序编写方法。

单片机-串并转换

单片机-串并转换

功能实现

/***************************************************

本例主要演示串行转换成并行的功能实现:通过LED灯的闪亮显示(附带电路图)。

***************************************************/

//C语言格式

#include

#define uchar unsigned char

#define uint unsigned int

uint i,j;

uint date[] = {1,2,4,8,16,32,64,128};

//延时

void Delay(uint n){

for(i = 0; i

for(j = 0; j<100; j++);

}

}

void main(){

SCON = 0x0;

while(1){

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

SBUF = date[j]; if(TI == 1){

TI = 0;

Delay(5);

}

}

}

}

//asm格式

ORG 0000H

AJMP START

ORG 0030H

START:

MOV SCON,#0H

MOV 30H,#01H

MOV 31H,#02H

MOV 32H,#04H

MOV 33H,#08H

MOV 34H,#16

MOV 35H,#32

MOV 36H,#64

MOV 37H,#128

MOV R0,#30H

MOV R2,#8

LOOP:

MOV A,@R0

MOV SBUF,A

L0:

JNB TI,L0

穿行口实验报告

穿行口实验报告

一、实验目的

1. 理解穿行口的工作原理和功能。

2. 掌握穿行口在单片机系统中的应用。

3. 学习如何通过编程控制穿行口实现数据传输。

4. 提高对单片机硬件资源和编程技术的应用能力。

二、实验原理

穿行口(Serial Port)是单片机中用于串行通信的接口,它可以将单片机的并行数据转换为串行数据,或将串行数据转换为并行数据。本实验主要涉及MCS-51单片机的串行口,其工作原理如下:

1. 串行通信的基本概念:串行通信是指数据以一位一位的顺序传送,按照一定的顺序进行。与并行通信相比,串行通信的传输速度较慢,但具有传输距离远、抗干扰能力强等优点。

2. MCS-51单片机的串行口:MCS-51单片机的串行口采用全双工通信方式,即同时可以进行发送和接收操作。串行口的主要功能包括:

- 数据发送:将并行数据转换为串行数据,通过串行口发送出去。

- 数据接收:接收串行数据,并将其转换为并行数据。

3. 串行口的工作模式:MCS-51单片机的串行口支持四种工作模式,分别是:

- 模式0:同步移位寄存器方式。

- 模式1:8位UART(通用异步收发传输器)方式。

- 模式2:9位UART方式。

- 模式3:波特率可变UART方式。

三、实验器材

1. 单片机实验板

2. 连接线

3. 示波器(可选) 4. 编程器

四、实验步骤

1. 搭建实验电路:根据实验要求,将单片机实验板上的相关引脚与连接线连接好。

2. 编写程序:使用C语言编写程序,实现串行口的数据发送和接收功能。

3. 编译程序:使用编程器将程序烧录到单片机中。

4. 调试程序:通过示波器或其他测试工具观察串行口的数据传输情况,验证程序的正确性。

5. 实验结果分析:根据实验结果,分析程序的正确性和串行口的工作状态。

五、实验程序

以下是一个简单的串行口发送和接收程序示例:

```c

#include

void main() {

串并转换电路

串并转换电路

作业二——串-并转换电路

一.实验内容:

实现一个串-并转换电路,当输入信号A为1时,串行输入D的值,输入4 bit之后,并行输出Z,同时DONT输出为1。运用状态分析,共三个状态:state0,state1,state2。

设计testbench,检验输出波形。

二.实验代码:

1.修改的core代码如下:

2.设计的testbench代码如下:

其中,输入信号A和D是通过定义寄存器AM和DM,然后寻址获取数值。

a.给复位信号R,时钟信号CLK赋值代码:

b.给输入信号A和D赋值代码:

三.仿真波形

1.总的波形 分析:从这幅图中可以看出,当R=1时,所有的信号复位成0,状态为0,之后当A=1给出ready信号之后,开始串行读数,四个时钟周期后,将数值并行输出到Z,同时DONT变为1,回归状态0。之后再次等待ready信号A=1,如此循环,实现串-并转换。波形正确。

2.第一个并行输出放大波形:

分析:从这幅图中可以看出,当时钟上升沿读取到A=1,说明准备好读入D的数值了,D分别为:1,0,1,1,四个时钟之后,Z并行输出1011,同时DONT输出为1,之后回归到状态0,重新开始准备读数。

3.第二个并行输出波形:

分析:这幅图中,当Z输出1011之后,下一个时钟上升沿,虽然D为1,A也为1,但是由于此时刚读入状态为0,因此还没有开始读数,而是在下一个时钟沿时开始串行读入D,一次读入D为:0,0,1,1,所以最后输出不是1001,而是0011。

单片机串口应用实验报告

单片机串口应用实验报告

单片机串口应用实验报告

实验名称:单片机串口应用实验报告

实验目的:

1. 了解单片机串口通信的原理和应用;

2. 掌握单片机串口通信的编程方法;

3. 实现单片机与计算机之间的数据传输。

实验器材:

1. 单片机开发板(如STC89C52);

2. 串口数据线;

3. 计算机。

实验原理:

单片机的串口通信是通过串行通信接口实现的,其中包括发送数据和接收数据两个部分。串口通信的原理是将数据按照一定的格式进行传输,其中包括起始位、数据位、校验位和停止位。计算机与单片机之间通过串口数据线连接,通过发送和接收数据来实现双向通信。

实验步骤:

1. 连接单片机开发板和计算机,将串口数据线的一端连接到单片机的串口接口,另一端连接到计算机的串口接口或USB转串口适配器。

2. 打开单片机开发环境,创建一个新的工程。

3. 在工程中编写程序,实现单片机与计算机之间的数据传输。可以使用C语言编程,通过串口发送和接收函数来实现数据的发送和接收。

4. 在程序中设置单片机的串口通信参数,包括波特率、数据位、校验位和停止位等。

5. 编译并下载程序到单片机开发板中。

6. 打开计算机上的串口调试助手软件,设置串口参数与单片机一致。

7. 在串口调试助手软件中发送数据,观察单片机是否能够接收到数据,并通过串口发送数据给计算机。

8. 在单片机程序中添加相应的处理逻辑,实现对接收到的数据的处理和回复。

实验结果:

通过串口调试助手软件发送数据,单片机能够正确接收并处理数据,并通过串口发送数据给计算机。实验结果符合预期。

实验总结:

通过本次实验,我了解了单片机串口通信的原理和应用,掌握了单片机串口通信的编程方法。通过实验,我成功实现了单片机与计算机之间的数据传输,并能够对接收到的数据进行处理和回复。这对于实际应用中的数据传输和通信具有重要意义。

单片机并行接口实验

单片机并行接口实验

实验报告

课程名称: 单片机原理

实验项目: 并行接口实验

专业班级:

姓 名: 学 号:

实验室号: 实验组号:

实验时间: 2014.5.4 批阅时间:

指导教师: 成 绩: 1 沈阳工业大学实验报告

(适用计算机程序设计类)

专业班级: 学号: 姓名:

实验名称:并行接口实验

1.实验目的:

1.学习P1口的使用方法。

2.学习延时子程序的编写和使用。

2.实验内容:

1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。

2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。

3.实验方案(程序设计说明)

4.实验步骤或程序(经调试后正确的源程序)

见附件

5.程序运行效果

循环点亮发光二极管

开关状态,在发光二极管上显示出来

2 附件A 沈阳工业大学实验报告

(适用计算机程序设计类)

专业班级: 学号: 姓名:

实验步骤或程序:

步骤:

1.执行程序1(T1_1.ASM)时:P1.0~P1.7接发光二极管L1~L8。

2.执行程序2(T1_1.ASM)时:P1.0~P1.7接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS0(由程序所选择的入口地址而定,与CSO~CS7相应的片选地址请查看第一部分系统资源,以后不赘述)。

单片机串口应用实验报告 2

单片机串口应用实验报告

实验名称:单片机串口应用实验

实验目的:

1. 学习串口通信的基本原理和工作机制;

2. 掌握单片机串口通信的配置方法和编程技巧;

3. 实现单片机与电脑的数据传输和通信。

实验器材和软件:

1. 单片机:STC89C52RC(或其他型号的单片机);

2. 串口模块:MAX232(或其他型号的转换电路);

3. USB转串口模块;

4. 电脑;

5. Keil C51开发环境;

6. 串口调试助手。

实验原理和步骤:

1. 硬件连接:将单片机的RX和TX引脚分别连接到串口模块的TX和RX引脚,并连接串口模块的VCC和GND引脚到单片机的VCC和GND引脚。将串口模块的TX和RX引脚分别连接到USB转串口模块的RX和TX引脚,并将USB转串口模块插入电脑的USB接口。

2. 软件配置:

a. 打开Keil C51开发环境,选择对应的单片机型号;

b. 配置串口通信参数,如波特率、数据位、停止位等;

c. 编写程序,实现串口通信的功能;

d. 编译、烧录程序到单片机中。

实验结果:

在串口调试助手中输入数据,单片机接收到数据后进行处理,并将结果反馈给电脑进行显示。

实验总结和体会:

通过本实验,我了解了串口通信的原理和工作机制,掌握了单片机串口通信的配置方法和编程技巧。实现了单片机与电脑的数据传输和通信,对单片机串口应用有了更深的理解和实践经验。

单片机串行口实验报告实验总结

单片机串行口实验报告实验总结

一、实验目的

本实验旨在让学生了解单片机串行口的基本原理和应用,掌握单片机串行口的编程方法,培养学生动手实践和解决问题的能力。

二、实验器材

1. STC89C52单片机开发板

2. 电脑串口线

3. 电脑终端仿真软件Tera Term

三、实验原理

串行口是单片机与外部设备进行通信的重要接口之一。串行口通信是指将数据一个位一个地传输,每个数据位之间有一个时钟脉冲来同步传输。常见的串行通信协议有RS232、RS485、SPI等。本实验主要涉及到RS232协议。

四、实验内容

1. 实现单片机向电脑发送数据并显示。

2. 实现电脑向单片机发送数据并控制LED灯闪烁。

五、实验步骤 1. 连接STC89C52单片机开发板和电脑,使用Tera Term打开串口终端。

2. 编写程序,设置单片机的串行口通信参数(波特率、数据位数、停止位数等),并利用SendData函数向电脑发送数据。

3. 在Tera Term中设置相应的串口参数,并打开“local echo”选项,以便观察单片机发送的数据。

4. 编写程序,接收电脑发送的数据,并根据接收到的数据控制LED灯闪烁。

5. 在Tera Term中输入相应的命令,向单片机发送数据,观察LED灯的闪烁情况。

六、实验结果

1. 实现了单片机向电脑发送数据并显示。

2. 实现了电脑向单片机发送数据并控制LED灯闪烁。

七、实验总结

本实验使我对串行口通信有了更深入的理解,掌握了单片机串行口编程方法。同时也锻炼了我的动手能力和解决问题的能力。在实验过程中还需要注意串口参数设置和通信协议选择等问题,加深了我对这些知识点的理解。

单片机并行口实验报告

单片机并行口实验报告

实验二 并行口

实验报告

班级:

学号:

姓名:

教师:

一、实验目的

通过实验了解8051并行口输入方式和输出方式的工作原理及编程方法。

二、实验内容

1、输出实验

如图4-1所示。以8031的P2口为输出口。通过程序控制发光二极管的亮灭。

2、输入实验

如图4-1所示。以8031的P1口为输入口。用开关向P1.0~P1.3输入不同的状态,控制P2口P2.4~P2.7发光二极管的亮灭。

3、查询输入输出实验

如图1-1所示。以8051的P1.6或P1.0为输入位,以P2口为输出,二进制计数记录按键的次数。

图1-1

三、编程提示

1、输出实验程序

(1)设计一组显示花样,编程使得P2口按照设计的花样重复显示。

(2)为了便于观察,每一状态加入延时程序。

2、输入实验程序

开关打开,则输入为1;开关闭合,则输入为0。读取P1.0~ P1.3的状态,并将它们输出到P2.4~ P2.7,驱动发光二极管。所以发光二极管L1~L4的亮灭应与开关P1.0~ P1.3的设置相吻合。

3、查询输入输出程序

(1)编程计数P1.0按键次数,按键不去抖动。

(2)编程计数P1.6按键次数,按键不去抖动。

(3)编程计数P1.0按键次数,按键软件延时去抖动。

观察(1)、(2)、(3)、的结果。

四、实验器材

计算机,目标系统实验板

五、实验步骤

1、在KEILC中按要求编好程序,编译,软件调试,生成.HEX文件。

2、断开电源,按图1-1所示,连好开关及发光二极管电路。

3、下载程序。

4、调试运行程序,观察发光二极管状态。

六、C源程序清单

1、#include

#define uchar unsigned char

#define ON 0

#define OFF 1

51单片机并行端口实验报告

实验 一 MCS-51单片机并行端口实验 

一、实验目的和要求 

目的:进一步熟悉和掌握KEIL集成调试软件和DP-51PROC综合实验系

统的使用,掌握单片机并行端口的编程及使用方法。统的使用,掌握单片机并行端口的编程及使用方法。

要求:将P1口地8位端口使用排线与LED1—LED8按照顺序连接,使用一条单独连接线将P3.2与SW1连接。编制一个P1口地输出程序:将累加器A

中的数据通过P1输出,SW1=1时,对累加器A的内容右移并输出;SW1=0时,

对累加器A左移并输出。左移并输出。

二、实验算法 

编制循环结构的程序,在循环结构内,通过判断P3.2是0还是1,实现对

累加器A的左移和右移,并输出到P1口,P3.2=1时,对累加器A的内容右移

并输出;P3.2=0时,对累加器A左移并输出,为方便肉眼观察还需编制延时子程序,通过调用延子程序实现延时的目的。程序,通过调用延子程序实现延时的目的。

三、实验电路图 

四、实验流程图 

五、程序清单 开始 

SETB P3.2

P3.2=1? 

RLA RRA

A—>P1

DELAY SETB P3.2 MCS—51 P1.7 P1.6 P1.5 P1.4 P1.3 P1.2 P1.1 P1.0 1 +5V

+5V SW1

ORG 8000H ;定义程序的初始地址;定义程序的初始地址 LJMP START 

ORG 8100H 

START: MOV SP,#60H ;将栈顶指针赋初值;将栈顶指针赋初值

SETB P3.2 ;初始化3.2口准备做数据输入端

MOV A,#0FEH ;累加器A赋初值赋初值

LOOP: JNB P3.2,LR ;如果3.2口!口!=1=1则跳转到LR 

RR A ;累加器A里的值循环右移里的值循环右移 SJMP SHOW ;跳转到SHOW 

LR: RL A ;累加器A里的值循环左移里的值循环左移

SHOW: MOV P1,A ;显示程序,将A的值作为输出到P1口 

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档