一。实训目的。
1、采用单片机为核心器件,利用at89s51试验板的a/d转换模块和led显示模块,实现数字电压表的功能。2、通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
3、掌握外部中断的设置和程序编写的基本方法。
3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
二.功能要求。
将电位器的可移动旋钮连接到adc0809的in0接口,旋转电位器的旋钮时,可以在adc0809的in0接口输入0.0v~5.0v的电压值,经过adc0809转换生成8位的数字量,cpu将接收到的数字量在发光二极管上显示经adc0809转换后的数字量(增加功能),然后cpu转换成0.
0v~5.0v模拟量,通过8255a在数码管上输出。
三:实验器材。
at89s52实验板,数据线一根,电源线一根,计算机一台(安装有keil uvision软件和slisp软件)
四.所用芯片及其功能。
1、adc0809芯片简介。
adc0809是带有8位a/d转换器、8路多路开关以及微处理机兼容的控制逻辑的cmos组件。它是逐次逼近式a/d转换器,可以和单片机直接接口。adc0809由一个8路模拟开关、一个地址锁存与译码器、一个a/d转换器和一个三态输出锁存器组成。
多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用a/d转换器进行转换。三态输出锁器用于锁存a/d转换完的数字量,当oe端为高电平时,才可以从三态输出锁存器取走转换完的数据。
a芯片简介。
8255a可编程外围接口芯片是intel公司生产的通用并行接口芯片,它具有3个8位的输入、输出端口,即a、b、c三个并行接口,用+5v单电源供电,能在以下三种方式下工作:
方式0:基本输入/输出式;
方式1:选通输入/输出式;
方式2:双向选通工作方式。
从功能上来分,8255a的结构可分为:
1)总线接口电路:数据总线缓冲器和读/写控制逻辑。
2)内部控制逻辑。
3)输入/输出接口电路。
3、at89c51管脚说明:
1)vcc:供电电压。
2)gnd:接地。
3)p0口:p0口为一个8位漏级开路双向i/o口,每脚可吸收8ttl门电流。当p1口的管脚第一次写1时,被定义为高阻输入。
p0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。
4)p1口:p1口是一个内部提供上拉电阻的8位双向i/o口,p1口缓冲器能接收输出4ttl门电流。p1口管脚写入1后,被内部上拉为高,可用作输入,p1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。
5)p2口:p2口为一个内部上拉电阻的8位双向i/o口,p2口缓冲器可接收,输出4个ttl门电流,当p2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,p2口的管脚被外部拉低,将输出电流。
这是由于内部上拉的缘故。p2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,p2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,p2口输出其特殊功能寄存器的内容。
6)p3口:p3口管脚是8个带内部上拉电阻的双向i/o口,可接收输出4个ttl门电流。当p3口写入“1”后,它们被内部上拉为高电平,并用作输入。
作为输入,由于外部下拉为低电平,p3口将输出电流(ill)这是由于上拉的缘故。
7)rst:复位输入。当振荡器复位器件时,要保持rst脚两个机器周期的高电平时间。
五.程序描述。
程序设计主要分为主程序和中断服务程序。主程序实现初始化、流水灯显示、数码管显示三大功能,中断服务程序主要实现数据采样。流程图描述如下:
主程序流程图:
a/d转换流程图:
六.程序(内含流水灯显示现象)
table:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h
table1:db 040h,79 h,024h,030h,19h,12h,02h,78h,00h,10h
org0000h
ajmpstart
org0003h
ljmpcint0
org0100h
w1: mov@r1, a
incr1djnzr2, w1
retstart: movr1, #78h
movr2, #02h
mova, #00h
callw1
mova, #80h
movdptr, #0efffh
movx@dptr, a
clramovr2, #0f0h
calldisp
main: movpsw, #00h
setbea
setbex0
setbit0
mova, #00h
movdptr, #0cff8h
movx@dptr, a
l2: jnbf0, l2
acalltunbcd
lcalldisint0
sjmpmain
tunbcd: mova,@r0
movb, #
divabmov79h, a
mova, b
clrf0subba,#1ah
movf0, c
mova, #
mulabmovb, #
divabjbf0, loop2
adda, #
loop2: mov78h, a
retdisp: mov dptr, #table
movc a,@a+dptr
mov dptr, #0effch
movx @dptr, a
mov a, r2
inc dptr
movx @dptr, a
call delay
retdisp1:movdptr,#table1
movc a,@a+dptr
mov dptr, #0effch
movx @dptr, a
mov a, r2
inc dptr
movx @dptr, a
call delay
retdisint0:mov a, 79h
mov r2, #0fbh
call disp1
mov a, 78h
mov r2, #0f7h
call disp
retdelay:movr6,#
dely1:djnzr7,dely1
retcint0:movxa,@dptr
mov@r0,a
setbf0
retiend
七.实训心得。
作为一名电子信息工程技术专业的大二的学生,我觉得做单片机课程设计是十分有意义的,而且是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?
如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似的课程设计就为我们提供了良好的实践平台。
在设计程序之前,老师给我们发了一张单片机内部的电路原理图,我一点也看不懂,自己先查阅相关的资料可是还是有很多不明白的地方,我们只好去请教老师,老师耐心的按电路图给我们讲了一下原理,后来又叫来大三的学长给我们讲“怎样启动8255,a/d转换,查找地址等”我们才对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源,在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
另外,这次课程设计让我感到了团队合作的重要性。因为对我来说学到的不仅是那些知识,更多的是团队和合作。现在想来,也许学校安排的课程设计有着它更深层的意义吧,它不仅仅让我们综合那些理论知识来运用到设计和创新,还让我们知道了一个团队凝聚在一起时所能发挥出的巨大潜能!
在团队中,我们互帮互助,对整个课程设计来说,这是至关重要的,缺少每一个人都会对我们的设计产生影响。还有要感谢指导老师在我们遇到困难时,给予我们的建议与鼓励。
设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这是第一次做,难免会遇到各种各样的问题。在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。我们通过查阅大量有关资料,并在小组中互相讨论,交流经验和自学,若遇到实在搞不明白的问题就会及时请教老师,使自己学到了不少知识,也经历了不少艰辛,但收获同样巨大。
在一个星期后的今天我已明白课程设计对我来说的意义,它不仅仅是让我们把所学的理论知识与实践相结合起来,提高自己的实际动手能力和独立思考的能力,更重要的是同学间的团结,虽然我们这次花去的时间比别人多,但我相信我们得到的也会更多!发现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作和生活中。
数字电压表
数字电压表设计。王明镜张陈方马卫星。一,设计任务和要求 1 任务 设计一个数字电压表。2 要求 直流 四位显示 精确到毫伏 测量范围在200mv 二,方案的选取和论证 方框图 预案 第一部分 模拟电压转换部分 1 将高电压转换成低电压 由于在现实的测量中,会遇到相对较高的电压,所以必须要对输入电压作...
整理电压表 1
数字电压表 digital voltmeter 简称dvm,它是采用数字化测量技术,把连续的模拟量 直流输入电压 转换成不连续 离散的数字形式并加以显示的仪表。传统的指针式电压表功能单。一 精度低,不能满足数字化时代的需求,采用单片机的数字电压表,由精度高 抗干扰能力强,可扩展性强 集成方便。目前,...
6电压和电压表的使用
知识梳理 一 电压。1 电路中电流的形成是由于电路两端存在电压是形成的原因 2 电源的作用是维持电压用字母表示 3 电压的单位 在国际单位制中,电压的单位是 简称 符号为 电压的单位中,比 伏 大的单位还有比 伏 小的单位还有。换算关系 1kvv 1vmv 4 常见的一些电源的电压值 一节干电池的电...