单片机电子秤重量检测与显示设计说明.docx

上传人:b****1 文档编号:13827198 上传时间:2023-06-17 格式:DOCX 页数:49 大小:247KB
下载 相关 举报
单片机电子秤重量检测与显示设计说明.docx_第1页
第1页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第2页
第2页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第3页
第3页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第4页
第4页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第5页
第5页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第6页
第6页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第7页
第7页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第8页
第8页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第9页
第9页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第10页
第10页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第11页
第11页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第12页
第12页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第13页
第13页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第14页
第14页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第15页
第15页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第16页
第16页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第17页
第17页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第18页
第18页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第19页
第19页 / 共49页
单片机电子秤重量检测与显示设计说明.docx_第20页
第20页 / 共49页
亲,该文档总共49页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

单片机电子秤重量检测与显示设计说明.docx

《单片机电子秤重量检测与显示设计说明.docx》由会员分享,可在线阅读,更多相关《单片机电子秤重量检测与显示设计说明.docx(49页珍藏版)》请在冰点文库上搜索。

单片机电子秤重量检测与显示设计说明.docx

单片机电子秤重量检测与显示设计说明

第一章微控制器应用系统综合设计的目的意义

1.1设计目的

通过课程设计进一步锻炼同学们在微型计算机应用方面的实际工作能力。

计算机科学在应用上得到飞速发展,因此,学习这方面的知识必须紧密联系实际:

掌握这方面的知识更要强调解决实际问题的能力。

同学们要着重学会面对一个实际问题,如何去自己收集资料,如何自己去学习新的知识,如何自己去制定解决问题的方案并通过实践不断地去分析和解决前进道路上的一切问题,最终到达胜利的彼岸。

本实验是设计单片机重量检测与显示电路,对5种以上不同单价的商品进行键盘参数设置,称量,计价和显示。

这个课题与我们现实生活联系密切,具有很大的实际用途。

做好本实验对我们今后学习和生活具有重要意义。

1.2课程在教学计划中的地位和作用

《微控制器应用系统综合设计》课程是测控技术专业本科生必修的一门技术基础课程。

通过该课程的学习使学生对单片机有一个全面的了解、掌握常规芯片的使用方法、掌握简单微型计算机应用系统软硬的设计方法。

为了使我们微机应用课程设计目标更明确,要求更具体,学生收获更大,我们特编写课程设计任务书,学生可根据本人的爱好任选其中一个课题,要求独立完成课题,写出课程设计说明书,设计出电路原理图,说明工作原理,画出电路板图,编写程序及程序流程图。

希望同学认真阅读本任务书,认真查阅资料与上机调试,圆满完成课程设计。

 

第二章电子计价称软硬件设计任务

2.1设计容及要求

设计单片机称重测量检测,处理与显示电路,对五种不同单价的商品进行键盘参数设置,称量,计价和显示。

由A/D0809把输入的0—5V的电压转换,当电压为5V时,对应的重量为500克,进行数值转换,并在LCD液晶显示器上显示商品的克数,程序设置了五种不同单价的商品,由键盘输入0—4显示不同商品的单价,并显示总的价钱,显示三位数。

2.2课程设计的要求

1.利用现有的硬件电路,构成单片机称重检测,处理与显示系统。

2.编写程序,实现称量和计价显示的功能。

3.设计出原理图,说明工作原理,画出程序流程图。

 

第三章总体设计方案

3.1设计思想

实验需要设计一个系统可以对5种以上不同的商品进行键盘参数设置,称量,计价和显示。

可以把系统分为以下几个模块,分别进行编写程序,调试。

(1)8279可编程键盘,输入0—4时,通过比较键值,使程序跳到不同的子程序,在子程序中进行A/D采样,设定单价,经过数值转换与乘法程序,将重量和价钱转换成十进制数,调用显示程序。

执行完返回判断有无键按下。

(2)A/D采样部分,给A/D0通道输入一个0---5V的电压,将转换成0—FF输出,对应0—500G,把A/D采样值存入部寄存器51H中,经过数值转换成十进制数,调用LCD显示程序显示。

当质量大于500克时,转到报警程序。

(3)LCD液晶显示,分三个区分别显示单价,重量,价钱,并且都分为三位显示。

(4)实验中还需要用到双字节与单字节乘法及十六进制转十进制报警等子程序。

 

