89C51单片机实验指导书

合集下载

THDPJ-3实验指导书+89C51程序+详细说明

THDPJ-3实验指导书+89C51程序+详细说明

实验一 I/O口控制实验 (2)实验二定时器输出PWM实验 (5)实验三蜂鸣器驱动实验 (7)实验四电子琴模拟实验 (8)实验七 74HC138译码器实验 (12)实验八看门狗实验 (13)实验九查询式键盘实验 (15)实验十一 8155 I/O扩展实验 (17)实验十五继电器控制实验 (21)实验十六 I2C总线实验 (23)实验十七实时时钟实验 (28)实验十八温度传感器温度控制实验 (32)实验十九2×16字符型液晶显示实验 (36)实验二十128×64点阵型液晶显示实验 (39)实验二十一红外发射接收实验 (44)实验二十二 ISD1420语音控制实验 (47)实验二十三 RS232串口通信实验 (54)实验二十六 EEPROM外部程序存储器实验 (55)实验二十七 ADC0809并行AD转换实验 (57)实验二十八 TLC549串行AD转换实验 (59)实验二十九 DAC0832并行DA转换实验 (61)实验三十 LTC1446串行DA转换实验 (64)实验三十六微型打印机实验(选配) (66)实验三十七 USB通信实验 (69)实验三十八以太网通信实验 (79)实验三十九 CPLD扩展接口实验(选配) (91)实验一 I/O口控制实验一、实验目的1、学习P1口的使用方法2、学习延时子程序的编写和使用二、实验说明P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。

由准双向口结构可知当P1口用作输入口时,必须先对口的锁存器写“1”,若不先对它写“1”,读入的数据是不正确的。

三、实验内容及步骤实验(一):用P1口做输出口,接八位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

1、使用单片机最小应用系统。

关闭该模块电源,用扁平数据线连接单片机P1口与八位逻辑电平显示模块JD10。

2、用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:缺口朝上。

89C51单片机任务书

89C51单片机任务书
2.能够在较短时间内更新显示的转速;
3.能够在转速较小时延时测量时间以保持测量精度;
4.利用定时/计数器的功能能够分别得到转数和时间,计算得到转速。
任务要求
(进度)
第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。
第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。
[3]阎石.数字电路技术基础(第五版).北京:高等教育出版社,2006
审查意见
系(教研室)主任签字:年月日
单片机系统
课程设计
成绩评定表
设计课题:基于89C51的电机转速计设计
学院名称:电气工程学院
专业班级:
学ቤተ መጻሕፍቲ ባይዱ姓名:
学号:
指导教师:
设计地点:
设计时间:2013-12-16~2013-12-27
指导教师意见:
成绩:
签名:年月日
单片机系统
课程设计
课程设计名称:基于89C51的电机转速计设计
专业班级:
学生姓名:
第5-6天:软件设计,编写程序。
第7-8天:实验室调试。
第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。
主要参考
资料
[1]张迎新.单片微型计算机原理、应用及接口技术(第2版)[M].北京:国防工业出版社,2004
[2]伟福LAB6000系列单片机仿真实验系统使用说明书
学号:
指导教师:
课程设计地点:
课程设计时间:2013-12-16~2013-12-27
单片机系统课程设计任务书
学生姓名
专业班级

89c51实训指导书.doc

89c51实训指导书.doc

基本I/O 口实训 (1)外部数据存储器的应用(6264) (4)外部数据存储器的应用(2864) (6)键盘显示接口芯片的应用 (8)并口扩展的应用 (12)A/D转换的实训 (14)D/A转换的实训 (20)采集温度 (21)制作音乐盒 (27)制作四字单色显示屏 (31)控制微型打印机 (39)实验一:基本I/O 口的实训目的:通过对单片机的编程仿真,学会单片机仿真系统的基本工作过程。

要求:用LED 的亮/灭来体现单片机高/低电平的变化,连接单片机的基本1/0 口,对单片机 进行编程使其完成:(1) 8个LED 顺序点亮,顺序熄灭,依此循环4次。

