51单片机实验报告四川理工

时间:2024.4.20

实验报告

电气106  姓名:郭志毅    学号:

实验目的:

设计一个数字电压表,掌握LED动态显示和A/D0808转换接口设计方法。

实验原理:


电路原理图如上所示。

1. 总体介绍

本实验中需要用到的电路有电源电路、模/数转换电路、单片机控制电路、显示电路等。实验中需要用到的芯片有AT89C51单片机、ADC-0808、74LS74、LED数码管等。

2. 数字电压表的Proteus软件仿真电路设计

待测电压输入信号在ADC0808芯片承受的最大工作电压范围内,经过模/数转换电路实现A/D转换,通过单片机控制电路进行程序数据处理,然后通过七段译码/驱动显示电路实现数码管显示输入电压。
3. AT89C51单片机和数码管显示电路的接口设计

利用单片机AT89C51与ADC0808设计一个数字电压表,将模拟信号0~5 V之间的直流电压值转换成数字量信号0~FF,以两位数码管显示。Proteus软件启动仿真,当前输入电压为2.5 V,转换成数字值为7FH,用鼠标指针调节电位器RV1,可改变输入模/数转换器ADC0808的电压,并通过虚拟电压表观察ADC0808模拟量输入信号的电压值,LED数码管实时显示相应的数值量。

在Proteus软件中设置AT89C51单片机的晶振频率为12 MHz。本电路EA接高电平,没有扩展片外ROM。

4.AD转换电路的接口设计

A/D转换器采用集成电路ADC0808。ADC0808具有8路模拟量输入信号IN0~IN7(1~5脚、26~28脚),地址线C、B、A(23~25脚)决定哪一路模拟输入信号进行A/D转换,本电路将地址线C、B、A均接地,即选择0号通道输入模拟量电压信号。22脚ALE为地址锁存允许控制信号,当输入为高电平时,对地址信号进行锁存。6脚START为启动控制信号,当输入为高电平时,A/D转换开始。本电路将ALE脚与START脚接到一起,共同由单片机的P2.0脚和WR脚通过或非门控制。7脚EOC为A/D转换结束信号,当A/D转换结束时,7脚输出一个正脉冲,此信号可作为A/D转换是否结束的检测信号或向CPU申请中断的信号,本电路通过一个非门连接到单片机的P3.2脚。9脚OE为A/D转换数据输出允许控制信号,当OE脚为高电平时,允许读取A/D转换的数字量。该OE脚由单片机的P2.0脚和RD脚通过或非门控制。10脚CLOCK为ADC0808的实时时钟输入端,利用单片机30引脚ALE的六分频晶振频率得到时钟信号。数字量输出端8个接到单片机的P0口。

编程思路:

系统上电状态,初始化ADC0808的启动地址,数码管显示关闭,开始启动A/D转换。等待启动结束后,将ADC0808的0号通道模拟量输入信号转换输出的数字量结果通过数码管动态显示的方式显示到三位数码管上。
根据设计要求结合硬件电路,在输入模拟信号时采用电阻分压,最终的采样输入电压只有实际输入电压的十分之一,所以在编写程序中要编写一段数据调整程序,其中还应注意硬件显示电路采用了动态扫描显示,在动态扫描显示方式中,动态扫描的频率有一定的要求,频率太低,数码管LED将会出现闪烁现象,通常数码管点亮时间间隔一般均取5ms左右为宜,这就要求在编写程序时,使其点亮并保持一定的时间。

   仿真截图

    

                                          

                                

 

                                   

 

 

         

实验小结:

本实验中的数字电压表可以测量0~5 V的电压值,AT89C51为8位单片机,当ADC0808的输入电压为5 V时,输出数字量值为+4.99 V。如果要获得更高的精度,需采用12位、13位等高于8位的A/D转换器。数字电压表的显示部分可以增加BCD码调整程序来通过三位数码管显示其数据。本设计的显示偏差,可以通过校正0808的基准参考电压来解决,或用软件编程来校正其测量值。本系统在设计过程中通过Proteus仿真软件的调试,具有电路简单、成本低、精度高、速度快和性能稳定等特点。

心得体会

