基于单片机的数字时钟设计电子称毕业设计.docx
- 文档编号:27360184
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:49
- 大小:81.25KB
基于单片机的数字时钟设计电子称毕业设计.docx
《基于单片机的数字时钟设计电子称毕业设计.docx》由会员分享,可在线阅读,更多相关《基于单片机的数字时钟设计电子称毕业设计.docx(49页珍藏版)》请在冰豆网上搜索。
基于单片机的数字时钟设计电子称毕业设计
毕业设计
基于单片机的数字时钟设计
绪论
随着科学技术和经济的发展,出售商品品种的增加,需要称量物品的设备也需要更新换代,人们对称重装置的要求也越,电子称重装置推广,从而进入到传感器,电子学和微处理机领域、使得称重装置变成为电子仪器。
它的特点是:
精确、智能、方便、明了、可靠,克服了传统的
1.智能电子秤系统的概况
随着自动化测量技术的不断发展,传统的称重系统在功能、精度、智能化、性价比等方面越来越难以满足人们的需要,尤其对一些微小质量的测量更显得力不从心。
为了实现高智能化的微小质量测量,以及商业流通领域中经常进行各种精度范围的重量测量,传统的秤砣加秤盘模式已经很难适应现代商业零售的需要。
同时商品种类的繁多和对服务更高的要求也促使电子秤的功能进一步扩展,而成为集度量、结算于一体的商业销售终端。
本着这些思想,本商用电子秤系统设计由传感器、A/D转换、单片机和LED显示器等组成,具有结构简单,成本低,精度高等优点。
1.1电子秤的发展史
早在20世纪80年代,美国、德国等工业发达国家,就开始了数字式称重传感器和数字称重系统的预先研究和初期开发工作,经过十余年的努力,推出了多种数字式智能称重传感器及其称重系统,在电子称重领域备受瞩目,有力的推动了电子衡器数字化和数字称重系统的发展。
我国数字式智能称重传感器的研究开发始于20世纪90年代中后期,在短短几年时间里,研制出安装在模拟式称重传感器内部的小型数字化单元,完成了模拟信号与数字信号之间的转换,变
图3-3
图中MODE端接地,7109工作于直接输出工作方式。
RUN/HOLD接+5V,以使7109连续转换。
STATUS作为中断请求信号与单片机的中断输入端相连。
由于采用了3.58MHz的晶振并经58分频,故7109完成一次转换所需的时间为T=8192(脉冲周期)×58/3.58=132.72ms,即转换速率为7.5次/秒。
7109输出的12位数据及极性、过量程标志分别由HBEN和LBEN控制,分两次送入单片机。
3.2单片机控制系统
该智能电子秤采用ATM公司的AT89C52[4]作为CPU,它是一种低功耗高性能的八位CMOS微控制器,与MCS-51微控制器件兼容本设计的控制电路。
以单片机89C52为控制中心,负责接收数据和外接设备的信号,再处理数据,发出控制信号,以达到所需的要求。
单片机[5]的SHIFT输入端可接地。
74LS07芯片是8279作为LED数码管显示器的段选码输出端口的同相驱动芯片,见后附录二。
3.3键盘显示接口电路
本设计系统除了前面所述的四个结构外,还需要用到人机联系部件以便接收各种命令和数据,即价格,重量的数据输入,清零、分度数设定、
最大称量设定、分度值设定、零点自动跟踪、零中心指示、过载显示、自动累计、欠电压指示等命令的输入。
集成芯片8279就是如上所述的一种功能较完善的键盘接口电路,它还具备显示接口的功能。
8279芯片作为通用接口电路,一方面接受来自键盘的输入数据并进行预处理,另一方面实现对显示数据的管理和对数码显示器的控制。
本系统中有14位LED显示器,4×4键盘和8279的接口电路。
图中键盘的行线接8279的低电平位的显示位中的显示内容分别显示出来,当这一过程很快显示时,人们就会在几个LED中看到了显示出来的不同内容。
在连接32键以内的简单键盘时,CNTL、SHIFT输入端可接地。
74LS07芯片是8279作为LED数码管显示器的段选码输出端口的同相驱动芯片。
4.1.2 主程序工作原理
软件程[6]序包括主程序、显示程序、键盘处理程序、A/D转换程序、数据转换处理程序。
控制器中AT89C52的INT1为A/D中断请求输入线,INT0为键盘中断服务程序。
A/D中断服务程序完成采样数据的存储;键盘中断服务程序完成扫描,判断数字键或功能键,若为数字将其数据送入数据缓冲区和显示缓冲区。
若是功能键进入相应功能键处理程序。
键盘上有数字键0~9和五个功能键,数字键用于输入商品单价、物体重量,功能键有去皮、清零、净/毛转换等功能、小数点。
(1) AT89C52输入输出端口定义如下:
P0口——A/D转换数据采集
P1口——芯片8279与单片机的接口
T2设为定时器状态,定时时间为13ms。
在中断服务中首先扫描键盘,判断有无键按下。
若有,则执行键识别程序。
然后返回主程序进行其他操作。
(6) 初始化程序完成所有系统设置
系统初始化程序完成对键盘接口功能芯片8279初始化设置,完成片内RAM
划分,堆栈指针的设置。
完成对各种功能程序段运行开关的设置,中断优先级的确定。
4.1.3主程序流程框图
开机后,机器自检,检查称重显示是否为零。
若称重显示不为零,则显示为错误标志,并进行微调,使之显示为零;若称重显示为零,进行整机初始化,然后启动0.5S延时程序,并判断标志位是否到0.5S;如果到了,则进行称重及数据运算处理,否则直接将显示数据送显示缓冲区,接下来判别有无键按下,若有则进入键功能处理程序,若没有键按下,则返回主程序。
SHAPE \*MERGEFORMAT
4.2系统初始化
系统上电后,对系统进行初始化。
初始化程序[7]主要完成对单片机内专用寄存器的设定,单片机工作方式及端口的工作状态的规定、RAM自检、各标志位的设置、设置栈指针、分配内存空间、设定计数器/定时器的工作方式。
4.2.1 AT89C52的初始化
1.AT89C52作为系统中央控制单元,是系统[8]程序中断,数据处理中心,也是其它各模块纽带,对其初始化意义非常大。
(
(1) 定时器/计数器T0初始化
在程序的开始处,我们设置0.5S定时来处理采样值。
所以根据实际情况,我们设T0为定时器并且定时为50ms。
因定时时间够大,所以采用16位定时/计数方式工作。
所以T0设定为工作方式1,非门控方式,TMOD.2=0,M1=0,M0=1,GATE=0;
方式寄存器TMTH0、TL0初值计算 由于T=(65536-X)×1=50000
得 X=15536=3CB0H
即 TH0=3CH,TL=0B0H
(2)定时器/计数器T1初始化
我们设T1为计数器,也用16位定时/计数方式工作。
所以TMOD.6=1, TMOD.5=0, TMOD.4=1,非门控制方式。
TMOD=01010001B=51H
(3)定时器/计数器T2初始化
T2作为键盘中断延时定时器。
定时13ms,其初始化根据中断实际应用来设置。
3.中断初始化
(1)系统中中断请求源包括外部INT0和INT1中断请求,中断的允许或禁止是有
内可进行位寻址的8位中断允许寄存器IE来控制的,如下所示:
EA
X
X
ES
ET1
EX1
ET0
EX0
其中EA是总开关,如果它等于0,则所有中断都不允许,本系统中SETB EA 让它总开。
ET0,ET1分别为定时0,1的中断允许,ET0、ET1为外部中断允许,它们根据实际程序应用来设置,利用位操作指令SETB 来实现,
(2)中断响应过程
CPU响应中断时,首先把当前指令的下一条指令(就是中断返回后将要执行的指令)的地址送入堆栈,然后根据中断标记,将相应的中断入口地址送入PC,执行PC指向所指地址程序。
中断完成后,一定要执行一条RETI指令,执行这条后,CPU将会把堆栈中保存着的地址取出,送回PC,那么程序就会从主程序的中断处继续往下执行。
如图:
本课题中我们设置允许外部中断0、中断1,定时器0、计数器1都中断允许,则IE是
EA
X
X
ES
ET1
EX1
ET0
EX0
1
0
0
0
1
1
1
1
4.2.2 8279的初始化
1. 8279的初始化
本课题中8279[9]是连接键盘与显示的接口芯片,在系统上电复位后,8279的命令/状态口地址为7FFFH,数据口地址为7FFEH,清除8279FIFO堆栈和显示RAM,设置编码扫描、输入方式、扫描频率,开外部中断。
电子秤的显示是8位显示,外部译码,驱动显示。
(1)键盘/显示器方式设置命令字
扫描计数器设定为编码方式,将键盘设置为双键互锁,显示器选取右入口显示方式,则命令字为10H。
(2)AT89C52的晶振频率f=12MHZ,则ALE线的输出频率为f/12=1MHZ,8279内部时钟频率要求100KHZ,则分频系数应取20,命令字为34H。
(3)写显示RAM命令字
设命令给出了显示RAM的地址信息,AI取1,写显示RAM地址自动加1,则命令字为90H,另外显示屏蔽消隐命令字为A0和,清除命令字取D1H.
4.2.3 ICL7109的初始化
本课题中让7109工作于直接输出方式,P1.0口控制转换。
见图3—3所示,RUN/HOLD接+5V,以使7109连续转换。
由于采用了3.58MHZ的晶振并经58分频,转换速率为7.5次/秒。
根据图可知数据口地址为FEFFH;
4.3 A/D转换结果处理程序
在智能电子秤控制系统中,除了控制单元和执行单元外,还必须有反馈环节。
在反馈环节中,最重要的就是对数据的采集[10]。
本文以AT89C52单片机为核心,设计一个基于单片机的数据采集系统,通过模拟电压形式输入系统,经双积分A/D转换器ICL7109可以采集12路模拟量,精度为12位,并经多次采样,通过滤波,取得更精确的重量值。
4.3.1 A/D转换过程
智能电子秤作为称重工具,其对数据的精度要求非常高,A/D转换器位数的确定与整个测量控制系统所需测量的范围和精度有关,本设计选择双计分型A/D转ICL7109,它模拟量采集精度达到12位,在实际应用中,可以对电压信号进行直接采集,为了使所采样值更精确,我们要将采样值进行数字滤波。
STATUS作为中断请求信号与单片机的中断输入端相连。
由于采用了3.58MHz的晶振并经58分频,故7109完成一次转换所需的时间为T=8192(脉冲周期)×58/3.58=132.72ms,即转换速率为7.5次/秒。
7109输出的12位数据及极性、过量程标志分别由HBEN和LBEN控制,分两次送入单片机。
其转换过程如下:
SHAPE \*MERGEFORMAT
4.3.2 采样数据处理
(1)采样取值
我们在单片机内开辟30H~45H单元存放采样值,工作寄存器0组存放中间参数,R0为地址指针,指向拟以采样值的片内RAM地址;R7存采样次数。
图4-4 采样流程图
(2)数据滤波
本课题中,利用算术平均值法滤波可以抑制智能电子秤采样时随机干扰。
其原理是将8次采样值相加,然后求其平均值作为有效采样值。
将8次采样值累加和放在R3、R4、R5中,求的平均值在R4、R5中。
SHAPE \*MERGEFORMAT
4.3.3程序
程序如下:
(1.)主程序
INT1:
MOV R0,#30H ; R0作地址指针,指向拟以存放数据的片RAM的地址
MOV R7,#08H; R7作计数器,拟存采样次数
SETB EA; 总开中断
SETB EX1; 外部中断1
CLR F0 ; 清采样完成标志
SJMP NEXT ; 采样标志未建起,仍转NEXT
ELSE:
采样已完成,继续执行主程序
(2.)读取采样值:
ORG 0013H
LJMP TRANS ;
外部中断1服务程序
TRANS:
MOV DPTR,#0FFFFH
MOVX A,@DPTR ; 读低字节
MOV @R0 ,A; 存低字
INC R0
MOV DPTR,#0FFFFH
MOVX A, @DPTR ; 读高字节
MOV @R0, A ; 存高字节
DJNZ R7,TRANS ; 采样次数未到,转TRANS
SJMP DONE ; 采样次数已到,转DONE
DONE:
SETB F0
RETI
(3.)采样值滤波
入口条件:
数据块的首址在DPTR中,双字节数据个数在R7中。
出口信息:
平均在 R4、R5中
影响资源:
PSW、A、R2~R6堆栈需求:
4字节
DPTR EQU 30H
MOV R7, #08H
DDM2:
MOV A,R7 ;保存数据个数
MOV R2,A ;初始化数据指针
PUSH DPL ;保存首址
PUSH DPH
CLR A ; 初始化累加和
MOV R3,A
MOV R4,A
MOV R5,A
DM20:
MOVX A,@DPTR; 读取一个数据的高字节
MOV B, A
INC DPTR
MOVX A,@DPTR; 读取一个数据的低字节
INC DPTR
ADD A, R5 ;累加到累加和中
MOV R5, A
MOV A, B
ADDC A, R4
MOV R4, A
JNC DM21
INC R3
DM21:
DJNZ R2 ,DM20 ;累加完全部数据
POP DPH ;恢复首址
POP DPL
LJMP DV31; 求平均值
DV31功能:
三字节二进制无符号数除以单字节二进制数
入口条件:
被除数在R3、R4、R5中,除数在R7中。
出口信息:
OV=0时,双字节商在R4、R5中,OV=1时溢出。
影响资源:
PSW、A、B、R2~R7堆栈需求:
2字节
DV31:
CLR C
MOV A, R3
SUBB A, R7
JC DV30
SETB OV;商溢出
RET
DV30:
MOV R2, #10H;求R3R4R5/R7-→R4R5
DM23:
CLR C
MOV A, R5
RLC A
MOV R5, A
MOV A ,R4
RLC A
MOV R4 ,A
MOV A, R3
RLC A
MOV R3, A
MOV F0, C
CLR C
SUBB A, R7
ANL C, /F0
JC DM24
MOV R3,A
INC R5
DM24:
DJNZ R2,DM23
MOV A ,R3;四舍五入
ADD A, R3
JC DM25
SUBB A ,R7
JC DM26
DM25:
INC R5
MOV A ,R5
JNZ DM26
INC R4
DM26:
CLR OV
RET; 商在R4R5中
4.4键盘与显示处理程序
我们知道键盘和显示是人与微机系统打交道的主要设备。
在本系统中我们采用8279可编程键盘/显示管理接口。
利用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,并具有显示稳定、程序简单、不会出现误动作等特点。
4.4.1 程序原理
(1)8279键盘、显示程序可分为四个部分
1. 主程序:
首先将8279初始化,对8279写入相应的命令字,使其按要求工作,然后开始不断扫描键盘,判断是否有键按下,当没有键盘按下时则继续扫描键盘;当有键盘有键按下时就取出键值,并判断是功能键还是数字键,且转到相应的子程序处理。
主程序流程图如图所示。
2. 键扫描子程序:
主要判断有无键按下,利用8279的状态字节可判断FIFORAM中已键入数据的个数或没有输入字符。
当状态字节的低四位全为0时,便可判断无键按下,其程序流程图如下所示
3. 当判断有键按下后,就转向取键值子程序。
首先取出行、列号进行拼装,得到所需的键号。
然后与数OAH相比较,从而判断出是功能键还是数字键。
若是功能键就转到功能键处理子程序;若是数字键就调用显示子程序进行显示。
4. 显示子程序。
首先置显示缓冲区首址和计数长度,然后取显示数据转换为段选码,送到LED上显示。
SHAPE \*MERGEFORMAT
4.4.2键盘模块
(1)键盘监控程序图
如图4是一键一义键盘监控程序结构,微处理器平时周而复始扫描键盘,当发现有键按下时,首先判断是命令键还是数字键。
若是数字键,则把按键读数存入存储器,并显示;若是命令键,则根据按键读数查阅转移表;以获得处理子程序的入口。
子程序执行完后继续扫描键盘,
SHAPE \*MERGEFORMAT
图4-8 读键值中断程序框图
(2) 本系统键盘中断服务程序图
本系统中键盘控制采用中断方式实现,利用外部中断1端口来实现。
采用4*4的16键,分为数字键:
0~9,和5个命令键:
去皮、置零、小数点、净/毛转换。
数字键和小数点键:
用于输入单价;去皮键:
用于去除皮重;清单价:
用于输入的单价错误的时候,重新输入。
SHAPE \*MERGEFORMAT
当输入为字符时,执行相应的子程序。
键盘输入为一个字符时,代表一种命令。
按输入的命令字符去执行对应的处理程序。
在本程序中,A、B、C、D、E、F对应程序入口去皮、净/毛转换、价格计算、清单价、置零,标号分别为XA、XB、XC、XD、XE、XF。
设命令字符在A中,
LTB5:
MOV DPTR ,#TAB5
MOV B,A
LOP5:
CLR A
MOVC A,@A+DPTR
JZ LEDN
INC DPTR
CJNE A,B,LNF5
CLR A
MOVC A,@A+DPTR
MOV B,A
INC DPTR
CLR A
MOVC A,@A+DPTR
MOV DPL,A
MOV DPH, B
CLR A
JMP @A, DPTR
LNF5:
INC DPTR
INC DPTR
SJMP LOP5
LEND:
TAB:
DB ’A’
DW XA
DB‘B’
DW XB
DB ’C’
DW C
DB‘D’
DW XD
DB‘E’
DW XE
DB ‘F’
DW F
4.4.3显示模块
操作者是从显示设备上获取微机系统的信息,因此,操作者每操作一下,显示设备上都应该有一定的反应。
这说明,显示模块与操作有关,即监控程序需要调用显示模块。
显示模块可以由命令键来驱动或者自动执行模块来驱动。
通常,自动执行模块调用时,只让一处调用显示模块,其他各处不得直接调用显示模块,此时要设置一个显示申请标志,当某模块需要显示时,将申请标志置位,同时设定有关显示内容,将显示模块安排在一个重复执行的循环中。
SHAPE \*MERGEFORMAT
4.5数据处理程序
电子秤作为一种自动计价和称重的仪表,其系统内有着大量的数据需处理,包括重量计算,价格计算。
数据处理主要有多字节的乘法运算,二-十进制转换,十-二进制转换。
4.5.1重量输出
本课题中,A/D转换采用ICL7109芯片,它是12位输出,重量计算要求精确到克,其输出值范围为000000000000B~111111111111B转换为十进制数0~4096,而系统所要求输出重量范围0~10000g,所以我们进行线性参数的标度变换,
AX=(AM/NM)NX。
其量化单位为10000/4096=2.44。
如下:
为使技术方便我们将2.44=244/100,即化为定点数来算。
244=11110100B,100=01100100B采样值在R4R5中,并选用工作寄存器1组。
SHAPE \*MERGEFORMAT
4.5.2价格计算
该子程序中利用各工作寄存器2组,数据存在以40H单元为首址的连续单元中。
为使计算方便单价化为以分为单位。
SHAPE \*MERGEFORMAT
4.5.3 置零
(1)单价清零
图4-13清单价子程序流程图
(2)总清零
SHAPE \*MERGEFORMAT
结 论
智能电子秤以具有良好的可靠性、准确性、技术先进性和结构简单等特点,受到广大用户的青睐。
在商业活动中用途越来越广,给人们的经济生活带来了便利。
采用AT89C52单片机设计的电子计重秤,无论是计量精度,还是稳定性都满足国家对À级电子秤的要求,它具有较好的标定校准方法,性能稳定,操作简单,价格低廉。
同时通过硬件的少量扩展和软件的修改,能设计出性能优越的计价秤、电子台秤等,满足各行各业对现代电子衡器的需求。
单片机控制的电子秤集传感器技术、微计算机技术、数字显示技术于一体、其反应灵敏、准确度高、显示直观,便于使用。
另外稍加扩展,该电子秤还可与其它生产质量管理系统项连接,具有推广应用价值。
电子称重技术是现代称重计量和控制系统工程的重要基础之一。
近年来,随着计算机和称重传感器技术的迅速发展,现代科学技术的相互渗透,电子称重技术及应用又有了新发展。
称重技术从静态称重向动态称重发展;计量方法从模拟测量向数字测量发展;测量特点从单参数测量想多参数测量发展特别是对快速称重和动态称重的研究与应用,已为世界各国所关注。
可以说电子称重技术的发展水平,已成为衡量一个国家科学技术水平和工业发达程度的重要标志之一。
电子
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 数字 时钟 设计 电子称 毕业设计