(2) 8个LED,第1、3、5、7与2、4、6、8 LED 交替点亮,依此循环4次。

(3) (1)和(2)无限次循环。

原理:IK步骤:1,连接系统板的P1 口到LEDo2, 连接PC 机和仿真机的串口线。

3, 给仿真机接通电源。

4, 打开仿真机的电源开关,电源灯亮表示仿真系统已经带电。

5, 编程。

6, 调试。

7, 改换其它I/O 口,调试程序。

2s 」w9 8765433219XIX29—Rtsr±1P2OP21P22P23P24P25P26P2?RXD — TXD气 碱峠PSEN :—1A2A3Ao n 3 4 5 6 7 n 1— •11 1— Inpppppppp咖polwPOJPIMpos附PO?参考程序:ORG OOOOHMAIN: MOV P1,#OFFHMOV R7, #0411BACK1: SETB P3. 0CLR P1.0LCALL YSCLR Pl. 1LCALL YSCLR Pl. 2LCALL YSCLR Pl. 3LCALL YSCLR Pl.4LCALL YSCLR Pl. 5LCALL YSCLR Pl. 6LCALL YSCLR Pl. 7LCALL YSSETB P1.0LCALL YSSETB Pl. 1LCALL YSSETB Pl. 2LCALL YSSETB Pl. 3LCALL YSSETB Pl. 4LCALL YSSETB Pl. 5LCALL YSSETB Pl.6LCALL YSSETB Pl. 7LCALL YSCLR P3. 0DJNZ R7, BACK1MOV R7, #04HBACK2: SETB P3.0CLR Pl. 1CLR Pl. 3CLR Pl. 5CLR Pl. 7LCALL YSLCALL YSSETB Pl. 1SETB Pl. 3SETB Pl. 5SETB Pl. 7CLR P1.0CLR Pl.2CLR Pl. 4CLR Pl. 6LCALL YSLCALL YSSETB P1.0SETB Pl. 2SETB Pl. 4SETB Pl. 6CLR P3. 0DJNZ R7,BACK2LJMP MAINYS: MOV TMOD, #O1HMOV R5, #05HLOOP: MOV THO, #4CIIMOV TLO, #0011SETB TROJNB TEO, $CLR TFOCLR TRODJNZR5, LOOPRETSJMP $EXD心得体会:实验二:外部数据存储器的应用(6264》冃的:学会用单片机和外部数据存储器进行交流,了解单片机和外部数据进行交换时的时序 关系。

AT89C51单片机实验开发板使用手册

AT89C51单片机实验开发板使用手册

AT89C51单片机实验开发板是电子制作实验室网站专为单片机初学者设计并开发的一种实验兼开发板,站长开发这个产品的目的就是为了帮助单片机初学者快速学会单片机技术。

站长本人在自学单片机的过程中,通过做了一系列的实验,从而比较容易地领会了单片机哪些枯燥、难懂的专业术语,而且这款实验开发板弥补了市场上常见的单片机实验板的一些不足,有针对性地面向最终的实用控制功能,增加了实用的继电器接口,可以使实验板能够直接用于控制各种负载,成为一个实用化的嵌入式控制系统。

目前想要学习单片机技术的网友可以分成两类,一类是业余的电子爱好者,想通过自学单片机来提高自己的电子技术水平,以后能够运用到自己熟悉的领域中有所作为,这类网友的动手能力比较好,但是理论知识一般欠缺一些。

另一类是在校的电子专业学生,为了完成一些科技项目或者是把学校学到的知识转化成实际的电子作品,为以后的工作求职创造更好的条件,这类网友需要的就是实践经验了。

站长也是从这两方面需求来开发这个产品的。

网站开设的单片机教程会以一个个独立的单元电路的形式,使单片机初学者在本网站专门网页的详细操作演示的指导下,一步一步通过自己安装元件、调试电路,将网站提供的多个实验按照从简单到复杂,从实现基本功能到完成扩展功能一步一步地完成,脚踏实地全面提高理论知识和动手能力。