学习单片机这门课程(教学中选用 inter公司的mcs-51),要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。使学生从硬件软件的结合上理论联系实际,提高动手能力,从而全面掌握单片机的应用。

实验教学的全过程包括认识、基础、综合3个阶段。以往的单片机实验是进行软件的编制和调试,与实际应用中的硬件电路相脱节。使学生缺乏硬件设计及调试分析能力,对单片机如何构成一个单片机最小应用系统,缺乏认识。,通过计算机连接仿真器在实验板上把硬件和软件结合起来一起调试,

软件的修改也非常方便,软件和硬件调试都通过后,把程序固化在 eprom当中,插上8051单片机构成一个完整的单片机应用系统。

单片机实验板的构成及基本功能

    单片机实验板,它由 8031、8155,eprom2764,max232键盘及显示器组成。其中8155 片内有256个ram单元,接6个7段码显示器和8个按键作输入。串行口连接max232串行口转换芯片,p1口留出作为一些控制量的输入输出用以扩展使用。在实验板上可编写键盘扫描程序、显示程序、时间的设定及计时程序、从键盘上输入两个加数或减数显示结果程序、位变量的逻辑运算程序及串行口和上位机通讯程序等,还可和其它课程相结合,进行实验。同时可参考单片机网http://www.51hei.com上的比较生动的单片机学习教程,学习和试验一起进行.例如,《电子测量》课程中各种频率的测量,可通过8031单片机 p1口输入被测量,由单片机来进行检测和显示,把几门课程结合在一起学习,使课程有延续性,也提高了学生学习的积极性。由于p1口通过插座引出,也可外部扩展a/d  d/a 等其他接口芯片,以构成新的应用系统。

单片机实验板的衍生功能

此单片机实验报告中的实验板是一个单片机应用系统的硬件电路。有键盘输入和显示输出,在这个基础电路上通过p1口对不同检测或控制对象还可衍生出各种应用来。例如:时间的设置及显示、温度的检测及控制等,在此实验板上,编写相应的软件即可,否则,只在计算机上模拟调试软件,则无法了解单片机接口中各种控制信号的使用。还可帮助学生学会分析问题和解决问题的能力。这在单片机实验报告中都要体现出来。例如:如何检查程序存储器和外部数据存储器及i/o接口,执行访问外部程序存储器eprom2764的0000h 单元的指令,只能读取该单元的内容,不能改写,当dptr=0000h 时,执行 movca @dptr指令,这时候74ls373应锁存地址信号低8位,可用示波器测量74ls373的Q0-Q7 ,检验是否锁存了零信号,同样用示波器检测P2口是否输出了地址信号的高8位,用示波器检测P0口和 ALE控制信号。若和原理分析有偏差,很快就可判断出哪个管脚有问题,可顺藤摸瓜,找出问题所在。同理,执行单条指令访问外部接口8155的PA PB PC 口,软件执行时序信号和管脚测量结果相比较,看是否一致,以便检查硬件线路是否正确。访问外部RAM数据存储器(8155片内)时,用示波器测WR及 RD控制信号,如:读RAM时,应测到读控制信号脉冲,而写RAM时,应测得写控制信号脉冲。测得的信号一定是数字信号(0或1,0.7V左右或 3.8V左右),2.5V左右的数字信号肯定有问题。在仿真器上调试软件时,通过察看http://www.51hei.com单片机网的相关专栏得知,可采用仿真器上的晶振,通过后,改用用户板上的晶振,看结果是否一致,若有问题,说明用户板上的晶振有问题,再次通过后,把程序固化在EPROM2764中,拔掉仿真头,插上8031芯片,看是否通过,此时有问题,说明用户板上的复位信号有问题。逐步学会硬件电路的调试。外部可连接温度传感器,经A/D转换,检测温度信号,并根据键盘输入的设定值范围,进行报警,切换继电器工作;还可通过模拟开关对多点温度进行轮检,构成一台多点温度测试系统。作为测量设备,要考虑精度,在硬件电路上要考虑模拟开关的选择,因为其导通电阻的大小对模拟输入量有影响,应选择导通电阻小,带过压保护的模拟开关,同样A/D转换芯片应根据精度要求,选择8位、 12位等 转换器,或满足精度要求的压频转换器。也可对外部多种传感器进行检测,如:温度、烟雾、水警、门警、红外等,构成监控电路,被测量中既有模拟量,又有数字量,特别要加强抗干扰性,在线路板设计时,每块芯片电源引脚的滤波电容排放时尽量靠近芯片,模拟地和数字地先分别共地,最后,再把模拟地和数字地共地,模拟地和数字地只能出现一个共地点,最好电源和地单独布层,走线合理,提高线路板的抗干扰性,为了提高抗干扰能力,软件设计时,可连续测量几次,去掉最大值和最小值,剩下的量取平均值,以滤去一些突变信号,提高整个系统的抗干扰能力。

