首页 > 文库大全 > 精品范文库 > 1号文库

基于单片机的实验报告5则范文

基于单片机的实验报告5则范文



第一篇:基于单片机的实验报告

基于AT89C52的电子时钟设计

学生姓名 学 号 所在学院 专业名称 班 级 指导教师 成 绩

四川师范大学成都学院 二O一五年十二月

基于AT89C52的电子时钟设计

摘要:

单片机在电子产品中的应用越来越广泛,特别是51系列的单片机,由于其使用方便、价格 低廉等优势,在市场上占有很大的份额。AT89C52就是51系列中的一个比较成熟的型号。本设计是一个多功能的实时时钟,带秒表、整点报时、闹铃、调整时间等功能。可按键直接设置闹铃时间。由AT89C51单片机、DS1302、LCD1602等模块组成。现代社会,时间就是金钱,时钟是每个人的必备品。本设计实现了所需功能,给大家带来方便,整体性好、人性化强、可靠性高,实现了时钟的多功能应用。

关键词:电子时钟;DS1302;LCD1602;

Abstract: Single-chip computer is finding wider and wider application in the electronic products, especially the 51 series microcontroller, due to its convenience, price is low wait for an advantage, holds a large share in the market.AT89C52 is 51 series of a more mature model.This design is a multi-function real-time clock, stopwatch, adjusting time of the hour, alarm, etc.Can be directly set alarm time button.Composed of AT89C51, DS1302 and LCD1602 module.Modern society, time is money, the clock is an essential for everyone.This design can realize the function needed, bring convenience, integral sex is good, human nature is strong, high reliability, realize the multifunctional application of clock.Keywords: electronic;clock;DS1302

II

目录

引言:..............................................................1 1.设计要求与方案....................................................1 1.1 设计要求:....................................................1 1.2 系统基本方案选择..............................................1

1.2.1单片机芯片的选择方案和论证.............................1 1.2.2 显示模块选择方案和论证.................................2 1.2.3时钟芯片的选择方案和论证...............................2

2.设计方案的选择....................................................3 2.1计时方案.....................................错误!未定义书签。2.2 单片机的基本结构.............................错误!未定义书签。2.3数字钟的构成..................................................4 2.4数字钟组成框图................................................4

2.4.1晶体振荡器电路.........................................4 2.4.2 整点报时电路...........................................4

3.系统的软件设计...................................................4 3.1程序流程图....................................................4 3.2程序的设计....................................................6 4.实验箱调试结果....................................................8 5.总结心得体会:....................................................9

III

引言:

随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。美国DALLAS公司推出的具有涓细电流充电能的低功耗实时时钟电路DS1302。它可以对年、月、日、周、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。对于数字电子时钟采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。该设计以AT89C51单片机作为核心,功耗小,能在3V的低压工作,电压可选用3~5V电压供电。

综上所述,此电子时钟具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。

1.设计要求与方案

1.1 设计要求:

(1)启动时显示制作的年、月、日、制作者的学号等信息。(2)24小时计时功能(精确到秒)(3)整点报时功能。(4)秒表功能

(5)省电功能模式(未设计)1.2 系统基本方案选择

1.2.1单片机芯片的选择方案和论证 方案一: 采用89C51芯片作为硬件核心,采用Flash ROM,内部具有4KB ROM 存储空间,能于3V的超低压工作,而且与MCS-51系列单片机完全兼容,但是运用于电路设计中时由于不具备ISP在线编程技术, 当在对电路进行调试时,由于程序的错误修改或对程序的新增功能需要烧入程序时,对芯片的多次拔插会对芯片造成一定的损坏。方案二:

采用AT89S52,片内ROM全都采用Flash ROM;能以3V的超底压工作;同时 也与MCS-51系列单片机完全该芯片内部存储器为8KB ROM 存储空间,同样具有89C51的功能,且具

有在线编程可擦除技术,当在对电路进行调试时,由于程序的错误修改或对程序的新增

功能需要烧入程序时,不需要对芯片多次拔插,所以不会对芯片造成损坏。相比之下,我们在实验箱实际仿真时选择采用AT89S52作为主控制系统,由于proteus库中没有AT89S52,在原理图仿真时采用了AT89C51 1.2.2 显示模块选择方案和论证 方案一:

采用点阵式数码管显示,点阵式数码管是由八行八列的发光二极管组成,对于显示文字比较适合,如采用在显示数字显得太浪费,且价格也相对较高所以也不用此种作为显示.方案二:

采用LCD液晶显示屏,液晶显示屏的显示功能强大,显示多样,清晰可见 本设计采用LCD1602 1.2.3时钟芯片的选择方案和论证 方案一:

直接采用单片机定时计数器提供秒信号,使用程序实现年、月、日、时、分、秒计

数。采用此种方案虽然减少芯片的使用,节约成本,但是,实现的时间误差较大。所以不采用此方案。

方案二:

采用DS1302时钟芯片实现时钟,DS1302芯片是一种高性能的时钟芯片,可自动对

秒、分、时、日、周、月、年以及闰年补偿的年进行计数,而且精度高,位的RAM 做为数据暂存区,工作电压2.5V~5.5V范围内,2.5V时耗电小于300nA.综上各方案所述,对此次作品的方案选定: 采用AT89C52作为主控制系统,DS1302提供时钟计时,LCD1602屏幕显示.2 2为一个分频器来使用。对于芯片的使用,我们应该在了解它的各项功能的前提条件下,灵活巧妙地运用。具体的芯片资料和图片我们通过查阅相关的书籍,在网上能够很方便的查找。