以套件的形式提供还有一个好处,就是给后续开发创造空间,比如以后需要设计完成一个独特的单片机控制系统时,可以直接利用实验开发板的一些硬件资源,只安装上需要的元件,把精力集中在编写软件,就能快速完成项目。

购买网站的单片机试验开发板时,会随产品寄出一张A4大小的黑白激光打印的原理图,供安装或试验时分析硬件结构。

网站教程构思:为了配合实验开发板的销售和使用,站长专门编写了一系列的实验教程,所有实验都按照从最简单到复杂原则,通过逐步的安装→实验→再安装→再实验的方式,最终完成所有实验。

网站提供所有实验的详细源程序,所有的程序都有详细的程序注释,而且都经过烧录验证的*.hex烧写文件。

单片机89c51部分程序

单片机89c51部分程序

/*#include <reg51.h>//实验一:用数组方式控制跑马灯unsigned char lamp[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//将P0口,P0.0~P0.7依次亮的值放在数组中void main(){unsigned char a;while(1){for(a=0;a<8;a++){P0=lamp[a];//将数组中对应P0.0~P0.7依次亮的值送P0口}}}*/ //实验一程序到此#include <reg51.h>//实验二:在LED数码管上循环显示"0","1","2","3","4"void delay(unsigned char i);unsigned char led[]={0x3f,0x06,0x5b,0x4f,0x66};//将显示"0","1","2","3","4"对应led数码管的值放在数组中void main(){unsigned char a;P1=0x00;while(1){for(a=0;a<5;a++){P1=led[a];//将数组中"0","1","2","3","4"对应的led数码管的值送P0口delay(200);}}}void delay(unsigned char i){unsigned int j,k;for(k=0;k<i;k++)for(j=0;j<1000;j++);} //实验二程序到此/*#include <reg51.h>//实验三:按键K1接P3.3,在两个LED数码管上显示按键次数(静态)sbit P3_3=P3^3;void delay( );void main(void){unsigned char count=0;char code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};P2=led[count/10];P1=led[count%10];while(1){if(P3_3==0){delay( );if(P3_3==0){count++;if(count==100) count=0;P2=led[count/10];P1=led[count%10];while(P3_3==0);}}}}void delay( ){unsigned char i,j;for(i=20;i>0;i--)for(j=248;j>0;j--);} */。

基于89c51的超声波测距单片机课设

基于89c51的超声波测距单片机课设

基于89c51的超声波测距单片机课设一、引言本文将探讨基于89c51的超声波测距单片机课设的相关内容。

通过该课设,我们可以学习到单片机的基本原理和应用,以及超声波测距技术的实现原理和方法。

二、超声波测距原理超声波测距是一种通过发送超声波脉冲并测量其返回时间来计算距离的技术。

基于89c51的超声波测距单片机,可以通过以下步骤实现测距:1.初始化超声波模块和显示屏模块。

2.发送超声波脉冲。

3.接收超声波返回信号,并计算返回时间。

4.根据返回时间计算距离。

5.在显示屏上显示测距结果。

三、硬件设计1. 单片机选择我们选择使用89c51单片机作为控制芯片,因为它具有丰富的外设接口和较高的运算性能,适合用于控制超声波模块和显示屏。

2. 超声波模块超声波模块包括超声波发射器和接收器。

发射器用于发送超声波脉冲,接收器用于接收超声波的返回信号。

选择合适的超声波模块可以确保测距的准确性和稳定性。

3. 显示屏模块显示屏模块用于显示测距结果。

可以选择液晶显示屏或数码管等适合的显示模块。

四、软件设计1. 系统初始化在系统初始化阶段,需要对单片机的外设进行初始化设置,包括超声波模块和显示屏模块。

2. 超声波模块驱动程序超声波模块驱动程序用于控制超声波的发送和接收。

通过发送脉冲并计算返回时间,可以得到距离的测量结果。

3. 显示程序设计显示程序设计用于将测距结果显示在显示屏上。

可以通过数码管、液晶显示屏等方式实现。