由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制,但单片机存储量有限,数据处理能力差,不利于数据信息的保存和处理,在这里利用单片机的串行口和上位PC机串口通讯,实验板上的MAX233串行转换芯片实现TTL信号和RS232 信号之间的转换,和 PC机通讯,从而实现远距离的监控及信息的存储、处理和打印清单,单片机完成现场数据的采集及各种信号的控制,构成一套环境监控单元。

几点单片机实验心得体会

在电子技术应用领域中,单片机的应用愈来愈多地应用到各行各业。如:工业控制、仪器仪表、电讯技术、办公自动化和计算机外部设备、汽车与节能、商用产品、家用电器等。目前,单片机正朝着大容量片上存储器、多功能i/o接口、宽范围工作电源和低功耗方向发展。要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,而且还要深入了解各应用系统的专业知识,只有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。一个好的工程设计师不仅要掌握单片机的工作原理,而且还要不断了解各公司最新芯片的结构和应用,在实际应用中找到最好的性能价格比。所以还要注意培养学生接受新知识的自学能力,掌握芯片发展动态。

        自我评价:还好吧


第二篇:51单片机实验报告


实验二、数据传送

一.实验目的:

1. 学习数据传送指令的用法。

2.熟悉建立、调试和运行汇编语言程序的过程。

二.实验内容: 将源数据区单元的(0~F)共16个数传送到目的数据区中。

注意:在51系列单片机中,只能使用R0,R1进行间接寻址。

三. 实验要求:

1. 内部RAM数据存取操作

2. 内部RAM和外部RAM的数据传送

3. 外部RAM的数据传送

说明:

1、片内RAM数据存取操作代码(即源数据区和目的数据区都在片内RAM):MOV @R1,A 。此时打开一个存储器窗口,在地址框中输入D:0x0,查看内存中的数据。

2、内部RAM和外部RAM的数据传送(源数据区在内部RAM,目的数据区在片外RAM)程序只需将上述代码中的MOV @R1,A 替换为 MOVX @R1,A。此时需要打开两个存储器窗口,一个用于观察片内RAM数据,一个用于观察片外RAM数据。在地址框中输入X:0x0,查看外存中的数据。

3、外部RAM的数据传送(源数据区和目的数据区都在片外RAM)只需将1中的代码

MOV A,@R0 MOV @R1,A 替换为MOVX A,@R0 MOVX @R1,A即可。此时可以只打开一个外部存储器窗口。

须强调的是:

访问外部数存,需要16位地址寻址。常用dptr(16位)寄存器作为地址指针;如: mov dptr,#0130h

movx a,@dptr

此时,程序计数器PC提供A0~A15地址值,送到p0、p2口构成16位物理地址。

实际上,对于8位单片机来说,对内部寻址范围只有128字节(00~FFh)。若以128字节为一页面,超次范围即成为一种页面寻址;而dph提供的就是页指针(页面地址)。 由此,我们也可以以R0或R1作为外部数存间接寻址低8位指针(只能存低8位地址),由P2口的当前值作为页面地址和P0的当前值构成16位(0000~FFFFh)外部数存地址进行外部间接寻址。如:

mov p2,#01h

mov r0,#30h

movx @r0,A

此时访问外部数存地址为:0130h

注: 上电复位后,p2口初始状态为FFh。

org 0000h

ajmp main

org 0040h

Main:

Mov r1,#40h

Mov r0,#50h

mov r2,#10h

loop1:

mov a,@r1

mov @r0,a

inc r0

inc r1

Djnz r2,loop1