经过这次电子钟作品设计与制作让我收获很多:

一、让我明白了“三个臭皮匠顶一个诸葛亮”和“团结就是力量”等名言名句的道理,让我明白只要我们团结协作没有什么困难是战胜不了的,团结让我们成功,团结让我们胜利,团结让我们的力量更大;

二、增进我和老师同学之间的友谊情感,在与老师互动学习的过程中使我体会了老师解决问题的方法与思路,让我领会了解决问题精髓,使我们学习更有活力更有信心更有自信,培养了我们的协助合作能力;

三、培养了我们的动手能力和独立解决问题的能力;

四、培养了我们的自主学习能力和利用网上这个广阔平台的学习能力;

五、使我学会了用专用的画图工具和画图软件Protel99SE画电路图的能力,通过这次作品的制作使我对Protel99SE原来的不熟悉到现在的比较熟练,画的图也比原来更合理,速度更快了;

六、锻炼了我们的焊接技术和焊接工艺,使我的焊接能力上了一个台阶;

七、培养了我管理和协调各项工作的能力,在制作的过程中也有不协调的一面但我都能一一克服了,这也使我在管理等方面能力的提高。2.3数字钟的构成

数字钟实际上是一个对标准频率(1HZ)进行计数的计数电路。由于计数的起始时间不可能与标准时间(如北京时间)一致,故需要在电路上加一个校时电路,同时标准的1HZ时间信号必须做到准确稳定。通常使用石英晶体振荡器电路构成数字钟。2.4数字钟组成框图 2.4.1晶体振荡器电路

晶体振荡器电路给数字钟提供一个频率稳定准确的32768Hz的方波信号,可保证数字钟的走时准确及稳定。不管是指针式的电子钟还是数字显示的电子钟都使用了晶体振荡器电路。一般输出为方波的数字式晶体振荡器电路通常有两类,一类是用TTL门电路构成;另一类是通过CMOS非门构成的电路,本次设计采用了后一种。如图(b)所示,由CMOS非门U1与晶体、电容和电阻构成晶体振荡器电路,U2实现整形功能,将振荡器输出的近似于正弦波的波形转换为较理想的方波。输出反馈电阻R1为非门提供偏置,使电路工作于放大区域,即非门的功能近似于一个高增益的反相放大器。电容C1、C2与晶体构成一个谐振型网络,完成对振荡频率的控制功能,同时提供了一个180度相移,从而和非门构成一个正反馈网络,实现了振荡器的功能。由于晶体具有较高的频率稳定性及准确性,从而保证了输出频率的稳定和准确。(f)带有消抖电路的校正电路

2.4.2 整点报时电路

电路应在整点前10秒钟内开始整点报时,即当时间在59分50秒到59分59秒期间时,报时电路报时控制信号。

当时间在59分50秒到59分59秒期间时,分十位、分个位和秒十位均保持不变,分别为5、9和5,因此可将分计数器十位的QC和QA、个位的QD和QA及秒计数器十位的QC和QA相与,从而产生报时控制信号。报时电路可选74HC30来构成。74HC30为8输入与非门。

3.系统的软件设计

3.1程序流程图

图-A 主程序流程图

图-B 整程序流程图

间调

时 3.2程序的设计 程序

#include #include #include #include

#define uchar unsigned char #define uint unsigned int #define TIME(0X10000-50000)#define FLAG 0xf4 //闹钟标志

sbit rst=P1^2;//DS sbit clk=P1^0;sbit dat=P1^1;sbit rs=P2^0;//LCD sbit rw=P2^1;sbit e=P2^2;sbit beep=P1^3;sbit mbkey=P1^4;

uchar k;uchar flag;uchar i=20,j,time1[16];uchar alarm[2],time2[15],time[3];time5[3];uchar code Day[]={31,28,31,30,31,30,31,31,30,31,30,31};//12个月的最大日期(非闰年)uchar //ms秒表进数,mbmiao.mbfe秒表的秒.分,key2num是key5的计数

key2num,ms=0,mbmiao=0,mbfen=0,mbkeynum,num;uchar code table[]=“ 32210324 GYY”;uchar code table1[]=“ 32210326 GLQ”;uchar code table4[]=“ 00:00:00 MB ”;

void delay(uint z){ uint x,y;for(x=z;x>0;x--)for(y=110;y>0;y--);}

delay1ms(uchar time)//延时1ms { uchar i,j;for(i=0;i

//LCD驱动部分 enable(){ rs=0;rw=0;e=0;delay1ms(3);e=1;} write2(uchar i){ P0=i;rs=1;rw=0;e=0;7 delay1ms(2);e=1;} write1(uchar data *address,m){ uchar i,j;for(i=0;i

实现功能的具体方法:

时钟主界面时按下K1键进入秒表功能,按K2秒表开始,再按K3秒表停,按键K4返回时间显示;按K4开始调试(移位“年→秒”),接着按K2、K3调节时间增减;按K2开启闹钟,K3调节时间,K4(移位“时分”);按“年→秒”的顺序移位,按键K2进行减运算,按键K3进行加运算,按键K1返回到主界面并显示设置值。

按下K3键,实现闹钟定时调整,按键K4进行“分-秒”移位,按键K3进行 上调,按键K2返回到主界面。

主界面K2实现开启/关闭闹钟的功能。按下K1键进入秒表,按键K2开始计时,K3暂停计时,K4返回到主界面。

5.总结心得体会:

通过这次电子时钟设计,其中理论设计又包括选择总体方案,硬件系统设计、软件系统设计;硬件设计包括单元电路,选择元器件及计算参数等;软件设计包括模块化层次结构图,程序流程图。程序设计是课程设计的关键环节,开始以为时钟会很简单,就算遇到问题应该也很好解决,但当自己真正去做的时候,发现了好多困难。于是查资料,问同学和老师。经过老师和同学的探讨,通过调试进一步完善程序设计,最后虽然省电模式没实现但其他基本达到课题所要求的指标。完成了实习任务。这次实习我更加了解了单片机的应用,更加牢牢的掌握了书本知识与现实的结合,总之这是实习收获很大,以后还需多动手实践,多练习编程,才能熟练掌握单片机。

最后刘强老师的支持与帮助,感谢他的意见和建议,使这次的设计与制作少走了弯路,我感谢他。

第二篇:单片机实验报告

单片机实验报告

一、实验目的

1.熟练使用Keil、Protues两款软件 2.通过上机操作,增强个人动手实践能力 3.加深对理论知识的理解

4.培养运用汇编语言进行初步编写程序的能力

二、实验内容

1.将片外RAM3050-306FH中数据转移至片内70-8FH中。

要求:可以从Keil或Protues上看到RAM的数据转移结果。2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮。

要求:开发板或Prrotues演示

3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术。

要求:在Keil或Protues上看到数据转换结果。

4.各使用中断方式和查询方式设计一个方波发生器,频率为50HZ。

要求:Protues使软件间示波器显示方波。

三、实验程序

1.将片外RAM3050-306FH中数据转移至片内70-8FH中

ORG 0000H AJMP MAIN 上电,转向主程序

ORG 0030H 主程序入口

MAIN: MOV DPTR,#3050H 数据指针指向地址3050H MOV A,#04H 将立即数04H送A寄存器

MOV R0,#20H NEXT: MOVX @DPTR,A INC DPTR 数据指针DPTR自加一

DJNZ R0,NEXT 判断是否跳转到NEXT或继续向下执行

MOV DPTR,#3050H MOV R0,#70H MOV R2,#20H NEXT1: MOVX A,@DPTR MOV @R0,A INC DPTR INC R0 DJNZ R2,NEXT1

SJMP $ 等待

END 2.设计一个外部中断触发流水灯系统:当外部中断来临时,启动流水灯,即令P2口的LED轮流循环点亮 ORG 0000H SJMP MAIN 上电,转向主程序

ORG 0003H 外部中断0向量入口

AJMP INSER ORG 0030H 主程序入口

MAIN: SETB EX0 SETB IT0

SETB EA CPUHERE: SJMP HERE ORG 0200H INSER: MOV R2,#08H MOV A,#01H NEXT: MOV P2,A LCALL DELAY RL A DJNZ R2,NEXT NEXT或继续向下执行

RETI DELAY: MOV R3,#0FFH DEL2: MOV R4,#0FFH DEL1: NOP

允许外部中断0中断 选择边沿触发方式 开中断 等待中断 设置循环次数 赋初值,设置高电平亮 将初值送往P2口 延时 左移一位

判断循环次数,是否跳转到中断返回 延时程序 DJNZ R4,DEL1 DJNZ R3,DEL2 RET END 3.将片内存储器80H中存放的BCD码转换为ASCII码,要求使用表格查询技术 ORG 0000H LJMP MAIN ORG 0030H主程序起始地址 MAIN: MOV 80H,#05H 将立即数50H转送内存单元80H MOV A,80H 将内存单元80H中的内容送寄存器A MOV DPTR,#TAB MOVC A,@A+DPTR A寄存器内容加指针偏移量后送A寄存器 MOV 80H,A RET TAB: DB 30H,31H,32H,33H,34H DB 35H,36H,37H,38H,39H 4.1中断方式产生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H 主程序入口 MAIN: MOV TMOD,#10H 设置定时器工作模式为模式1 MOV TH1,#0D8H 装入T1计数初值

MOV TL1,#0F0H

SETB ET1 开中断

SETB EA CPU开中断

SETB TR1 启动定时器T1 HERE: SJMP HERE 等待中断 ORG 001BH T1中断向量地址

CLR TF1 将TF1清零

CPL P2.0 P2.0取反输出

MOV TH1,#0D8H 重装初值

MOV TH0,#0F0H

RETI;中断返回

END 4.2 查询方式产生50HZ方波

ORG 0000H

AJMP MAIN

ORG 0030H 主程序入口

MAIN: MOV TMOD,#10H 设置定时器的工作模式为模式1 SETB TR1 启动定时器T1 LOOP: MOV TH1,#0D8H 装入T1计数初值

MOV TH0,#0F0H JNB TF1,$ T1没有溢出则等待

CLR TF1

产生溢出,清标志位

CPL P2.0 P2.0取反输出

SJMP LOOP 循环

END

四、实验结果截图

1.2

3.4.1

4.2

第三篇:单片机实验报告

实验

四、中断交通灯实验

林立强

1000850116

一、实验目的

1、了解MCS-51单片机的组成、中断原理,中断处理过程、外部中断的中断方式。

2、掌握中断响应及处理的编程方法。

二、实验原理

MCS-51的中断系统中有5个中断源:外部中断INTO,INT1,定时器/计数器TO、T1中断和串口UART中断,它们对应不同的中断矢量。如表:

IE是中断允许寄存器,其中EXO,ETO,EX1,ET1,ES分别是上述5个中断的允许控制位,EA位是中断总允许位,每个中断只有在相应中断允许且总中断也允许的情况下,才能得到中断响应。80XX51的5个中断都可以设为高低2个优先级,IP是中断优先级寄存器,其中PXO,PTO,PX1,PT1,PS位分别对应5个中断的优先级设置,置“1”时设为高优先级中断,为“0”时是低优先级中断。在有中断嵌套要求时,低优先级中断可被高优先级所中断。当同一级的中断同时到来时,先响应中断矢量排在前面的中断。