图3.1硬件系统结构图

 

第四章硬件设计

4.1硬件设计概要

本次设计主要用到的芯片有8088、ADC0809模数转换器、可编程键盘显示8279、LCD液晶显示共同完成这个课题。

A/D实现数据的采集和转换,可编程键盘显示8279实现键盘输入编号显示不同商品的单价,LCD液晶显示器显示单价,重量以及三位价钱。

8088实现各个芯片之间的连接。

4.2所用到的芯片及其各自功能说明

4.2.1芯片列表

AT89C528位单片机

ADC0809模数转换器

可编程键盘显示8279

LCD液晶器

4.2.2AT89C528位单片机

 AT89C52是一个低电压,高性能CMOS8位单片机,片含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可提供许多较复杂系统控制应用场合。

4.2.3ADC0809的功能简介

ADC0809是8位逐次逼近式单片A/D转换芯片,可对8路0~5V的输入模拟电压信号分时进行转换。

它部包括8路模拟开关,以及地址锁存译码器,有三条地址输入线。

该芯片还有便于和微机数据总线相连的三台输出锁存器。

ADC0809的部结构为:

ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存译码器、比较器、8位开关树型A/D转换器、逐次

逼近寄存器、三态输出锁存器等其他一些电路组成。

其部原理图如下:

 

 

图4.1

ADC0809芯片管脚功能如下:

 IN0~IN7:

8路模拟量输入通道。

      ADDA~ADDC:

地址线用于选择模拟量输入通道。

        ALE:

地址锁存允许信号。

 START:

转换启动信。

D0~D7:

数据输线 。

OE:

输出允许信号,低电平允许转换结果输出。

EOC:

A/D转换结束信号,当转换结束时,此端口输出一个高电平。

 CLOCK:

时钟信号输入引脚,通常使用500KHz。

 EOC:

转换结束信号,为0代表正在转换,1代表转换结束。

REF(-)、REF(+):

基准电压。

 Vcc:

+5V电压。

GND:

接地。

ADC0809的管脚图如下:

图4.2

4.2.4可编程键盘显示8279

8279是可编程的键盘,显示接口芯片.它既具有按键处理功能,又具有自动显示功能,在单片机系统中应用很广泛.8279部有键盘FIFO(先进先出堆栈)/传感器,双重功能的8*8=64BRAM,键盘控制部分可控制8*8=64个按键或8*8阵列方式的传感器.该芯片能自动消抖并具有双键锁定保护功能.

(1)数据线

DB0→DB7是双向三态数据总线,在接口电路中与系统数据总线相连,用以传送CPU和8279之间的数据和命令.

(2)地址线

/CS=0选中8279,当A0=1时,为命令字及状态字地址;当A0=0时,为片数据地址,故8279芯片占用2个端口地址.

(3)控制线

CLK:

8279的时钟输入线.

IRQ:

中断请求输出线,高电平有效.

/RD,/WR:

读,写输入控制线.

SL0---SL3:

扫描输出线,用来作为扫描键盘和显示的代码输出或直接输出线.

RL0---RL7:

回复输入线,它们是键盘或传感器矩阵的信号输入线.

SHIFT:

来自外部键盘或传感器矩阵的输入信号,它是8279键盘数据的次高位即D6位的

状态,该位状态控制键盘上/下档功能.在传感器方式和选通方式中,该引脚无用.

CNTL/S:

控制/选通输入线,高电平有效.键盘方式时,键盘数据最高位(D7)的信号输

入到该引脚,以扩充键功能;选通方式时,当该引脚信号上升沿到时,把RL0---RL7的数

据存入FIFORAM中.

OUTA0---OUTA3:

通常作为显示信号的高4位输出线.

OUTB0---OUTB3:

通常作为显示信号的低4位输出线.

/BD:

显示熄灭输出线,低电平有效.当/BD=0时将显示全熄灭.

图4.38279引脚及引线功能

4.2.5LCD液晶器

T6963C液晶显示控制器多用于中小规模的液晶显示器件,常被装配在图形液晶显示模块上,以藏控制器型图形液晶显示模块的形式出现。

一、T6963C的特点

(1)T6963C是点阵式液晶图形显示控制器,它能直接与80系列的8位微处理器接口;

(2)T6963C的字符字体可由硬件或软件设置,其字体有4种:

5×8、6×8、7×8、8×8;