五、实验步骤以下是基于89c51的超声波测距单片机课设的实验步骤:1.硬件搭建:连接89c51单片机、超声波模块和显示屏模块。

2.编写初始化程序:对单片机的外设进行初始化设置。

3.编写超声波模块驱动程序:控制超声波的发送和接收。

4.编写显示程序:将测距结果显示在显示屏上。

5.调试程序:通过实验验证程序的正确性和稳定性。

6.测距实验:将物体放置在不同距离上,进行测距实验,并记录测量结果。

7.分析实验结果:根据实验结果对课设进行评估和改进。

at89c51实验报告

at89c51实验报告

at89c51实验报告AT89C51实验报告引言:AT89C51是一款经典的8位单片机,被广泛应用于各种嵌入式系统中。

本实验报告将介绍我对AT89C51的实验过程和结果,以及对该单片机的一些理解和应用。

实验目的:1. 熟悉AT89C51单片机的基本特性和功能;2. 掌握AT89C51单片机的编程方法和调试技巧;3. 实现简单的功能模块并验证其正确性。

实验过程:1. 硬件准备在实验开始前,我准备了一块AT89C51开发板、一台电脑、一根USB数据线以及一些连接线。

将开发板与电脑连接,确保能够正常通信和编程。

2. 软件设置我选择了Keil C51作为开发工具,打开软件后,新建一个工程,并选择AT89C51作为目标芯片。

接着,我编写了一个简单的程序,用于点亮开发板上的LED灯。

3. 编程调试将编写好的程序下载到AT89C51单片机中,然后通过调试工具进行程序的调试和运行。

在调试过程中,我发现程序中存在一处错误,经过仔细排查后,成功修复了问题。

4. 功能实现在程序调试通过后,我开始尝试实现一些功能模块。

首先,我实现了一个简单的计数器,通过按下开发板上的按钮,可以实现数字的加减操作。

接着,我尝试了一些其他的功能,如LED灯的闪烁、蜂鸣器的发声等。

实验结果:经过一系列的实验和调试,我成功地实现了以上功能模块,并验证了其正确性。

AT89C51单片机表现出了良好的稳定性和可靠性,在进行各种操作时没有出现明显的延迟或错误。

对AT89C51的理解和应用:通过这次实验,我对AT89C51单片机有了更深入的了解。

AT89C51作为一款经典的8位单片机,具有较强的处理能力和丰富的外设接口,可以广泛应用于各种嵌入式系统中。

在实际应用中,AT89C51可以用来控制各种外设,如LED灯、LCD显示屏、温度传感器等。

通过编写相应的程序,可以实现各种功能,如数据采集、数据处理、控制操作等。

此外,AT89C51还支持多种通信协议,如UART、SPI、I2C等,可以与其他设备进行数据交互。

89C51单片机实验指导书

89C51单片机实验指导书

目录实验一系统认识实验 (2)实验二多字节加、减运算实验 (3)实验三多字节乘、除法运算实验 (4)实验四代码转换实验 (5)实验五布尔操作实验 (6)实验六中断系统实验 (7)实验七定时器/计数器实验 (9)实验八串行通讯接口实验 (12)实验九串并转换实验 (16)实验十存储器扩展实验 (18)实验十一8155键盘及显示接口实验 (20)实验十二ADC0809(模/数转换) (24)实验十三 DAC0832(数/模转换) (26)实验十四步进电机实验 (29)实验十五直流电机调速控制实验 (32)附录Windows版Wmd51 3.0使用说明 (34)实验一系统认识实验一.实验目的和要求1.学习和掌握本实验系统的基本操作;2.总结汇编程序的形成和调试过程;3.掌握循环程序的设计;4.画出程序流程图,编制程序并上机调试通过。

二.实验内容1.软件延时若系统时钟为6MHZ,要求实现每隔250毫秒将P1.0口取反。

2.无符号数加法计算N个数据的和,即Y=∑Xi (i=1--6)。

若六个数据放在片内RAM的50H——55H地址单元中,求和的结果Y放在内部RAM的03H(高位)、04H (低位)地址单元中。