三、实验电路

电路原理图如下,所需元件为:AT89C51、SW-SPDT、LED-RED、LED-GREEN、LED-YELLOW、RES、TRAFFICLIGHTS

四、实验内容

参照实验电路,设计交通灯控制系统。模拟交通信号灯控制:一般情况下正常显示,东西-南北交替放行,各方向通行时间为30秒。有救护车或警车到达时,两个方向交通信号灯全为红色,以便让急救车或警车通过,设通行时间为10秒,之后交通恢复正常。用单次脉冲模拟急救车或警车申请外部中断。

1、在生成HEX文件后,用Proteus软件对电路图进行计算机仿真;

2、程序下载到单片机实验板上验证;(实验板数码管的驱动程序见附件)。

五、程序流程图

仿真图:

紧急情况:

源程序:

ORG 0000H

AJMP START

ORG 0023H //串口中断地址

AJMP SBR1

START:MOV TMOD,#00100000B

//定时器方式2

MOV TL1,#0FDH //9600bps/11.0592MHz

MOV TH1,#0FDH

SETB TR1

MOV SCON,#01100000B //方式1

MOV R0,#20H

MOV R1,#40H

ACALL SOUT

SJMP $

SBR1: JNB RI,SEND

ACALL SIN

SJMP NEXT SEND: ACALL SOUT NEXT: RETI

SOUT: MOV A,@R0

MOV C,P

CPL C

MOV ACC.7,C

INC R0

MOV SBUF,A

CLR TI

RET

SIN: MOV A,SBUF

MOV C,P

CPL C

ANL A,#7FH

MOV @R1,A

INC R1

CLR RI

RET

PLAY: MOV A,R7

MOV B,#10

RET

TAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H

// 0

A B C D E F

END

第四篇:单片机实验报告

51单片机控制流水灯

目录

(1)51精简开发板简介(2)实验目的(3)实验内容(4)元件(5)原理图(6)实验步骤

(7)主要功能介绍

(8)实验错误及分析(9)调试及程序(10)系统测试(11)实验心得

一、51精简开发板简介

它是一款以8051系列单片机为核心的精简开发板。8051系列单片机是一款应用非常广泛的8位微处理芯片,由于其功能齐全,产品技术成熟,资料广泛,又是学习其他很多单片机的基础,所以它是初学者学习单片机的不二之选,是大学生进行电子实习、课程设计、毕业设计的必备的单片机。

本款51单片机精简开发板较市面上所出售的一般开发板的方便之处在: 支持STC及ATMEL AT全系列51/52单片机芯片,具有两种方便的下载方式,并且能够通过串口方便地和电脑进行通信。

2.省去了一般开发板高成本的外围扩展器件,但仍可以进行单片机I/O口输入输出、定时/计数器、中断、串口通信等常用实验项目。方便的扩展功能使用户能够根据自身需要配备实用的外围器件。

3.具有市面上一般单片机所不具有的超强扩展性能。每组I/O口两侧都与单片机供电电源相连,免去了以往单片机接扩展板时还需另行供电的麻烦。

4.开发板总体布局美观、大方,所有元件均采用直插式封装,便于焊接。学习51板单片机应由浅入深,逐步掌握,先是模仿实验,再是自己动手。51板单片机的开发环境是Keil uVision3,简单易懂,详细用法本书后面也做了说明。另外书后还附有几个有趣的实验,方便学生测试51板,也作为学生学习、修改之用。

二.实验目的

1.了解“51” 精简开发板的工作原理及结构;

2.了解复杂电子产品生产制造的全过程;

3.熟练掌握电子元器件的焊接方法及技巧,训练动手能力,培养工程实践观念。

三.实验内容

学会焊接电路,在开发板上实现八个流水现象以及通过使用汇编语言,控制流水灯过程。四.元件

1、单片机

STC89C52 一块

2、晶振 11.0592MHz一只

3、PCB板

4、电阻 三支

5、电容 八只

6、双路自锁开关 一个

7、LED 发光二极管 八只

8、排针9、4.5V电池盒

10、串口下载线 1.5米

11、串口电平转换芯片 NAX232 12、9针排阻 10千欧姆

13、复位按键14、14、PCB板 五.原理图

本产品是一套完整的8位单片机开发系统,若将程序下到51板上,它将成为一个极其有趣的智能玩具。

1.主要性能指标

输入电压:DC 4.5V~5V;典型值:5V

2.功能分区与模块简介

图10.1 51板框图

[1] 单片机

单片机也称单片微控制器(Single Chip Microcontroller),它集成度高、运算快、体积小、运行可靠、价格低廉,在过程控制、数据采集、机电一体化、智能仪器仪表、家用电器以及网络技术等方面得到广泛应用。MCS-51单片机结构框图如图10.2所示。

图10.2单片机结构

[2] 电源部分

电源部分由开关、稳压集成、电源指示灯几部分组成,本款51板输入电压4.5V~5V,典型输入电压为5V,也可通过板上的稳压集成芯片78M05给单片机提供5V电压,可使单片机正常工作。图10.1中的DS0为电源指示灯。[3] 串行下载部分

