完整版环道控制系统下位软件设计方案二毕业设计论文.docx
- 文档编号:24910227
- 上传时间:2023-06-02
- 格式:DOCX
- 页数:26
- 大小:234.88KB
完整版环道控制系统下位软件设计方案二毕业设计论文.docx
《完整版环道控制系统下位软件设计方案二毕业设计论文.docx》由会员分享,可在线阅读,更多相关《完整版环道控制系统下位软件设计方案二毕业设计论文.docx(26页珍藏版)》请在冰豆网上搜索。
完整版环道控制系统下位软件设计方案二毕业设计论文
优秀论文审核通过
未经允许切勿外传
毕业设计报告(论文)
报告(论文)题目:
环道控制系统下位软件
设计方案二
作者所在系部:
电子工程系
作者所在专业:
自动化
作者所在班级:
作者姓名:
作者学号:
指导教师姓名:
完成时间:
XXXXX学院电子工程系
毕业设计(论文)任务书
姓名:
专业:
班级:
学号:
指导教师:
职称:
完成时间:
毕业设计(论文)题目:
环道控制系统下位软件设计方案二
设计目标:
利用模拟电子技术和数字电子技术的理论知识,设计实现能在双踪示波器显示屏上显示晶体管输出特性曲线这一基本要求。
技术要求:
1.能显示8条完整的输出特性曲线。
2.相邻特性曲线的间隔相同。
3.特性曲的显示自下而上,且连续、无闪烁。
4.可控制显示特性曲线的起始部分。
5.自动识别三个电极、判断其类型和材料。
6.测量晶体管的值。
所需仪器设备:
计算机一台、multisim2001软件
成果验收形式:
原理图、仿真结果
参考文献:
《模拟电子技术基础》、《数字电子技术基础》、《电子系统设计》
时间
安排
1
5周---6周
立题论证
3
9周---13周
仿真调试
2
7周---8周
方案设计
4
14周---16周
成果验收
指导教师:
教研室主任:
系主任:
摘要
介绍基于ATMEL公司AT89s52单片机、美国DALLAS公司推出的具有涓流充电能力的低功耗实时时钟电路DS1302、以及数码管驱动芯片ICM7218B实现的时钟电路。
本设计中详细介绍了AT89s52单片机、实时时钟电路DS1302、数码管驱动芯片ICM7218B的结构、工作原理及其应用。
给出了用实时时钟电路DS1302、数码管驱动芯片ICM7218B实现本设计的汇编源程序。
DS1302是实时时钟芯片,单片机AT89S52的任务只是读出1302中的时间信息,软件译码后送ICM7218B驱动数码管显示相关信息,这也使得本设计的软件功能比较单一,易于实现。
关于用1302实现电子钟的资料很多,但是大多数都采用了液晶显示;考虑到本设计的应用场合是室外或室内远距离观看,由于数码管显示具有亮度高的特点,故选择数码管显示;本设计的特色在于采用了数码管驱动芯片ICM7218B,一片ICM7218B可以驱动8个共阴极数码管,本设计中的15个数码管只需2片驱动即可满足需要,这使得电路的硬件更为简洁,电路更为可靠。
另外还介绍了在硬件制作及软硬件调试过程中的一些经验。
单片机AT89S52采用12MHZ晶振,实时时钟DS1302采用32768HZ晶振。
关键词:
实时时钟单片机ICM7218B应用
第1章绪论1
1.1课题背景1
1.2课题来源1
1.3总体方案介绍2
第2章.基于AT89S52数显时钟的主要器件2
2.1单片机AT89S522
2.1.1、主要性能2
2.2.实时时钟芯片DS13024
2.2.1、引言5
2.2.2、DS1302的结构及工作原理5
2.2.2.1引脚排列及引脚说明5
2.2.2.2DS1302的控制字节5
2.2.2.3数据输入输出(IO)6
2.3.1DS1302与CPU的连接7
2.3.2DS1302实时时间流程7
2.4结论9
2.2数码管显示驱动芯片ICM7218B9
2.2.1.ICM7218B的引脚定义9
2.2.2.ICM7218B控制命令字格式10
2.2.3.待显示数据位与数码管各段的对应关系10
2.2.4.ICM7218B驱动芯片的典型接口电路10
第3章.AT89S52数显时钟电路原理简图12
第4章.数显时钟流程图15
6.1.主程序流程图15
6.2.时间调整程序流程图16
第5章、综合调试17
致谢18
参考文献18
附录19
基于AT89S52的数显时钟
第1章绪论
1.1课题背景
单片机自1976年由Intel公司推出MCS-48开始,迄今已有二十多年了。
单片机的应用领域已从面向工业控制、通讯、交通、智能仪表等迅速发展到家用消费产品、办公自动化、汽车电子、PC机外围以及网络通讯等广大领域。
单片机有两种基本结构形式:
一种是在通用微型计算机中广泛采用的,将程序存储器和数据存储器合用一个存储器空间的结构,称为普林斯顿结构。
另一种是将程序存储器和数据存储器截然分开,分别寻址的结构,一般需要较大的程序存储器,目前的单片机以采用程序存储器和数据存储器截然分开的结构为多。
本文讨论的基于AT89S52的电子钟的核心是目前应用极为广泛的51系列单片机,配置了外围设备,构成了一个可编程的计时定时系统,具有体积小,可靠性高,功能强等特点。
不仅能满足所需要求而且还有很多功能可供开发,有着广泛的应用领域。
20世纪80年代中期以后,Intel公司以专利转让的形式把8051内核技术转让给许多半导体芯片生产厂家,如ATMEL、PHILIPS、ANALOG、DEVICES、DALLAS等。
这些厂家生产的芯片是MCS-51系列的兼容产品,准确地说是与MCS-51指令系统兼容的单片机。
这些兼容机与8051的系统结构(主要是指令系统)相同,采用CMOS工艺,因而,常用80C51系列来称呼所有具有8051指令系统的单片机,它们对8051单片机一般都作了一些扩充,更有特点。
其功能和市场竞争力更强,
1.2课题来源
在日常生活和工作中,我们常常用到钟表。
早期常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的控制功能。
小则可以用于家电控制,甚至可以用于儿童电子玩具。
它功能强大,体积小,质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品。
随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自己的控制器,使用起来很不方便。
根据这种实际情况,设计了一个单片机时钟系统,它可以显示时、分、秒,并在需要时显示阳历日期年、月、日。
1.3总体方案介绍
本次设计电子钟系统功能简单,用单片机的最小系统就能得以实现。
而单片机的最小系统设计中实际上最重要的就是对显示器接口电路的设计,由于系统功能不同所以要求就不同,接口设计也就不同。
对一个键盘显示器接口设计应从整个系统出发,综合考虑软、硬件特点。
本人在设计采用实时时钟芯片的设计方案。
实时时钟芯片具备年、月、日、时、分、秒计时功能和多点定时功能,计时数据的更新每秒自动进行一次,不需程序干预。
计算机可通过中断或查询方式读取计时数据进行显示,因此计时功能的实现无需占用CPU的时间,程序简单。
此外,实时时钟芯片多数带有锂电池做后备电源,具备永不停止的计时功能;具有可编程方波输出功能,可用做实时测控系统的采样信号等;有的实时时钟芯片内部还带有非易失性RAM,可用来存放需长期保存但有时也需变更的数据。
由于功能完善,精度高,软件程序设计相对简单,且计时不占用CPU时间,因此,在工业实时测控系统中多采用这一类专用芯片来实现实时时钟功能。
我采用了实时时钟芯片DS1302来完成本设计。
第2章.基于AT89S52数显时钟的主要器件
2.1单片机AT89S52
2.1.1、主要性能
与MCS-51单片机产品兼容
8K字节在系统可编程Flash存储器
1000次擦写周期
全静态操作:
0Hz~33MHz
三级加密程序存储器
32个可编程IO口线
三个16位定时器计数器
八个中断源
全双工UART串行通道
低功耗空闲和掉电模式
掉电后中断可唤醒
看门狗定时器
双数据指针
掉电标识符
AT89S52的功能特性描述如下:
AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在系统可编程Flash存储器。
使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。
片上Flash允许程序存储器在系统可编程,亦适于常规编程器。
在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。
AT89S52具有以下标准功能:
8k字节Flash,256字节RAM,32位IO口线,看门狗定时器,2个数据指针,三个16位定时器计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。
另外,AT89S52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。
空闲模式下,CPU停止工作,允许RAM、定时器计数器、串口、中断继续工作。
掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。
2.1.2、引脚功能说明
VCC:
电源
GND:
地
P0口:
P0口是一个8位漏极开路的双向IO口。
作为输出口,每位能驱动8个TTL逻辑电平。
对P0端口写“1”时,引脚用作高阻抗输入。
当访问外部程序和数据存储器在时,P0口也被作为低8位地址数据复用。
在这种模式下,P0具有内部上拉电阻。
在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。
程序校验时,需要外部上拉电阻。
P1口:
P1口是一个具有内部上拉电阻的8位双向IO口,p1输出缓冲器能驱动4个TTL逻辑电平。
对P1端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
此外,P1.0和P1.2分别作定时器计数器2的外部计数输入(P1.0T2)和时器计数器2的触发输入(P1.1T2EX),具体如下表所示。
在flash编程和校验时,P1口接收低8位地址字节。
引脚号第二功能
P1.0T2(定时器计数器T2的外部计数输入),时钟输出
P1.1T2EX(定时器计数器T2的捕捉重载触发信号和方向控制)
P1.5MOSI(在系统编程用)
P1.6MISO(在系统编程用)
P1.7SCK(在系统编程用)
P2口:
P2口是一个具有内部上拉电阻的8位双向IO口,P2输出缓冲器能驱动4个TTL逻辑电平。
对P2端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX@DPTR)时,P2口送出高八位地址。
在这种应用中,P2口使用很强的内部上拉发送1。
在使用8位地址(如MOVX@RI)访问外部数据存储器时,P2口输出P2锁存器的内容。
在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。
P3口:
P3口是一个具有内部上拉电阻的8位双向IO口,p2输出缓冲器能驱动4个TTL逻辑电平。
对P3端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。
作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。
P3口亦作为AT89S52特殊功能(第二功能)使用。
在flash编程和校验时,P3口也接收一些控制信号。
P3.0RXD(串行输入)
P3.1TXD(串行输出)
P3.2INT0(外部中断0)
P3.3INT0(外部中断0)
P3.4T0(定时器0外部输入)
P3.5T1(定时器1外部输入)
P3.6WR(外部数据存储器写选通)
P3.7RD(外部数据存储器写选通)
RST:
复位输入。
晶振工作时,RST脚持续2个机器周期高电平将使单片机复位。
看门狗计时完成后,RST脚输出96个晶振周期的高电平。
特殊寄存器AUXR(地址8EH)上的DISRTO位可以使此功能无效。
DISRTO默认状态下,复位高电平有效。
ALEPROG:
地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低8位地址的输出脉冲。
在flash编程时,此引脚(PROG)也用作编程输入脉冲。
在一般情况下,ALE以晶振六分之一的固定频率输出脉冲,可用来作为外部定时器或时钟使用。
然而,特别强调,在每次访问外部数据存储器时,ALE脉冲将会跳过。
如果需要,通过将地址为8EH的SFR的第0位置“1”,ALE操作将无效。
这一位置“1”,ALE仅在执行MOVX或MOVC指令时有效。
否则,ALE将被微弱拉高。
这个ALE使能标志位(地址为8EH的SFR的第0位)的设置对微控制器处于外部执行模式下无效。
PSEN:
外部程序存储器选通信号(PSEN)是外部程序存储器选通信号。
当AT89S52从外部程序存储器执行外部代码时,PSEN在每个机器周期被激活两次,而在访问外部数据存储器时,PSEN将不被激活。
EAVPP:
访问外部程序存储器控制信号。
为使能从0000H到FFFFH的外部程序存储器读取指令,EA必须接GND。
为了执行内部程序指令,EA应该接VCC。
在flash编程期间,EA也接收12伏VPP电压。
2.2.实时时钟芯片DS1302
2.2.1、引言
现在流行的串行时钟电路很多,如DS1302、DS1307、DS12887等。
这些电路的接口简单、价格低廉、使用方便,被广泛地采用。
本设计采用的实时时钟电路DS1302是DALLAS公司的一种具有涓流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。
采用普通32.768kHz晶振。
2.2.2、DS1302的结构及工作原理
DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。
采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。
DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。
DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。
2.2.2.1引脚排列及引脚说明
图1示出DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。
在主电源关闭的情况下,也能保持时钟的连续运行。
DS1302由Vcc1或Vcc2两者中的较大者供电。
当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。
当Vcc2小于Vcc1时,DS1302由Vcc1供电。
X1和X2是振荡源,外接32.768kHz晶振。
RST是复位片选线,通过把RST输入驱动置高电平来启动所有的数据传送。
RST输入有两种功能:
首先,RST接通控制逻辑,允许地址命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。
当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。
如果在传送过程中RST置为低电平,则会终止此次数据传送,IO引脚变为高阻态。
上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。
只有在SCLK为低电平时,才能将RST置为高电平。
IO为串行数据输入输出端(双向)。
SCLK始终是输入端。
2.2.2.2DS1302的控制字节
DS1302的控制字如图2所示。
控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。
2.2.2.3数据输入输出(IO)
在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。
同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
2.2.2.4DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。
时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,命令控制字为FEH(写)、FFH(读)。
2.3DS1302实时显示时间的软硬件
DS1302与CPU的连接需要三条线,即SCLK(7)、IO(6)、RST(5)。
图3示出DS1302与89C2051的连接图,其中,时钟的显示用LCD,也可以使用LED数码管显示。
在本设计中使用数码管显示,这主要是考虑到数码管显示时的亮度高,便于时钟的远距离观看。
2.2.3.1DS1302与CPU的连接
实际上,在调试程序时可以不加电容器,只加一个32.768kHz的晶振即可。
只是选择晶振时,不同的晶振,误差也较大。
另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。
只要占用CPU一个口线即可。
LCD还可以换成LED。
功耗低,显示状态时电流为2μA(典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。
2.2.3.2DS1302实时时间流程
图4示出DS1302的实时时间流程。
根据此流程框图,不难采集实时时间。
DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。
在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。
若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。
DS1302与RAM相关的寄存器分为两类:
一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。
要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。
虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。
可以用老式电脑主板上的3.6V充电电池。
如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。
100μF就可以保证1小时的正常走时。
DS1302在第一次加电后,必须进行初始化操作。
初始化后就可以按正常方法调整时间。
2.4结论
DS1302存在时钟精度不高,易受环境影响,出现时钟混乱等缺点。
DS1302可以用于数据记录,特别是对某些具有特殊意义的数据点的记录,能实现数据与出现该数据的时间同时记录。
这种记录对长时间的连续测控系统结果的分析及对异常数据出现的原因的查找具有重要意义。
传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此,只能记录数据而无法准确记录其出现的时间;若采用单片机计时,一方面需要采用计数器,占用硬件资源,另一方面需要设置中断、查询等,同样耗费单片机的资源,而且,某些测控系统可能不允许。
但是,如果在系统中采用时钟芯片DS1302,则能很好地解决这个问题。
2.2数码管显示驱动芯片ICM7218B
ICM7218B是INTERSIL公司生产的CMOS8位LED共阴极驱动器,内设两种7段译码器(16进制及BCD码译码器),及8个静态字节RAM(存放显示数据),能在多位扫描电路的控制下实现8位LED显示。
2.2.1.ICM7218B的引脚定义
2.2.2.ICM7218B控制命令字格式
ICM7218B为可编程接口芯片,工作方式可通过初始化程序设置。
当MODE为1时写入控制字。
其中:
ID7为数据传送标志位。
ID7为高电平时,表明后面输入数据,为低电平时表明后面不输入数据。
ID6为译码方式标志位。
ID6为1时进行全16进制译码,为0时实现BCD码译码。
ID5为硬件译码和软件译码选择端。
ID5为1时软件译码,为0时由硬件实现译码。
ID4为关闭信号位。
为0时关闭译码和显示,为高电平时正常工作。
ID3—ID0此时无效。
若系统选择硬件译码,且MODE为低电平时,ID7__ID4无效。
而ID3__ID0为16进制码或BCD码输入值。
译码真值表如下:
2.2.3.待显示数据位与数码管各段的对应关系
2.2.4.ICM7218B驱动芯片的典型接口电路
第3章.AT89S52数显时钟电路原理简图
本原理图只显示主要的电路连接关系,对ICM7218B的8根段码线合8根位码线都各用一根线来表示,这并不影响对电路原理的表达,相反突出了表达重点,是电路图显得简洁明了。
电源电路比较简单,只是一个简单的降压,整流,稳压电路,给电路提供+5V电压。
ICM7218B显示电路原理示意图:
下图是简单的示意图,数码管的断码和位码线都合并成了一根线,这样的画法,看图时更简单明了。
DS1302时钟电路与主控芯片AT89S52的连接:
AT89S52与ICM7218B的连接:
本设计共使用了15个共阴极数码管,用两片ICM7218B驱动,两片ICM7218B的地址通过一片译码器74LS138分配,其地址分别是8200H和4200H;本设计采用软件查表译码的方式,所以控制字为0B0H。
下面是主控单片机与数码管驱动ICM7218B的连接图。
第4章.数显时钟流程图
6.1.主程序流程图
数显是中的主程序功能比较单一,只实现对DS1302的初始化,然后调用对DS1302的读一个字节子程序,写一个字节子程序,分离子程序,显示子程序;完成对DS1302的读、写、读出的BCD码高低位的分离,然后软件查表译码并送往ICM7218B驱动数码管显示相应的年、月、日、时、分、秒及星期。
6.2.时间调整程序流程图
时间调整利用两个按键实现,移位按键和加一按键。
移位按键接P3.0,加一按键接P3.1。
可以实现对年(低两位)、月、日、时、分、星期的调整(秒不用调整)。
当按键未按下时,P3.0和P3.1都呈高电平,按下按键时P3.0和P3.1呈低电平,在软件中不断检测P3.0和P3.1口的状态就可以识别出相应的操作。
·
第5章、综合调试
根据要实现的功能选用合适的器件,再根据器件设计电路原理图,再写出汇编程序。
在进行焊接前要对器件进行筛选检查,比如我到最后进行软硬件联调时发现我用的电池盒有问题,尽管它是新的。
联调时还发现显示很不稳定且年、月、日、时、分、秒都只能显示一位,另一位不显示,分析软件也没有逻辑上的错误,最后在显示子程序的中间加了一段5m
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整版 环道 控制系统 下位 软件设计 方案 毕业设计 论文