1).32H+41H+01H+56H+11H+03H2).95H+01H+02H+44H+48H+12H3).54H+0F6H+1BH+20H+04H+0C1H3.数据排序将内部RAM地址单元30H—3FH中的16个数据按小到大的顺序重新排序。

实验二多字节加、减运算实验一.实验目的和要求1.掌握多字节数的加、减法运算;2.进一步熟悉实验系统的使用方法;3.进一步熟悉汇编程序的调试过程;4.画出程序流程图,编制程序并上机调试通过。

二.实验内容1.多字节无符号数的加法2.多字节无符号数减法入口:被减数低字节地址在R0,减数低字节数地址在R1,字节数在R2;出口:差的低字节地址在R0。

字节数在R3。

3.多字节十进制BCD码减法入口:被减数低字节地址在R1,减数低字节地址在R0,字节数在R2。

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

目录实验一系统认识实验 (2)实验二多字节加、减运算实验 (3)实验三多字节乘、除法运算实验 (4)实验四代码转换实验 (5)实验五布尔操作实验 (6)实验六中断系统实验 (7)实验七定时器/计数器实验 (9)实验八串行通讯接口实验 (12)实验九串并转换实验 (16)实验十存储器扩展实验 (18)实验十一8155键盘及显示接口实验 (20)实验十二ADC0809(模/数转换) (24)实验十三 DAC0832(数/模转换) (26)实验十四步进电机实验 (29)实验十五直流电机调速控制实验 (32)附录Windows版Wmd51 3.0使用说明 (34)实验一系统认识实验一.实验目的和要求1.学习和掌握本实验系统的基本操作;2.总结汇编程序的形成和调试过程;3.掌握循环程序的设计;4.画出程序流程图,编制程序并上机调试通过。

二.实验内容1.软件延时若系统时钟为6MHZ,要求实现每隔250毫秒将P1.0口取反。

2.无符号数加法计算N个数据的和,即Y=∑Xi (i=1--6)。

若六个数据放在片内RAM的50H——55H地址单元中,求和的结果Y放在内部RAM的03H(高位)、04H (低位)地址单元中。

1).32H+41H+01H+56H+11H+03H2).95H+01H+02H+44H+48H+12H3).54H+0F6H+1BH+20H+04H+0C1H3.数据排序将内部RAM地址单元30H—3FH中的16个数据按小到大的顺序重新排序。

实验二多字节加、减运算实验一.实验目的和要求1.掌握多字节数的加、减法运算;2.进一步熟悉实验系统的使用方法;3.进一步熟悉汇编程序的调试过程;4.画出程序流程图,编制程序并上机调试通过。

二.实验内容1.多字节无符号数的加法2.多字节无符号数减法入口:被减数低字节地址在R0,减数低字节数地址在R1,字节数在R2;出口:差的低字节地址在R0。

字节数在R3。

3.多字节十进制BCD码减法入口:被减数低字节地址在R1,减数低字节地址在R0,字节数在R2。

出口:差(补码)的低字节地址在R0,字节数在R3(07H为符号位。

“0”为正,“1”为负)。

实验三多字节乘、除法运算实验一.实验目的和要求1.掌握多字节数的乘、除法运算;2.进一步熟悉MCS-51指令,了解编程方法;3.画出程序流程图,编制程序并上机调试通过。

二.实验内容1.多字节无符号数乘法入口:被乘数低字节地址在R3,乘数低字节地址在R4,字节数在R5;出口:积低字节地址在R6,字节数在R2。

2.多字节无符号BCD码数除法入口: 30H为被除数低字节地址,40H为除数低字节地址,R3存字节数;出口:50H为商低字节地址,30H为余数低字节地址,74H存商字节数;实验四代码转换实验一.实验目的和要求1.熟悉不同进制数及编码相互转换的程序设计方法,加深对数码转换的理解;2.画出程序流程图,编制程序并上机调试通过。

二.实验内容1.BCD码转十进制将累加器A中的8位二进制数转换成3位BCD码格式的十进制。