Mov r0,#40h

mov r2,#10h

mov p2,#01h

mov r1,#50h

loop2:

mov a,@r0

movx @r1,a

inc r1

inc r0

Djnz r2,loop2

mov dptr,#0140h

mov p2,#01h

mov r0,#50h

mov r2,#10h

loop3:

movx a,@r0

movx @dptr,a

inc dptr

inc r0

Djnz r2,loop3

End

实验三多字节无符号数加法实验

目的:熟悉汇编中的加法指令。

内容:将被加数置入片内RAM以40H单元为起始地址的区间,将加数置入片内RAM

以50H单元为起始地址的区间。置入时,多字节数按先低位后高位的次序存数,相加结果,放回30H的存放单元。

org 0000h

ajmp main

org 0030h

Main:

Mov sp,#60h

Mov a,#0h

mov r2,34h

mov r0,#40h

mov r1,#50h

mov a,@r0

addc a,@r1

mov 30h,a

inc r0

inc r1

mov a,@r0

addc a,@r1

mov 31h,a

inc r0

inc r1

mov a,@r0

addc a,@r1

mov 32h,a

inc r0

inc r1

mov a,@r0

addc a,@r1

mov 33h,a

jnc next

inc 34h

next:ajmp $

end

多字节无符号数乘法实验

目的:熟悉汇编中的乘法指令。

内容:被乘数和乘数均为双字节数,先设置乘数与被乘数。将被乘数的高字节置入R7,低字节置入R6;将乘数的高字节置入R5,低字节置入R4。相乘后的结果,按先低位后高位的次序存入片内RAM以60H为首址的区间,并检查片内RAM 60H、61H、62H、63H单元的内容。改变两乘数,重复实验。

org 0000h

ajmp main

org 0030h

Main:

Mov sp,#60h

mov r7,40h

mov r6,41h

mov r5,42h

mov r4,43h

mov a,r6

mov b,r4

mul ab

mov 60h,a

mov 61h,b

mov a,r7

mov b,r4

mul ab

addc a,61h

mov 61h,a

mov 62h,b

mov a,#0

addc a,63h

mov 63h,a

mov a,r6

mov b,r5

mul ab

addc a,61h

mov 61h,a

mov a,b

addc a,62h

mov 62h,a

mov a,#0

addc a,63h

mov 63h,a

mov a,r7

mov b,r5

mul ab

addc a,62h

mov 62h,a

mov a,63h

mov 63h,b

addc a,63h

mov 63h,a

sjmp $

end

实验五、十六进制到ASCII码的转换实验 目的:熟悉码制之间的转换。

内容:将8个十六进制数放在30H为首单元,编程转换后的ASCII码放在40H为

首的单元。

0-30H 9-39H (39H=9+30H)

A-41H F-46H (41H=0AH+37H=A+30H+7H)

例如:30H开始的内存单元内容为0x01,0x23,0x45,0x67,0x89,0xAB,0xCD,0xEF 转换后40H开始的内存单元的内容为:

0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,

0x41,0x42,0x43,0x44,0x45,0x46

org 0000h

ajmp main

org 0030h

Main:

mov r0,#30h

mov r1,#40h

mov r7,#08h

Loop:

clr c

mov a,@r0

swap a

anl a,#0fh

mov r4,a

subb a,#0ah

jc loop1

mov a,r4

add a,#37h

mov @r1,a

inc r1

jmp loop2

loop1:

mov a,r4

add a,#30h

mov @r1,a

inc r1

loop2:

clr c

mov a,@r0

anl a,#0fh

mov r3,a

subb a,#0ah

jc loop3

mov a,r3

add a,#37h

mov @r1,a

inc r1

jmp loop4

loop3:

mov a,r3

add a,#30h

mov @r1,a

inc r1

loop4:

inc r0

Djnz r7,loop

Sjmp $

End

实验六、二进制数到BCD码转换实验

目的:熟悉码制之间的转换。

内容:将50H为首地址的4个字节的二进制数转化为对应的BCD码存放在60H为

首地址的内存单元。

要求低地址放低字节,高地址放高字节。

要求用循环。