(3)T6963C的占空比可从1/16到1/128;

(4)T6963C可以图形方式、文本方式及图形和文本合成方式进行显示,以及文本方式下的特征显示,还可以实现图形拷贝操作等等;

(5)T6963C具有部字符发生器CGROM,共有128个字符,T6963C可管理64K显示缓冲区及字符发生器CGRAM。

并允许MPU随时访问显示缓冲区,甚至可以进行位操作。

二、T6963C的引脚说明及其功能

T6963C的QFP封装共有67个引脚(见图三),各引脚说明如下:

(1)D0--D7:

T6963C与MPU接口的数据总线,三态;

(2)/RD,/WR:

读、写选通信号,低电平有效,输入信号;

(3)/CE:

T6963C的片选信号,低电平有效;

(4)C/D:

通道选择信号,1为指令通道,0为数据通道;

(5)/RESET,/HALT:

/RESET为低电平有效的复位信号,它将行、列计数器和显示寄存器清零,关显示;/HALT具有/RESET的基本功能,还将中止部时钟振荡器的工作;

以上引脚为T6963C与MPU接口的引脚。

图4.4T6963C管脚外形图

(6)DUAL,SDSEL:

DUAL=1为单屏结构,DUAL=0为双屏结构;

SDSEL=0为一位串行数据传输方式,SDSEL=1为二位并行数据传输方式;

(7)MD2,MD3:

设置显示窗口长度,从而确定了列数据传输个数的最大值,其组合逻辑关系如下:

表4.1

MD3

1

1

0

0

MD2

1

0

1

0

每行字符数

32

40

64

80

当DUAL=0时,以上设置中的字符行和总行数增至原来的2倍,其它都不变,这种情况下的液晶屏结构为双屏结构;

(9)FS1,FS0:

显示字符的字体选择

表4.2

FS1

1

1

0

0

FS0

1

0

1

0

字体

5×8

6×8

7×8

8×8

(10)XI,XO:

振荡时钟引脚;

(11)ad0-ad15:

输出信号,显示缓冲区16位地址总线;

(12)d0-d7:

三态,显示缓冲区8位数据总线;

(13)r/w:

输出,显示缓冲区读、写控制信号;

(14)/ce:

输出,显示缓冲区片选信号,低电平有效;

(15)/ce0,/ce1:

输出,DUAL=1时的存储器片选信号;

(16)T1,T2,CH,CH2:

用来检测T6963C工作使用情况,T1,T2作为测试信号输入端,CH,CH2作为输出端;

(17)HOD,HSCP,ED,LP,CDATA,FR为T6963C驱动部信号

连线

AD0809接线:

1.把A/D区0809的0通道IN0用插针接至W1的中心抽头V01插孔(0-5V)。

2.0809的CLK插孔与分频输出端T4相连。

3.把VREF端接到为+5V。

4.连好74LS02

5.将A/D区D0-D7用排线与BUS1区XD0-XD7相连。

扩展键盘接线:

1.将DVCC实验系统上J8插座与键盘显示板用扁平电缆相连。

2.将KEY区D0—D7用8芯排线连到BUS2区XD0—XD7上。

3.将KEY区WR、RD、ALE分别连到BUS3区XWR、XRD、ALE上。

4.KEY区A0连到BUS1区XA0上。

5.KEY区RST连到MP区SP上。

6.KEY区KCS连到SELET区的Y3上。

LCD液晶显示器连线:

1.液晶板C/D连主机XA0,液晶板/CS连主机Y0

2.液晶板D0---D7连主机XD0---XD7

3.液晶板/RESET连主机/RST,液晶板/WR连主机XWR,液晶板/RD连主机XRD

4.液晶板FS接地。

 

第五章软件设计

5.1流程图及其说明

图5.1主程序流程图

 

图5.2乘法及数值转换子程序

图5.3LCD液晶显示子程序

5.2源程序及其说明

ORG0000H

DAT1EQU30H;第一参数存放地址

DAT2EQU31H;第二参数存放地址/数据存放地址

COMEQU32H;指令代码存放地址

C_ADDEQU8001H;指令通道地址(片选Y1端口地址8000H开始)

D_ADDEQU8000H;数据通道地址

S_ADD_HEQU33H;LCD显示指针地址高位

S_ADD_LEQU34H;LCD显示指针地址低位

S_ADD_HFEQU35H;LCD显示指针地址高位备份