其中,百位数的BCD码放在21H单元中,十位和个位数放在22H单元中。

2.将累加器A中存放的两个BCD码拆开,求它们的乘积,并把乘积以压缩的BCD码形式送回A中。

实验五布尔操作实验一.实验目的和要求1.熟悉MCS-51指令,了解编程方法;2.掌握布尔指令的使用方法;3.了解8051位寻址的地址划分方法;4.画出程序流程图,编制程序并上机调试通过。

二.实验内容编程实现存放在位地址单元里的两个数进行异或运算,运算的结果放在位地址为02H的单元。

实验六中断系统实验一.实验目的和要求1.掌握单片机中断的原理及使用方法;2.画出程序流程图,编制程序并上机调试通过。

二.实验内容1.通过定时器T1来产生中断控制P1.0线上的脉冲输出,并经三极管驱动扬声器,发出音调信号。

2.实验线路连接示意图ORG 0000HLJMP MAINORG 001BHCPL P1.0RETIORG 1000HMAIN: MOV R1,#00MOV R0,#23HMOV TMOD,#20HMOV IE,#88HL1: MOV DPTR,#3FFFHMOV A,R0INC R0MOVC A,@A+PCJZ MAINMOV R2,AMOV A,#0FFHCLR CSUBB A,R2RL AMOV TH1,ASETB TR1L2: CLR CMOV A,DPLSUBB A,#01MOV DPL,AMOV A,DPHSUBB A,#00MOV DPH,AORL A,DPLJNZ L2CLR TR1SJMP L1DB 33H, 33H, 3DH, 33H, 26H, 26H, 26H, 26H, 2DH, 2DH, 26H, 2DH, 33HDB 33H, 33H, 33H, 33H, 33H, 4DH, 45H, 3DH, 3DH, 3DH, 45H, 4DH, 45HDB 45H, 45H, 45H, 45H, 45H, 45H, 45H, 33H, 33H, 3DH, 33H, 26H, 26HDB 26H, 28H, 2DH, 2DH, 26H, 26H, 33H, 33H, 33H, 33H, 45H, 3DH, 39HDB 39H, 39H, 52H, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 2DH, 2DH DB 26H, 26H, 26H, 26H, 26H, 26H, 28H, 28H, 2DH, 28H, 26H, 26H, 26HDB 26H, 2DH, 28H, 26H, 2DH, 2DH, 33H, 3DH, 4DH, 45H, 45H, 45H, 45HDB 45H, 45H, 45H, 45H, 33H, 33H, 3DH, 33H, 26H, 26H, 26H, 28H, 2DHDB 2DH, 26H, 2DH, 33H, 33H, 33H, 33H, 33H, 33H, 45H, 3DH, 39H, 39HDB 39H, 52H, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 00H, 00HEND实验七定时器/计数器实验一.实验目的和要求1.掌握定时器/计数器的定时方法;2.掌握定时器/计数器的计数方法;3.画出程序流程图,编制程序并上机调试通过。

二.实验内容1.设定两个定时器/计数器工作都为定时模式0,分别控制从P1.0和P1.2发出一个方波,用示波器测量其周期。

2.将定时器/计数器T1设定为计数器工作模式,计数容量为10,计数到后产生中断,中断服务产生一个方波由P1.1输出(计数脉冲由T1输入)。

实验线路连接示意图:ORG 0000HLJMP MAINORG 000BHCPL P1.1MOV TH0,#0F8HMOV TL0,#06HRETIORG 001BHCPL P1.2MOV TH1,#0F8HMOV TL1,#06HRETIORG 1000H MAIN: MOV TH0,#0F8H MOV TL0,#06H MOV TH1,#0F8H MOV TL1,#06H MOV TMOD,#00H MOV TCON,#50H MOV IE,#8AHL1: SJMP L1END3.测量脉冲的宽度。

设定定时器/计数器T1以模式1方式工作、外部中断INT1下降沿中断,测量INT1端的脉冲宽度。

实验线路连接示意图:实验八串行通讯接口实验一.实验目的和要求1.掌握8031单片机串行口的工作方式;2.画出程序流程图,编制程序并上机调试通过。