这一部分由串口、下载缓冲器MAX232组成,通过MAX232芯片把TTL电平转换成RS-232电平格式,可以用于单片机与微机通信。再通过DB9接口由一条串口线与电脑串口相连,可以利用程序下载软件(下载方法书后将做介绍)向单片机下载程序,也可通过一些串口调试软件与电脑进行串口通信。但是,只有STC89S系列单片机支持串口下载,而AT89S系列单片机不支持串口下载。[4] ISP下载

ISP下载是AT89S系列单片机的下载方式,不能用于STC89S系列单片机,它由一条并口线与电脑并口相连,通过Easy下载软件向单片机下载程序,但下载器需另行购买。

[5] 输入/输出接口

51板将32个I/O口全部引出:其中P0口、P1口、P2口、P3口各有8个I/O口用排针引出,排针两端为与单片机共地的5V电源,方便进行外接扩展,而单片机的EA、ALE、PSEN端口也在靠近排阻下方引出,以方便日后进行一些高级扩展。P1口接有8个发光LED,以供测试之用,P0口外接10K的上拉电阻。这些I/O口即可做输出,又可做输入口,51单片机内部可自行识别,不必要设置。

[6] 外部复位

复位是对单片机硬件的初始化,51单片机具有外部复位功能,高电平有效,即在单片机9脚加上高电平单片机就被复位。此产品的复位电路由按键S2,电容C3和电阻R9组成。

六.实验步骤:

1.拿到51单片机套件后,首先应按照附录的元器件清单表逐一检查元件数目和规格,确保产品完整。

2.详细阅读硬件说明部分,并将元件对号入座,确保一次性焊接成功。

3.先对较矮小的元件进行焊接,比如电阻、稳压集成,再对高一些的元件进行焊接,比如芯片座、排阻等,依此类推,最后焊接高大的元件,比如串口、ISP下载口等。焊接时应注意一些元件的正负极和方向。

4.由于此套件标准配置不包含稳压集成VR1(78M05),所以焊接完成后要用导线将VR1的1、3焊盘短接,芯片才能正常供电,此时只能使用4.5-5V的直流稳压电源供电;如果将自购VR1(78M05)焊接在板子上,那么就可以使用7.2V-15V的宽电源供电。

5.焊接并检查无误后先不要急于插入芯片,应该先对芯片供电电压进行测量。插上电源,用万用表检查单片机的20、40脚及MAX232的15、16脚间电压,看是否为+5V(±0.5V),然后用跳线帽接通P6的中间一针和上面一针,使单片机EA端(31脚)与电源正极相接,之后再插上芯片,进行系统测试。七.主要功能介绍: MCS-51单片机

也称单片微控制器,;它集成度高,运算快,体积小,运行可靠,价格低廉,在过程控制数据采集,机电一体化,智能仪表,家用电器,及网络技术等方面得到广泛应用。串口下载部分

由串口,下载缓冲器MAX232组成,通过MAX232芯片把TTL电平转换为RS232电平格式可以用单片机与电脑通信,再通过DB9接口有一条串口线与电脑串口相连,可以利用程序下载软件向单片机下载程序,也可以通过一些串口调试软件与电脑串口通信,而我们所使用的STC89C系列单片机只支持串口下载。电源部分

电源部分有开关,稳压集成,电源指示灯几部分组成,熟人电压4.5V到6V。典型值为5V.ISP下载

ISP下载是AT89S系列单片机下载方式而我们所用的是STC89C所以在此不多详细介绍。输入/输出接口

本开发板将4个并行I/O端口全部用排针引出来,共32个个排针,排针两端为与单片机共地的5V电源,方便进行外拓展;单片机的ALE,PSEN端口也靠近排阻下方引出以方便日后进行高级拓展。外部复位

对单片机硬件初始化操作,在系统加电时或出现故障时,在单片机RESET引脚加上一定时间的高电平就可以使单片机复位,这次制作的单片机复位系统是由按键,电容C1和电阻R3构成。八.实验错误及分析:

1.接好电源盒,电源指示灯不亮。

原因:1电源插座存在虚焊现象,接触不良。电源拔断开关存在虚焊现象,接触不良。方法:修复虚焊点。2.不能正常下载程序。

原因:1 电路板电源没有正常接通 下载线焊接组装有误 51板、下载线、PC机没有正常连接 4 电池电压低 方法:1 电源正常接通

更正正确 换新 更换或修复焊点

3.下载程序完成后,不能完成流水灯功能 原因:1 电池电压过低 发光二极管损坏或管脚虚焊 3 电阻R1开路或管脚虚焊 方法:1 更换电池 更换或修复焊点 3更换或修复焊点 九.程序:

#include “reg51.h” void main(){ unsigned inti=10;P1=0xfe;while(1){

while(--i){;} P1=(P1<<1)| 0x01;if(P1==0xff)P3 = 0x7f;

while(P1==0xff){ while(--i){;} P3=(P3>>1)| 0x80;

if(P3==0xff)

{

P1=0xfe;P3=0xff;} } } }

十、系统测试

1.串口测试

接上单片机电源和串口线,打开电源开关,电源指示灯DS0亮,使用STC89C系列单片机,其本身自带了一个测试程序,上电之后DS1-DS7便会两个两个的闪烁。或者自己下载一个程序,如果下载成功,说明串口正常,如不成功,请仔细检查焊点及串口线。

2.I/O口测试

下载程序一,将跳线P5接ON一端,如发现上排LED逐个亮或有规律的亮,说明P1检测正常;

根据程序一的特点,仔细分析程序二各语句功能,并猜测其结果,接着将程序二下载到单片机上,仍将跳线P5接ON一端,自己观察小灯跳变规律,看与自己分析结果是否一致。十一.心得体会:

在通过本次课程中,我遇到很多问题,但是与此同时,我也学到了很多,对于本次课题的心得体会,我觉得有以下几点:

1、不管做什么事,计划是很重要的。没有一个完好的计划,做事情就会没有一个好的顺序,做事情会比较乱,很难成功。而有一个好的计划,不管做什么事都会事半功倍,做事心中有数,明确重点和缓急,不会有疏漏。这样才能提高成功率。

2、做事要多动脑,选出最好的方法。一件事往往有多种解决方法,一个好的方法,不仅能使事情事半功倍,而且往往决定最后的成与败,所以做事时一定要多动一下脑筋,想出最好的方法。

3、要识,也要注意细节,不要因一个关键地方的一个细节而导致满盘皆输。

4、,在本次课题中,我也注意细节。细节决定成败,这句话在这次课题中不仅一次得到了印证,特别是在软件的编程过程中,一点点的错误就会使你整个程序不能运行。因此我不仅仅要有整体意学会了不懂就问,不仅事半功倍,而且发现了一些好的有趣的构想,使我对单片机有了更浓的兴趣。

5、最后,也是最重要的一点,通过这次课题,我学到了很多有关单片机方面的知识,也对单片机有了更深入的了解,受益匪浅。

算 机 基 本 技 能 训 练

学校:西安科技大学

班级:电气工程及其自动化1202班

姓名:张小雨

学号:1206060202

日期:2014年1月2日

第五篇:单片机实验报告

单片机原理与应用实

学校:合肥工业大学

班级:计算机科学与技术

学号:

姓名:

验报告

第一章MC51 单片机原理及应用软件实验

实验1:系统认识实验

1. 实验目的

(1)了解ZY15MCU12BC2单片机实验开发装置的接线与安排。掌握实验箱内拨位开关KF,KC的使用方法。(2)通过实例程序的编辑、编译、链接及调试,熟悉Keil C51软件的使用方法和基本操作。(3)教育学生爱抚实验装置,养成良好的实验习惯。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。(3)确认拨位开关KF的开关为A端,确认89C51处于仿真状态。(4)在uVision2开发平台上建立并编辑示例程序:

计算N个数求和程序。其中N个数分别放在片内RAM区50H到55H单元中,N=6,求和的结果放在片内RAM区03H(高位)和04H(低位)单元中。

题目:

1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=?(5)编译连接源程序。

(6)在Keil uVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H(高位)、04H(低位)单元中的数据是否正确。(7)实验结束,撤出接线,将一切整理复原。

4.实验源程序

ORG 0000H LJMP MAIN ORG 1000H MAIN: MOV R2,#06H MOV R3,#03H MOV R4,#04H MOV R0,#50H L1: MOV A,R4 ADD A,@R0 MOV R4,A INC R0 CLR A ADDC A,R3 MOV R3,A DJNZ R2,L1 END

5.实验结果截图

6.实验总结

这次试验,熟悉了单片机开发的基本流程,对于实验的两道题目 1)32H+41H+01H+56H+11H+03H=? 2)895H+02H+02H+44H+48H+12H=? 实验结果如上图所示50H~54H存放数据,第一道题计算出来是0x00DEH,第二道题目 计算出来是0x0137H,实验结果和预期相符,成功的完成了实验。这次试验对硬件开发有了基本的认识,特别是对于单片机的存储器有了进一步的认识,在程序中把数据放入RAM中,结果存放在R3和R4中,实验时不知道R3和R4的地 址,后来了解到R3和R4可以直接用他的地址03H和04H,这样进一步深化了书本上 的知识。另外通过这次试验,对于51单片机的几种寻址方式也有了具体的认识。总之,还是要多动手虽然程序不是自己写的,但是阅读理解了还是有点收获的。

实验六.数据排序实验

1. 实验目的

(1)理解并掌握排序程序的设计方法。(2)掌握减法指令的功能,并联系其使用。

(3)逐步提高调试程序的能力及编写程序的能力。

2. 试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。

(3)编写程序,实现从平台连续输入六个数,数码管将马上从小到大的顺序显示这六个数。要求被排序的数放在70H到7FH单元中。(4)编译连接源程序。

(5)调试程序,在存储器窗口输入被排序数放在70H到7FH单元中,全速运行程序,并检查程序员的运行结果,观察是否正确。

(5)若程序中出现错误,则可以采用单步分段调试,排除程序错误,直到正确为止。

4.实验源程序

MAIN:

LOP2:

LOP1:

LOP5:

ORG 0000H LJMP MAIN ORG 0030H MOV R2,#70H MOV R3,#71H MOV R4,#0FH ACALL LOP1 DJNZ R4,LOP2 LJMP LOP6 MOV A,R2 MOV R0,A MOV A,R3 MOV R1,A MOV A,@R0 CLR C SUBB A,@R1 JC LOP4 MOV A,@R0 XCH A,@R1

LOP4:

LOP6:

MOV @R0,A INC R1 INC R0 MOV A,@R0 CJNE

R1,#80H,LOP5 RET END 5.实验结果截图

6.实验总结

本次试验是在冒泡排序算法实现对70H~7FH中的数据进行排序,如上第一张图所示RAM中70H~7FH存放了数据,第二张图显示的是通过冒泡排序整理过的数据。成功完成了实验,收到了预期效果。

对于习惯了使用高级语言编程的我,看这些绕来绕去的汇编还是有些头大,觉得这个例子写的不太好,跳来跳去,程序层次不分明,可读性很差,冒泡不应该有内外两层吗,看书上有一个例子就写得很好,跟用高级语言写差不多,然而实验的这个好像是要考我们对各种跳转指令的了解,所以读起来晕头转向的。从另一方面来说,通过这次试验,我也熟悉了汇编的跳转与分支指令。另外,所以ORG 0000H

