一、实验目的:
学习串行口的工作方式,掌握单片机通信程序编制方法。
二、实验设备:
PC计算机一台,Dais-52PRO+实验系统一套。
三、实验内容:
与PC进行串行通信
四、与PC进行串行通信
1、实验原理:
8051单片机通过MAX232芯片与PC机进行通信,在PC机上运行串口助手软件。PC机通过软件助手发数据给单片机,单片机收到数据后取反发给PC机,可以在PC上观察数据。
2、实验步骤:
① 将IO口区的P3.0与PACK区扩展板的RXD(P3.0)连接;
② 将IO口区的P3.1与PACK区扩展板的TXD(P3.1)连接;
③ 将PACK区模块的DB9通过串口线与PC的DB9连接;
④ 在PC机上打开串口助手,软件,按照下图进行设置;
⑤ 编写程序,经编译、链接无语法错误后装载到实验系统;
⑥ 运行程序,在发送区输入发送的字符,点击发送,观察接收区接收到的数据。
3、寄存器:
4、参考代码:
//实验四 串行通信实验
ORG 0000H
LJMP MAIN
ORG 0023H
LJMP UART_INT
ORG 0100H
MAIN: MOV SP,#70H
MOV IE,#90H
MOV TMOD,#20H
MOV TH1,#0FDH
MOV TL1,#0FDH
MOV PCON,#00H
MOV SCON,# 50H
SETB TR1
SETB ES
SETB EA
SJMP $
UART_INT: JNB RI,K1
MOV A,SBUF
XRL A,#0FFH
MOV SBUF,A
CLR RI
K1: CLR TI
RETI
END
关键字:51单片机 汇编语言 串行通信
引用地址:
51单片机汇编语言实验(四)----串行通信实验
推荐阅读最新更新时间:2024-11-07 12:28
实现FPGA与PC的串行通信
摘 要:本文主要介绍了基于FPGA技术实现与PC串行通信的过程,给出了各个模块的具体实现方法,分析了实现结果,验证了串行通信的正确性。 引言 串行通信即串行数据传输,实现FPGA与PC的串行通信在实际中,特别是在FPGA的调试中有着很重要的应用。调试过程一般是先进行软件编程仿真,然后将程序下载到芯片中验证设计的正确性,目前还没有更好的工具可以在下载后实时地对FPGA的工作情况和数据进行分析。通过串行通信,可以向FPGA发控制命令让其执行相应的操作,同时把需要的数据通过串口发到PC上进行相应的数据处理和分析,以此来判断FPGA是否按设计要求工作。这样给FPGA的调试带来了很大方便,在不需要DSP等其他额外的硬件条件下,只通过串口
[模拟电子]
51单片机(九).51单片机简单项目—万年历和温度采集
1、实验简介 实现郭天祥老师视频中的DS12C887时钟万年历实验以及一个使用DS18B20进行温度采集的实验。两个实验具体实现的功能如下所示: 1、通过读取按键修改时间、闹钟信息(通过LCD1602显示); 2、闹钟触发时,蜂鸣器报警; 3、将采集到的温度信息显示在LCD或数码管上。 2、电路结构图 如Fig 1所示,DS12C887定时闹钟电路的结构图由四部分组成:数码管显示模块,按键输入模块,蜂鸣器报警模块以及DS12C887时钟电路。在系列(五)、(七)中详细介绍了数码管以及按键部分,在此不做过多赘述。其余的蜂鸣器报警模块电路如Fig 2中所示,由三极管放大电路以及蜂鸣器BELL组成,单片机通过输出高低电平来控
[单片机]
基于51单片机的多普勒血流计系统的设计方案
激光多普勒血流计是微循环研究中用于测定组织、微区血流灌注流量、微循环状态的仪器。利用多普勒移动分量来测定血细胞流量,是一种非损伤、快速、连续、直 接测量组织微区灌流量的新方法,对医学研究有重要意义。本文主要介绍了利用多普勒现象设计的激光多普勒血流计,论述了用51单片机实现的新方法和新措施。 多普勒血流计的出现标志着在微血管灌流方面取得重大进步。本设计采取双通道装置拾取多普勒信号,有效地抑制噪声信号,采用单片机来对信号进行控制及处理,既简化了电路,又有助于信号的处理及读取。运用12位的AD574A不但提高了信号精度,利用其双极性,也省去了以往信号处理中复杂的乘方、开方电路或绝对值电路。通过四位LED显示,直观、准确地读取血细胞灌流量的
[单片机]
51单片机用定时器0实现流水灯
51单片机用定时器0实现流水灯的代码如下,用P1口接led灯,代码如下都有注释就不具体解释了,英语不怎么好,有的地方将就一下喽,本次主要讲一下P1口怎么赋值。原先写的都是用查表来移位的,个人感觉不怎么好,麻烦。直接用位运算的比较好。 n初始值为0,然后n每次循环都加1,P1口赋值语句为: P1=~(0x01 n) ; 此处注意和P1=~(0xfe n) ; 的区别。 /*********调用头文件*****************/ #include reg51.h #include intrins.h /***********宏定义*******************/ #define uint u
[单片机]
以8051单片机为核心的电机转速测量控制程序
以单片机8031为核心, 利用8279芯片实现按键输入和利用数码管显示所测转速,利用ADC0809将输入电压模拟量转化为数字量(实验箱内部已接好相关接口)控制电机转速的目的。然后利用DA0832将电机上的传感器配合DA0832的CKMOT接口将脉冲信号接到8031的INT0,利用外中断实现速度的测量,一次外中断会使速度计数器自动加一,利用定时器产生一秒的计时,得出一秒内速度计数器的值就可以得到电机的转速。另定时计数器每250MS产生一次定时器中断,利用中断来检测是否有新的控制信号输入,以达到实时控制转速的目的。 ORG 0000h ajmp main ORG 0003h ;外部中断0 AJMP ZS ORG 000BH
[单片机]
51单片机超声波模块数码管程序分享
超声波原理简单测距准确,应用广泛下面贴一个自己写的数码管程序,显示部分需要改,写的是我使用的是慧净开发板,共阴数码管。 //超声波模块程序 //Trig = P2^0 //Echo = P3^2 #include #define uchar unsigned char #define uint unsigned int unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66, 0x6d,0x7d,0x07,0x7f,0x6f}; //0-9的码表 uint ti me = 0; uintTImeH = 0; uintTImeL = 0; uint succeed_flag;
[单片机]
51单片机流水灯C语言源程序
************************************************************** 文件名称:flash_led.c 文件说明:流水灯C程序 编写日期:2006年10月5日 程序说明:MCU采用AT89S51,外接12M晶振,P1口输出 *************************************************************/ #include //51系列单片机定义文件 #define uchar unsigned char //定义无符号字符 #define uint unsigned int //定义无符号整数 void delay
[单片机]
C51单片机————定时器计数器
51单片机定时器/计数器 定时(定时控制、测量、延时。。。)和计数(对外部事件统计数目)。 软件定时|数字电路定时|可编程定时/计数器 它们都是怎么实现的呢? 额! 你猜 。。。 软件定时 机器执行一个程序,这个程序没有其他用处,只是为了延时!以达到定时的目的。 数字电路硬件定时 555之类的器件,完成定时 可编程定时/计数器 硬件定时,但是是可编程的,可以通过软件初始化设置定时的要求。 1.结构 定时/计数器实质上是一个加一计数器,可以工作在两种方式里,实际上都是对脉冲计数,只是说脉冲的来源不一样而已! 1. 定时 1. 加一计数。 2. 脉冲来自振荡器的12分频后的脉冲(Fosc/12),简单的
[单片机]