S_ADD_LFEQU36H;LCD显示指针地址低位备份

SEL_FONTEQU37H;LCD字体选者,16X16则为#16H,8X16则为#8H

WORD_NUMEQU38H;已经显示的字数

ATTREQU39H;字符属性码(低四位有效)

CODEDEQU40H;字符代码

CGR_NUMEQU41H;CGRAM显示程序显示的字数

HA7S:

MOVSP,#60H

MOVDPTR,#0B001H

MOVA,#00H

MOVXDPTR,A

MOVA,#32H

MOVXDPTR,A

MOVA,#0DFH

MOVXDPTR,A

HA7S1MOVXA,DPTR

JBACC.7,HA7S1

MOVDPTR,#0B000H

MOVA,#0C8H

MOVXDPTR,A

INCDPTR

MOVA,#80H

MOVXDPTR,A

HA7S2:

MOV42H,#80H

MOV43H,#40H

HA7S3:

MOVDPTR,#0B001H

MOVXA,DPTR

ANLA,#07H

CJNEA,#00H,HA7S4

AJMPHA7S3

HA7S4:

MOVDPTR,#0B000H

MOVXA,DPTR

MOVB,A

MOVR1,#00H

MOVDPTR,#KEYTAB

HA7S5:

MOVA,#00H

MOVCA,A+DPTR

CJNEA,B,HA7S6

AJMPHA7SA

HA7S6:

INCDPTR

INCR1

MOVA,R1

JNBACC.2,HA7S5

AJMPHA7S2

HA7SA:

CJNEA,#0C1H,L1

MOVA,42H

MOVDPTR,#0B001H

MOVXDPTR,A

MOVA,R1

MOVR0,43H

MOVR0,A

INC43H

MOVDPTR,#CDATA

MOVCA,A+DPTR

MOVDPTR,#0B000H

MOVXDPTR,A

LJMPLOOP0

L1:

CJNEA,#0C8H,L2

MOVA,42H

MOVDPTR,#0B001H

MOVXDPTR,A

MOVA,R1

MOVR0,43H

MOVR0,A

INC43H

MOVDPTR,#CDATA

MOVCA,A+DPTR

MOVDPTR,#0B000H

MOVXDPTR,A

LJMPLOOP1

L2:

CJNEA,#0C9H,L3

MOVA,42H

MOVDPTR,#0B001H

MOVXDPTR,A

MOVA,R1

MOVR0,43H

MOVR0,A

INC43H

MOVDPTR,#CDATA

MOVCA,A+DPTR

MOVDPTR,#0B000H

MOVXDPTR,A

LJMPLOOP2

L3:

CJNEA,#0D0H,L4

MOVA,42H

MOVDPTR,#0B001H

MOVXDPTR,A

MOVA,R1

MOVR0,43H

MOVR0,A

INC43H

MOVDPTR,#CDATA

MOVCA,A+DPTR

MOVDPTR,#0B000H

MOVXDPTR,A

LJMPLOOP3

L4:

CJNEA,#0D8H,L5

MOVA,42H

MOVDPTR,#0B001H

MOVXDPTR,A

MOVA,R1

MOVR0,43H

MOVR0,A

INC43H

MOVDPTR,#CDATA

MOVCA,A+DPTR

MOVDPTR,#0B000H

MOVXDPTR,A

LJMPLOOP4

L5:

LJMPHA7S

KEYTAB:

DB0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9H

DB0DAH,0C3H,0CBH,0D2H,0D3H,0DBH

CDATA:

DB0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38H

DB6CH,1AH,68H,0E8H

LOOP0:

MOVA,#00H

MOVDPTR,#9000H;A/D通道Y1

MOVXDPTR,A

MOVR7,#0FFH

H55S:

DJNZR7,H55S

MOVXA,DPTR

MOV51H,A

LCALLCOMP

LCALLDMUL

LCALLCONT2

LCALLMAIN

MOVR5,#0CH

PP0:

MOVR4,#12H

LCALLDDMUL

LCALLCONT0

LJMPMAIN;显示

LJMPXIAN1

LOOP1:

MOVA,#00H

MOVDPTR,#9000H;A/D通道Y1

MOVXDPTR,A

MOVR7,#0FFH

H55S1:

DJNZR7,H55S1

MOVXA,DPTR

MOV51H,A