LJMP MAIN

ORG 0030H,这三句ljmp这句跳到了main,那么还要后面一句干嘛。不甚理解。

总之,这次实验让我了解了各种分支与跳转,还是有所收获的。

第二章MC51 单片机原理及应用硬件实验

实验一:广告灯实验

1. 实验目的

(1)熟悉ZY15MCU12BC2单片机实验开发装置的试验箱,学会选用其功能电路,连接成实验需要的系统。掌握实验箱内拨位开关KFKC使用。(2)加深了解MCS-51单片机P1端口的应用方法。(3)学习编写接口应用程序。

2.试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

(3)用试验箱上的发光二极管L0到L7模拟外界各种场合的动态广告灯,将试验箱上的发光二极管L0到L7分别与单片机的P1.0到P1.7相连。

(4)编写程序,实现从P1口输出信号驱动发光二极管L0到L7模拟外界广告灯动态点亮的功能。

(5)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。

(6)单步执行程序,观察是否进入表格首地址。

(7)单步执行程序,观察发光二极管L0到L7的变化。

(8)全速运行程序,观察发光二极管L0到L7的变化,并注意程序将循环下去。(9)实验结束,撤除接线,将一切整理复原。

4.实验源程序

ORG 0000H MAIN: MOV DPTR,#TAB

MOV R5,71H LOOP: MOV A,#00H

MOVC A,@A+DPTR

MOV P1,A

ACALL DELAY

ACALL DELAY

INC DPTR

DJNZ R5,LOOP

LJMP MAIN DELAY: MOV R7,#00H

MOV R6,#00H DE:

DJNZ R7,$

DJNZ R6,DE

RET TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,7FH

DB 0FFH,7FH,0BFH,0DFH,0EFH,0F7H,0FBH,0FDH

DB 80H,00H,80H,0C0H,0E0H,0F0H,0F8H,0FCH

DB 0FEH,0FFH,7FH,3FH,1FH,0FH,07H,03H

DB 01H,00H,01H,03H,07H,0FH,1FH,3FH

DB 7FH,0FFH,7EH,3CH,18H,00H,18H,3CH

DB 7EH,0FFH,0FEH,0FCH,0FCH,0F9H,0F3H,0E7H

DB 0CFH,9FH,3FH,7FH,0FFH,7FH,3FH,9FH

DB 0CFH,0E7H,0F3H,0F9H,0FCH,0FEH,0FFH

DB 0FEH,0FCH,0F8H,0F0H,0E0H,0C0H,80H,00H

DB 80H,40H,20H,10H,08H,04H,02H,01H,00H

DB 01H,02H,04H,08H,10H,20H,40H,80H,00H

DB 80H,0C0H,0E0H,0F0H,0F8H,0FCH,0FEH,0FFH

END

5.实验结果

6.实验总结

广告灯按照程序所给的效果循环的有序的点亮,如果应用到广告霓虹灯,的确可以到达璀璨的效果,程序的最后的TAB是最纠结的,你要按照效果一点一点的编写十六进制的数字,换算出效果,可见真正的商业广告的效果的确是很麻烦的一件事,通过这个实验,我清楚地认识到了单片机的控制的灵活性,另外对于查表指令也有所理解。实验二:P1端口应用实验

1.实验目的

(1)进一步熟悉ZY15MCU12BC2实验箱上的资源,掌握实验箱内拨位开关KF,KC使用。(2)加深了解MCS-51单片机P1端口的应用方法。(3)学习编写接口应用程序。

2.试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确认89C51处于仿真状态。

(3)将试验箱上的L0到L3接到P1.0到P1.3,开关K0到K3接到P1.4到P1.7。(4)编写程序实现如下功能: 拨动K0到K3,使L0到L3出现以下组合变化。K3 K2 K1 K0 L3 L2 L1 L0 0 0 0 0 全亮 0 0 0 1 全暗

0 0 1 0 一灯亮其余灯暗并左环依 0 0 1 1 一灯亮其余灯暗并右环依 0 1 0 0 一灯暗其余灯亮并左环依 0 1 0 1 一灯暗其余灯亮并右环依 ? ? ? 显示开关状态Ki为0,Li灯亮 要求:

1)设40H单元为标志单元,(40H)=0时开关状态无变化,(40H)=FFH时开关状态发生变化。

2)设41H单元为开关状态缓冲器,读入开关状态和41H单元内容比较,相同时开关状态无变化,不同是开关状态有变化。3)设42H单元为当前指示灯状态。

(4)在uVision2开发平台上输入程序,编译、连接程序,调试通过后将拨位开关KF拨至B端。

(5)根据准双向口的特性,对P1口写操作使灯L0到L7的状态随写入P1.0到P1.3的内容而变化;读P1口的高四位,读出内容随开关状态的变化而变化。如不对,则检查开关K0到K3的接线,检查K0到K3的电平是否随开关状态变化而变化。

(6)从开始运至BK1处,检查A的内容是否对应开关状态,接着单步运行程序,检查是否转到相应入口使L0到L3状态产生相应的变化。(7)全速运行程序至BK2,在检查A的内容是否与开关状态一致,如不对,则检查前面对P1口的操作指令。

(8)全速运行程序实现所要求的功能。

4.实验源程序

ORG 0000H STRL: MOV A,P1

SWAP A

ANL A,#0FH

MOV 41H,A