例如:50H内存的数据为0x58,0x70,0x89,0x44转换后60H的内存数据为:0x08,0x08,0x0;0x02,0x01,0x01;0x07,0x03,0x01;0x08,0x06,0x0

ORG 0000H

AJMP MAIN

ORG 0030H

MAIN: MOV R0,#50H

MOV R1,#60H

MOV R2,#4H

MOV A,#0H

LOOP:

MOV A,@R0

MOV B,#0AH

DIV AB

MOV @R1,B

INC R1

MOV B,#0AH

DIV AB

MOV @R1,B INC R1

MOV @R1,A INC R1 INC R0

DJNZ R2,LOOP SJMP $ END

更多相关推荐:
单片机实验报告(基于51单片机)

滨江学院微机原理与接口技术综合实验报告题目:简易电子琴设计学号:学生姓名:XXX院系:滨江学院专业:指导教师:二OXX年月日【摘要】由于音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用…

51单片机课程设计实验报告

51单片机课程设计报告学院:专业班级:姓名:指导教师:设计时间:51单片机课程设计一、设计任务与要求1.任务:制作并调试51单片机学习板2.要求:(1)了解并能识别学习板上的各种元器件,会读元器件标示;(2)会…

51单片机实验报告

08424020xx单片微型计算机原理学院班级学号姓名指导教师成绩120xx年6月08424020xx硬件实验实验一定时器中断实验实验内容fosc110592MHzT0方式2产生定时中断实现秒表功能数码管后两位...

51单片机实验报告

08424020xx硬件实验实验一定时器中断实验实验内容fosc110592MHzT0方式2产生定时中断实现秒表功能数码管后两位显示10ms前两位显示秒数K1K2K3键分别启动停止清零按键操作不分先后实验程序流...

80C51单片机-实验报告

班级姓名学号单片机实验报告实验一CPU片内外清零1CPU片内RAM清零一实验目的掌握MCS51汇编语言的设计了解单片机的寻址方式以及调试方法二实验内容把单片机片内的30H7FH单元清零三实验框图四实验步骤用连续...

MCS51单片机原理及应用 实验报告

单片机原理与应用实验报告学校合肥工业大学姓名吕增威学号20xx2606班级计算机科学与技术0803班1目录前言3第一章MC51单片机原理及应用软件实验实验1系统认识实验6实验6数据排序实验验证性11第二章MC5...

李佛垚51单片机实验报告

实验报告实验名称矩阵键盘控制点阵的显示专业班级控制科学与工程学号s20xx0394学生姓名指导教师李晓林李丽宏牛昱光20xx年1月18日矩阵键盘控制点阵显示实验报告目录一实验目的1二实验内容1一扫描矩阵键盘读出...

51单片机5个例程修改实验报告

MCS51单片机实验报告专业通信工程指导老师学号姓名11实验要求修改例程一的源程序1将A寄存器的初值改为80H正逻辑数据位为1表示发光二极管点亮再对源程序进行简单修改使程序运行后发光二极管点亮情况与修改前相同2...

单片机实验报告

单片机实验报告实验二并行口输入输出实验循环彩灯控制任务一1实现的功能P1口接8个开关P0口接8个灯每个开关对应一个灯实时读取开关状态开关闭合时灯亮开关断开时灯灭2硬件原理图3流程图4程序ORG0000H程序入口...

单片机实验报告

一实验目的1熟练单片机的结构组成及原理2软硬兼施采用硬件电路的焊接搭建和软件的设计调试下载亲自动手对硬件系统加深了解的同时软件编程也能得心应手3了解如何从硬件和软件上分析问题排除故障二实验内容MCS51MCS5...

单片机最小系统实验报告

单片机原理及应用技术设计课题系别专业学号姓名指导老师课程设计报告20xx年6月单片机最小系统流水灯的设计一单片机简介由于单片机技术在各个领域正得到越来越广泛的应用世界上许多记成电路生产家相继推出各种类型的单片机...

单片机实验报告

单片机原理及应用一实验目的实验报告实验要求二实验电路及汇编源程序程序要加注释三仿真结果或硬件调试结果分析实验一存储器读写一实验目的1掌握寄存器存储器读写等汇编指令2掌握编程软件编辑编译调试等基本操作二实验内容1...

51单片机实验报告(27篇)