LCALLCOMP

LCALLDMUL

LCALLCONT2

LCALLMAIN

MOVR5,#9FH

PP1:

MOVR4,#0FH

LCALLDDMUL

LCALLCONT0

LJMPMAIN

LJMPXIAN1

LOOP2:

MOVA,#00H

MOVDPTR,#9000H;A/D通道Y1

MOVXDPTR,A

MOVR7,#0FFH

H55S2:

DJNZR7,H55S2

MOVXA,DPTR

MOV51H,A

LCALLCOMP

LCALLDMUL

LCALLCONT2

LCALLMAIN

MOVR5,#4AH

PP2:

MOVR4,#0CH

LCALLDDMUL

LCALLCONT0

LJMPMAIN

LJMPXIAN1

LOOP3:

MOVA,#00H

MOVDPTR,#9000H;A/D通道Y1

MOVXDPTR,A

MOVR7,#0FFH

H55S3:

DJNZR7,H55S3

MOVXA,DPTR

MOV51H,A

LCALLCOMP

LCALLDMUL

LCALLCONT2

LCALLMAIN

MOVR5,#0BH

PP3:

MOVR4,#08H

LCALLDDMUL

LCALLCONT0

LJMPMAIN

LJMPXIAN1

LOOP4:

MOVA,#00H

MOVDPTR,#9000H;A/D通道Y1

MOVXDPTR,A

MOVR7,#0FFH

H55S4:

DJNZR7,H55S4

MOVXA,DPTR

MOV51H,A

LCALLCOMP

LCALLDMUL

LCALLCONT2

LCALLMAIN

MOVR5,#99H

PP4:

MOVR4,#05H

LCALLDDMUL

LCALLCONT0

LJMPMAIN

LJMPXIAN1

XIAN1:

MOVR6,#80H

DISPC1:

MOVA,r6

MOVDPTR,#0B001H

MOVXDPTR,A

MOVA,R5

MOVDPTR,#0B000H

MOVXDPTR,A

MOVR2,#20H

LCALLDELAY4

MOVA,#0FFH

MOVXDPTR,A;关显示

INCR6

LJMPha7s2

dELAY4:

PUSH02H

DELAY5:

PUSH02H

DELAY6:

PUSH02H

DELAY7:

DJNZR2,DELAY7

POP02H

DJNZR2,DELAY6

POP02H

DJNZR2,DELAY5

POP02H

DJNZR2,DELAY4

RET

 

;/////////////128X64液晶显示程序//////////////////

MAIN:

MOVSP,#60H

LCALLINT_LCD;液晶初始化

MOVWORD_NUM,#00H;实现字数清零

LCALLCLEAR;清屏

;-----------------------------显示方式一

;在第一区显示,128X64液晶显示模块可人为分为四个区,每个区大小为128X16

;区一显示完毕

;----------------------------显示方式二

;在区二显示,以单个字循环方式显示“测控技术实验室”,16X16字体,一般用于汉字显示

MOVS_ADD_H,#01H;设置第一个字的显示起始地址高位

MOVS_ADD_L,#01H;低位

MOVSEL_FONT,#16H;采用16X16字体

MOVDPTR,#TAB0;danjia

MOVR7,#02H;显示字的个数

ER:

LCALLSHOW_A_WORD

DJNZR7,ER

MOVS_ADD_H,#01H;设置第一个字的显示起始地址高位

MOVS_ADD_L,#06H;低位

MOVSEL_FONT,#08H;采用8X16字体

MOVDPTR,#TAB03;显示0

SSS2:

LCALLSHOW_A_WORD

 

MOVS_ADD_H,#01H;设置第一个字的显示起始地址高位

MOVS_ADD_L,#07H;低位

MOVSEL_FONT,#08H;采用8X16字体

MOVDPTR,#TAB3

SSS1:

LCALLSHOW_A_WORD;显示小数点

MOVS_ADD_H,#01H;设置第一个字的显示起始地址高位

MOVS_ADD_L,#08H;低位

MOVSEL_FONT,#08H;采用8X16字体

MOVA,4FH;显示的字从4F中读取

ANLA,#0F0H;取4F高位

SWAPA

ACALLBIAO

ER2:

LCALLSHOW_A_WORD;显示千位

MOVS_ADD_H,#01H;设置第一个字的显示起始地址高位

MOVS_ADD_L,#

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2