二.实验内容分别采用查询和中断的不同工作方式,按照自发自收的连接方式(将8031的TXD 和RXD连接起来),把内部RAM的30H-3FH中的数据通过串行口发出,再通过串行口接收,存放在内部RAM的40H-4FH单元中。

实验程序如下:;查询串行传输方式SUART1.ASM;本程序是将内部RAM30H~3AH单元中的数据转存到内部RAM40H~4AH单元;ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,#60HMOV 30H,#00H ;设置要发送的数据MOV 31H,#11HMOV 32H,#22HMOV 33H,#33HMOV 34H,#44HMOV 35H,#55HMOV 36H,#66HMOV 37H,#77HMOV 38H,#88HMOV 39H,#99HMOV 3AH,#0AAHMOV 3BH,#0BBHMOV 3CH,#0CCHMOV 3DH,#0DDHMOV 3EH,#0EEHMOV 3FH,#0FFHMOV SCON,#50H ;串行口工作于方式1(0101 0000 B),即十位异步收发方式,;允许接收MOV TMOD,#20H ;T1工作于方式2,作为波特率发生器波特率=2SMOD/32 X T1 MOV TH1,#0F3H ;自动再装载数据MOV TL1,#0F3H ;加1计数器MOV 87H,#80H ;设定PCON波特率加倍MOV R2,#00H ;设置发送数据计数器MOV R0,#30H ;设置发送数据首地址MOV R1,#40H ;设置接收数据首地址SETB TR1 ;启动波特率发生器SEND: MOV A,@R0 ;取发送数据MOV SBUF,A ;启动发送SEND1:JBC TI,NEXT1 ;判TI位变量并清零TI,数据发送完毕则转NEXT1SJMP SEND1NEXT1:JBC RI,NEXT2 ;判RI位变量并清零RI,一个数据接收完毕则转NEXT2 SJMP NEXT1NEXT2:MOV A,SBUF ;读取数据GOOD: MOV @R1,A;INC R0 ;指向下一个发送数据存储单元INC R1 ;指向下一个接收数据存储单元INC R2 ;计数器加1CJNE R2,#10H,SEND;十六个数据发送完毕吗?未完转SEND继续SJMP $END;中断串行传输方式--自发自收SUART2.ASM;本程序是将内部RAM30H~3AH单元中的数据转存到内部RAM40H~4AH单元;;主程序ORG 0000HLJMP MAINORG 0023HLJMP L4ORG 0100HMAIN:MOV SP,#60H ;设置堆栈MOV 30H,#0CCH ;初始化数据MOV 31H,#11HMOV 32H,#22HMOV 33H,#33HMOV 34H,#44HMOV 35H,#55HMOV 36H,#66HMOV 37H,#77HMOV 38H,#88HMOV 39H,#99HMOV 3AH,#0AAHMOV 3BH,#0BBHMOV 3CH,#0CCHMOV 3DH,#0DDHMOV 3EH,#0EEHMOV 3FH,#0FFHMOV SCON,#50H ;设置串行口为方式1,允许接收MOV TMOD,#20H ;波特率发生器为方式2MOV TH1,#72H ;计数重装值MOV TL1,#72H ;计数初值MOV 87H,#00 ;PCON中的SCON=0SETB TR1 ;启动计数SETB EA ;开放中断SETB ESMOV R1,#30H ;发送数据首地址MOV SBUF,@R1 ;启动发送INC R1 ;指向下一单元MOV R0,#40H ;设置接收首地址L1: SJMP L1 ;L2: MOV A,SBUFCLR RIMOV @R0,AINC R0CJNE R0,#50H,L3CLR ESRETIL3: MOV SBUF,@R1 INC R1RETI;;中断服务程序;L4: JNB SBUF,L2 CLR TIRETIEND实验九串并转换实验一.实验目的和要求3.掌握串行口扩展I/O的方法4.掌握串行口模式的使用方法5.画出程序流程图,编制程序并上机调试通过。

相关文档
最新文档