MOV 40H,#0FFH MLP0: CJNE A,#6,$+3

JNC PK6

MOV DPTR,#CTAB

MOV R1,A

RL

A

ADD A,R1

JMP @A+DPTR CTAB: LJMP PK0

LJMP PK1

LJMP PK2

LJMP PK3

LJMP PK4

LJMP PK5 PK6:

MOV 42H,A

LJMP MLP1 PK5:

MOV A,40H

CJNE A,#0FFH,PK51

MOV 42H,#01

LJMP MLP1 PK51: MOV A,42H

LCALL RR7

ANL A,#0FH

JNZ PK52

MOV A,#1 PK52: MOV 42H,A

LJMP MLP1 PK4:

MOV A,40H

CJNE A,#0FFH,PK41

MOV 42H,#1

LJMP MLP1 PK41: MOV A,42H

LCALL RL9

ANL A,#0FH

JNZ PK42

MOV A,#1 PK42: MOV 42H,A

LJMP MLP1 PK3:

MOV A,40H

CJNE A,#0FFH,PK31

MOV 42H,#0F7H

LJMP MLP1 PK31: MOV A,42H

LCALL RR9

ANL

A,#0FH

CJNE A,#0FH,PK32

MOV

A,#0F7H PK32: ORL

A,#0F0H

MOV

42H,A

LJMP MLP1 PK2:

MOV

A,40H

CJNE A,#0FFH,PK21

MOV

42H,0FEH

LJMP MLP1 PK21: MOV

A,42H

RL A

ANL A,#0FH

CJNE A,#0FH,PK22

MOV A,#0FEH PK22: ORL A,#0F0H

MOV 42H,A

LJMP MLP1 PK1:

MOV 42H,#0FH

LJMP MLP1 PK0:

MOV 42H,#0 MLP1: MOV A,42H

ORL A,#0F0H

MOV P1,A

MOV R7,#0

MOV R6,#0 DEL1: DJNZ R6,DEL1

DJNZ R7,DEL1

MOV

A,P1

SWAP A

ANL A,#0FH

CJNE A,41H,MLP2

MOV 40H,#0

LJMP MLP0 MLP2: MOV 41H,A

MOV 40H,#0FEH

LJMP MLP0 RR9:

RR A

RR A RR7:

RR A

RR A

RR A

RR A

RR A

RR A

RR A

RET RL9:

RL A

RL A RL7:

RL A

RL A

RL A

RL A

RL A

RL A

RL A

RET

END

5.实验结果截图

6.实验结论

试验中我们把P1口作为输入输出口来测试以下的内容 1.P1 口做输出口,接八只发光二极管循环点亮。2.P1 口低四位接四只发光二极管L1-L4, P1 口高四位接开关K1-K4,编写程序,将开关的状态在发光二极管上显示出来。

在这次试验中我认识到课本上的关于P1口的介绍的知识 P1 口为准双向口,P1 口的每一位都能独立地定义为输出线或输入线,作为输入的口线,必须向锁存器相应位写入“1”,该位才能作为输入。8031中所有口锁存器在复位时均置为“1”,如果后来往口锁存器写入过“0”,再作为输入时,需要向口锁存器对应位写入“1”。延时程序的编写可以用两种方法,一种是用定时器来实现,一种使用指令循环来实现。在系统时间允许的情况下可以采用后一种方法。

实验三:串转并实验

1.实验目的

(1)掌握51系列单片机串口工作方式0的应用。

(2)学习8位串行输入和并行输出的同步移位寄存器74LS164和8位并行输入和穿行 输出的同步移位寄存器74LS165两个接口芯片的应用性能。(3)研究单片机串行口如何用于扩展并行I/O口。

2.试验设备

(1)ZY15MCU12BC2单片机实验开发装置一台。(2)PC系列微机及相关软件。

3. 试验内容

(1)使用串行通讯电缆将实验开发装置与PC机相连,确认拨位开关KF的位置。(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境,确 认89C51处于仿真状态。(3)实验步骤:

1)通过单片机串口用一片8位串行输入/并行输出的同步移位寄存器74LS164扩展 8位并行输出口。

2)通过单片机串口用一片8位并行输入/串行输出的同步移位寄存器74LS165扩展 8位并行输入口。(4)将单片机的RXD端与74LS164的串行输入端SERIAL(PA)相连,将单片机的TXD 端与74LS164的脉冲CLOCK(PB)相连,74LS164的输出Q0到Q7接发光二极管 L8到 L15。(5)调试程序:

1)实验采用终端方式调试,既目标程序装入仿真器后,使操作界面进入终端方式。2)单步进入执行程序,打开Keil的寄存器窗口,观察串口数据缓冲区SBUF里的值有何变化。

3)单步执行程序,注意中断标志T1的变化以及所亮的发光二极管的位置。

4.实验源程序

ORG 0000H SJMP MAIN ORG 0023H SJMP SBV MAIN: MOV SCON,#00H SETB EA SETB ES MOV A,#80H MOV SBUF,A MOV SBUF,A MOV SBUF,A SJMP $ SBV: ACALL DELAY CLR T1 RR A MOV SBUF,A RETi DELAY: MOV R7,#00H MOV R6,#00H DEL: DJNZ R7,$

5.实验结果截图

6.实验结论

在实验中我明白了串行口和并行口的相关知识8位串行输入和并行输出的同步移位寄存器74LS164和8位并行输入和穿行输出的同步移位寄存器74LS165两个接口芯片的应用性能。知道了单片机串行口如何用于扩展并行I/O口

相关内容

热门阅读

最新更新

随机推荐