基于单片机的电子秤程序

合集下载

基于51单片机的电子秤程序

基于51单片机的电子秤程序

基于51单片机的电子秤程序#include#include//#include "LCD1602.h"//#include "HX711.h"#define uint unsigned int#define uchar unsigned charsbit LCD1602_RS = P2^5;sbit LCD1602_RW = P2^6;sbit LCD1602_EN = P2^7;sbit HX711_DOUT=P2^0;sbit HX711_SCK=P2^1;unsigned long HX711_Buffer = 0;unsigned long Weight_Maopi = 0,Weight_Shiwu = 0;char Price_Count = 0;uchar KEY_NUM = 0;uchar Price_Buffer[3] = {0x00,0x00,0x00};unsigned long Money = 0;bit Flag_OK = 0;uchar com;//延时函数//**************************************************** void Delay__hx711_us(void){_nop_();_nop_();}void LCD1602_delay_ms(unsigned int n){unsigned int i,j;for(i=0;i<n;i++)< p="">for(j=0;j<123;j++);}void Delay_ms(unsigned int n){unsigned int i,j;for(i=0;i<n;i++)< p="">for(j=0;j<123;j++);}//**************************************************** //写指令//**************************************************** void LCD1602_write_com( uchar com){LCD1602_RS = 0;LCD1602_delay_ms(1);LCD1602_EN = 1;P0 = com;LCD1602_delay_ms(1);LCD1602_EN = 0;}//****************************************************//写数据//****************************************************void LCD1602_write_data( uchar dat){LCD1602_RS = 1;LCD1602_delay_ms(1);P0 = dat;LCD1602_EN = 1;LCD1602_delay_ms(1);LCD1602_EN = 0;}//****************************************************//连续写字符//****************************************************void LCD1602_write_word(unsigned char *s){while(*s>0){LCD1602_write_data(*s);s++;}}void Init_LCD1602(){LCD1602_EN = 0;LCD1602_RW = 0; //设置为写状态LCD1602_write_com(0x38); //显示模式设定LCD1602_write_com(0x0c); //开关显示、光标有无设置、光标闪烁设置LCD1602_write_com(0x06); //写一个字符后指针加一LCD1602_write_com(0x01); //清屏指令}//**************************************************** //矩阵键盘扫描//**************************************************** unsigned char KEY_Scan(){unsigned char temp = 0;unsigned char com = 0x55 , com1 = 0 , com2 = 0;P3=0xf0;if(P3!=0xf0){com1=P3;P3=0x0f;com2=P3;}P3=0xf0;while(P3!=0xf0);temp=com1|com2;if(temp==0xee)com=1;//数字1if(temp==0xed)com=4;//数字4if(temp==0xeb)com=7;//数字7if(temp==0xe7)com=11;//备用键*号键if(temp==0xd7)com=0;//数字0if(temp==0xb7)com=14;//备用键*号键if(temp==0xde)com=2; //数字2if(temp==0xdd)com=5; //数字5if(temp==0xdb)com=8;//数字8if(temp==0xbe)com=3;//数字3if(temp==0xbd)com=6; //数字6if(temp==0xbb)com=9;//数字9if(temp==0x7e)com=16;//数字A键,去皮功能if(temp==0x7d)com=15;//数字B键清除键,二次测量if(temp==0x7b)com=12;//数字C输入单价错误时返回上一步if(temp==0x77)com=13;//数字D键,计算总价return(com);}unsigned long HX711_Read(void) //增益128{unsigned long count;unsigned char i;HX711_DOUT=1;Delay__hx711_us();HX711_SCK=0;count=0;while(HX711_DOUT);for(i=0;i<24;i++){HX711_SCK=1;count=count<<1;HX711_SCK=0;if(HX711_DOUT)count++;}HX711_SCK=1;count=count^0x800000;//第25个脉冲下降沿来时,转换数据Delay__hx711_us();HX711_SCK=0;return(count);}//****************************************************//称重//****************************************************void Get_Weight(){HX711_Buffer = HX711_Read();HX711_Buffer = HX711_Buffer/100;if(HX711_Buffer > Weight_Maopi){Weight_Shiwu = HX711_Buffer;Weight_Shiwu = Weight_Shiwu - Weight_Maopi; //获取实物的AD采样数值。

基于单片机的电子秤系统设计(附程序代码)

基于单片机的电子秤系统设计(附程序代码)

基于单片机的电子秤系统设计摘要电子秤是将检测与转换技术、计算机技术、信息处理、数字技术等技术综合一体的现代新型称重仪器。

它与我们日常生活紧密结合息息相关。

电子称主要以单片机作为中心控制单元,通过称重传感器进行模数转换单元,在配以键盘、显示电路及强大软件来组成。

电子称不但计量准确、快速方便,更重要的自动称重、数字显示,对人们生活的影响越来越大,广受欢迎。

本系统的设计主要从硬件电路设计,软件编程调试,实物焊接调试三部分进行详细阐述。

硬件电路主要是基于单片机AT89S52为核心的控制单元实现数据的处理,采用压力传感器对数据进行采集,电子秤专用24位AD转换芯片HX711对传感器采集到的模拟量进行AD转换,转换后的数据送到单片机进行处理显示,数据显示由LCD1602液晶实现,液晶显示效果稳定无闪烁关键词:AT89S52单片机;电子秤;压力传感器;HX711WIRELESS TEMPERATURE DETECTING SYSTEM DESINGBASED ON MCUABSTRACTWith Intelligent electronic scale is the detection and conversion technology, computer technology, information processing, digital technology, an integrated modern technology of new weighing equipment.Ectronic scale takes SCM as its central controling unit,and achieves AD transform through weighting transducer,then adds keybord,display circuit and powerful softerwear. It is not only accurate,swift,and convenient, but also makes an important effect to people’s life by its automatic weightment and digital display, so it becomes more and more popular.The design of this system gives its eleboration from 3 parts: Hardwear circuit design,softwear programme debugging and entity weld debugging.Hardwear circuit reaches data processing by the controling unit which based on AT89S52,and gathers data by weighting transducer,then makes AD transform by HX711 to the data gathered, and the transformed data then transferred to AT89S52 for display prosessing, at last LCD1602 would show it out steadily without twinklingKey Words: AT89S52 MCU,Electrnoic Scale,Load sensor,HX711.目录摘要 (I)ABSTRACT (II)目录.......................................................................................................................................................................... I II 第1章绪论. (1)1.1课题背景与研究意义 (1)1.2 系统设计要求 (2)1.3系统设计方案 (3)1.4电子秤的主要组成 (5)1.4.1 电子秤的基本结构 (5)1.4.2 电子秤的工作原理 (6)1.4.3 电子秤的计量性能 (7)第2章系统硬件设计 (8)2.1 流系统元器件选型及参数介绍 (8)2.1.1 系统单片机选型 (8)2.1.2 系统传感器选型 (10)2.1.3 系统AD转换芯片选择 (13)2.1.4系统显示器选择 (14)2.1.5系统时钟芯片选择 (16)2.2 系统硬件电路设计 (17)2.2.1系统电源电路设计 (17)2.2.2系统单片机主控电路设计 (18)2.2.3系统显示部分电路设计 (20)2.2.4系统超重报警指示电路设计 (21)2.2.5系统按键输入电路设计 (21)2.3系统硬件电路的绘制与PCB线路板制作 (23)2.3.1 Protell 99 SE软件介绍 (23)2.3.2 系统原理图绘制与PCB印刷线路板制作 (23)第3章系统软件设计 (27)3.1 系统软件编程环境介绍 (27)3.2系统主程序流程图 (27)3.3系统显示部分流程图 (28)3.4系统按键调整部分流程图 (29)第四章系统的制作、安装与调试 (30)4.1电路的绘制与PCB板的制作 (30)4.2 系统的调试 (31)第五章总结与体会 (32)5.1 总结 (32)5.2 体会 (33)参考文献 (34)致谢 (35)第1章绪论1.1课题背景与研究意义电子秤作为一种计量手段,广泛应用于工农业、科研、交通、内外贸易等各个领域,与人民的生活紧密相连。

基于单片机的实用电子秤设计

基于单片机的实用电子秤设计

基于单片机的实用电子秤设计一、硬件设计1、传感器选择电子秤的核心部件之一是称重传感器。

常见的称重传感器有电阻应变式、电容式等。

在本设计中,我们选用电阻应变式传感器,其原理是当物体的重量作用在传感器上时,传感器内部的电阻应变片会发生形变,从而导致电阻值的变化。

通过测量电阻值的变化,就可以计算出物体的重量。

2、信号放大与调理传感器输出的信号通常比较微弱,需要经过放大和调理才能被单片机处理。

我们使用高精度的仪表放大器对传感器输出的信号进行放大,并通过滤波电路去除噪声干扰,以提高测量的准确性。

3、单片机选型单片机是整个电子秤系统的控制核心。

考虑到性能、成本和开发难度等因素,我们选用 STM32 系列单片机。

STM32 系列单片机具有丰富的外设资源、较高的运算速度和良好的稳定性,能够满足电子秤的设计需求。

4、显示模块为了直观地显示测量结果,我们选用液晶显示屏(LCD)作为显示模块。

LCD 显示屏具有功耗低、显示清晰、视角广等优点。

通过单片机的控制,可以在 LCD 显示屏上实时显示物体的重量、单位等信息。

5、按键模块为了实现电子秤的功能设置,如单位切换、去皮、清零等,我们设计了按键模块。

按键模块通过与单片机的连接,将用户的操作指令传递给单片机进行处理。

6、电源模块电源模块为整个电子秤系统提供稳定的电源。

我们使用线性稳压器将输入的电源电压转换为适合各个模块工作的电压,以确保系统的正常运行。

二、软件算法1、重量计算算法根据传感器的特性和放大调理电路的参数,我们可以建立重量与传感器输出信号之间的数学模型。

通过对传感器输出信号的采集和处理,利用数学模型计算出物体的实际重量。

2、滤波算法为了消除测量过程中的噪声干扰,提高测量的稳定性和准确性,我们采用数字滤波算法对采集到的信号进行处理。

常见的数字滤波算法有中值滤波、均值滤波等。

在本设计中,我们选用中值滤波算法,其原理是对连续采集的若干个数据进行排序,取中间值作为滤波后的结果。

基于单片机的智能电子秤设计

基于单片机的智能电子秤设计

基于单片机的智能电子秤设计随着科技的不断发展,智能化和自动化已经成为我们生活中不可或缺的一部分。

在众多领域中,智能电子秤的设计与应用也越来越受到。

本文将介绍一种基于单片机的智能电子秤设计方案,该设计具有高精度、低成本、易于实现等优点,具有一定的实用价值。

一、概述智能电子秤是一种能够自动测量物体重量的设备,广泛应用于超市、菜市场等场所。

与传统的机械秤相比,智能电子秤具有测量精度高、使用方便、易于维护等优点。

而基于单片机的智能电子秤设计,更是将智能化和自动化技术融入到电子秤中,提高了设备的性能和可靠性。

二、设计原理基于单片机的智能电子秤设计主要是利用单片机的控制和数据处理能力,实现对物体重量的准确测量。

其核心部件为压力传感器和单片机。

压力传感器负责采集物体的重量信号,并将信号传输给单片机;单片机则对信号进行处理、分析和存储,同时控制显示屏显示物体的重量。

三、硬件设计1、单片机选择单片机是智能电子秤的核心部件,负责控制整个系统的运行。

本设计选用AT89C51单片机,该单片机具有低功耗、高性能、易于编程等优点,能够满足智能电子秤的设计要求。

2、压力传感器选择压力传感器是智能电子秤的重要组成部件,负责采集物体的重量信号。

本设计选用电阻应变式压力传感器,该传感器具有测量精度高、稳定性好、抗干扰能力强等优点。

3、显示模块选择显示模块负责将物体的重量信息呈现给用户。

本设计选用LED显示屏,该显示屏具有亮度高、视角广、寿命长等优点。

4、电源模块选择电源模块为整个系统提供稳定的电源,保证系统的正常运行。

本设计选用线性稳压电源,该电源具有输出电压稳定、纹波小、安全性高等优点。

四、软件设计软件设计是智能电子秤的关键部分之一,直接影响设备的性能和可靠性。

本设计的软件部分采用C语言编写,主要包括数据采集、数据处理、数据显示等模块。

具体流程如下:1、开机后,系统进行初始化操作;2、压力传感器采集物体的重量信号;3、单片机对采集到的信号进行处理和分析;4、单片机将处理后的数据存储到存储器中;5、单片机控制LED显示屏显示物体的重量信息;6、系统继续等待下一次测量。

基于单片机的电子秤的方案设计

基于单片机的电子秤的方案设计
基于单片机的电子秤的方案设 计
目录
01 一、引言
03 三、硬件设计
02 二、总体设计 04 四、软件设计
目录
05 五、调试与优化
07 参考内容
06 六、应用前景
一、引言
随着科技的不断发展,智能化和数字化逐渐成为测量与控制领域的主流趋势。 其中,电子秤作为一种高精度的测量设备,在贸易结算、工业生产等领域具有广 泛的应用。基于单片机的电子秤因其具有体积小、成本低、易于集成等优点,越 来越受到人们的。本次演示将介绍一种基于单片机的电子秤设计方案,以期为相 关领域的工程技术人员提供参考。
4、数据显示:将重量数据显示 在显示模块上。
5、报警提示:如遇超重或欠重 情况,系统会进行报警提示。
6、数据存储:可预留数据存储接口,方便用户对重量数据进行存储或传输。
五、总结
本次演示介绍了基于51单片机的电子秤设计,通过利用电阻应变式传感器进 行重量检测,经过51单片机处理后将重量数据显示出来。这种设计具有精度高、 稳定性好、使用方便等优点,可广泛应用于各种场合的重量检测。随着技术的不 断发展,我们有理由相信,以51单片机为核心的电子秤设计将会有更广阔的应用 前景。
3、采用软件滤波算法,减少外界干扰对测量精度的影响;
4、对程序进行优化,提高数据 处理速度和准确性。
经过调试与优化后,电子秤的性能得到了显著提升,测量精度得到了提高。
六、应用前景
基于单片机的电子秤具有广泛的应用前景。在实际应用中,该电子秤可应用 于贸易结算、工业生产、食品药品等行业。同时,由于其体积小、成本低等优点, 可以方便地集成到各种称重系统中。
Байду номын сангаас
二、电子秤的工作原理
电子秤是利用传感器测量物体的重量,并将重量转换为电信号,再通过信号 处理电路进行处理,最终以数字形式显示出来。51单片机作为一种通用的微控制 器,可以方便地对电子秤进行控制和数据处理。

基于单片机设计的数字电子秤系统

基于单片机设计的数字电子秤系统

基于单⽚机设计的数字电⼦秤系统1.将程序下载进去后,第⼀⾏显⽰RMB/kg:(计价数据)第⼆⾏显⽰m:(重量)K P:(价格)¥2.仿真图是利⽤四个电位器模拟称重传感器的四个电阻应变式电阻,通过调节这四个电位器的⼤⼩可以测量物体的重量,但是程序有个漏洞就是调节电位器的⼤⼩不能及时的反应物体的重量,需要按下ENTER键才能检测物体的重量,此程序还待优化3.通过按键可以设定物品的计价,程序中设计的每千克多少钱,程序只⽀持设定整数价格(⼩数价格朋友可以⾃⼰适当修改下即可),当设定好价格后按下ENTER键即可显⽰物品的重量及价格,如果还要设定其他的价格,则需要按下CLEAR清除按键再设定即可。

4.此电⼦秤最⼤称重为5KG,计价总和最⼤为999.99。

5.此设计还可以添加语⾳录放模块,实现智能化报价6.电⼦秤LCD上显⽰的重量值是电阻应变器电桥的对边电压,这样⼀来我们可以利⽤这个电压值反应称重的重量#include<reg52.h>typedef unsigned char uint8;typedef unsigned int uint16;sbit rs=P2^6;sbit rw=P2^5;sbit e=P2^7;sbit scl=P2^1;sbit sda=P2^0;uint8 num[]="0123456789";uint8 d1[]="RMB/kg: ";uint16 ad[5],m[5];uint8 kn=10;uint8 keynum[3];uint16 pric=0;void delay(uint16 i){while(i--);}void wrc(uint8 c){delay(1000);rs=0;rw=0;e=0;P0=c;e=1;。

基于单片机的智能电子秤系统

基于单片机的智能电子秤系统

基于单片机的智能电子秤系统基于单片机的智能电子秤系统主要由以下几个部分组成:1. 传感器:用于检测物体的重量,常用的传感器有压力传感器、负荷传感器等。

传感器将物体的重量转化为电信号。

2. 单片机:作为系统的核心控制器,负责接收传感器传来的电信号,并进行信号处理和计算。

常用的单片机有51系列、AVR系列、ARM系列等。

3. 液晶显示屏:用于显示物体的重量。

可以选择合适的液晶显示屏,如字符型液晶显示屏或者图形型液晶显示屏。

4. 按键:用于用户输入,例如用于切换不同的功能模式或者进行校准操作。

5. 蜂鸣器:用于发出声音提示,例如在称重完成时发出"嘀"的声音。

6. 存储器:用于存储系统的参数、校准数据等。

7. 电源:为系统提供电力供应,可以选择使用电池供电或者外部电源供电。

基于单片机的智能电子秤系统的工作流程如下:1. 初始化:系统启动时,进行各个模块的初始化设置,包括传感器的校准、显示屏的初始化、按键的设置等。

2. 读取传感器数据:单片机通过模拟或者数字输入口读取传感器的电信号,将其转化为数字信号。

3. 信号处理和计算:单片机对读取到的传感器数据进行处理和计算,得到物体的重量值。

可以根据需要进行一些算法处理,例如滤波、去零漂等。

4. 显示结果:将计算得到的重量值通过液晶显示屏显示出来,可以选择显示单位、小数点位数等。

5. 用户操作:用户可以通过按键进行一些操作,例如切换不同的功能模式、进行校准操作等。

6. 发出提示:在称重完成时,可以通过蜂鸣器发出声音提示,提醒用户。

7. 存储数据:系统可以将一些参数、校准数据等保存在存储器中,以便下次启动时使用。

8. 关机:系统可以提供关机功能,关闭各个模块的电源,以节省能量。

总之,基于单片机的智能电子秤系统通过传感器检测物体的重量,单片机进行信号处理和计算,将结果通过液晶显示屏显示出来,用户可以通过按键进行操作。

系统具有简单、实用、可靠的特点,广泛应用于各个领域的称重需求。

基于单片机的智能电子秤控制系统的设计

基于单片机的智能电子秤控制系统的设计

基于单片机的智能电子秤控制系统的设计智能电子秤控制系统是一种集成数字电子技术、传感技术、自动控制技术于一体的高精度、高可靠性的电子秤系统。

本文将介绍基于单片机的智能电子秤控制系统的设计原理及实现方法。

一、系统设计原理基于单片机的智能电子秤控制系统主要由称重传感器、AD转换模块、单片机、LCD显示模块和通信接口模块等组成。

其工作原理如下:1. 称重传感器智能电子秤的核心部件是称重传感器,用于将物体的重量转换为电信号。

常用的称重传感器有应变式、电阻式、电容式等。

它们能够根据物体的质量变化而改变输出电信号,作为下一步处理的输入信号。

2. AD转换模块AD转换模块用于将模拟信号转换为数字信号,通过单片机进行处理。

通过AD转换模块,可以将称重传感器输出的模拟信号转换为单片机可以理解的数据,为后续的数据处理提供基础。

3. 单片机单片机是整个智能控制系统的核心,负责接收AD转换模块的信号,并进行数据处理,并通过LCD显示模块将结果实时显示出来。

同时,单片机还可以通过通信模块与其他设备进行数据交互。

4. LCD显示模块LCD显示模块用于将称重结果以数字形式显示出来,提供直观的测量结果给用户。

5. 通信接口模块通信接口模块允许智能电子秤与其他设备进行数据交互,如与计算机进行连接,实现数据的上传和下载。

二、系统设计方法基于单片机的智能电子秤控制系统的设计可以按照以下步骤进行:1. 硬件设计根据系统的功能需求,选择适当的称重传感器和AD转换模块,并通过电路设计将其与单片机和LCD显示模块进行连接。

此外,根据实际需求选择合适的通信接口模块。

2. 软件设计编写单片机的控制程序,包括AD转换的初始化和读取、数据处理、LCD显示等功能。

根据实际需求,可以添加一些额外的功能,如单位选择、重量校准等。

3. 系统测试将硬件和软件进行组装后,进行系统测试。

通过放置不同重量的物体进行秤量,检查显示结果的准确性和稳定性。

同时,测试通信功能是否正常工作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

A_8255 EQU 7C00H
B_8255 EQU 7D00H
C_8255 EQU 7E00H
CON_8255 EQU 7F00H;8255端口定义
ADC_0808 EQU 8000H;ADC0809地址ZHONGLIANG EQU 15H;重量存放地址
DANJIA EQU 16H;单价存放地址
EOC EQU P3.3
W8 EQU 0FEH
W7 EQU 0FDH
W6 EQU 0FBH
W5 EQU 0F7H
W4 EQU 0EFH
W3 EQU 0DFH
W2 EQU 0BFH
W1 EQU 07FH;定义LED位码
;;;;;;;;;主程序;;;;;;;;;;
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP EINT0S
ORG 0100H
MAIN: MOV P1,#0F0H
SETB TCON.0; 外部中断为下降沿触发
MOV IE,#81H; 外部中断开中断
MOV DPTR,#CON_8255
MOV A,#80H;状态字
MOVX @DPTR,A;8255初始化
LOOP: PUSH DPH
PUSH DPL
PUSH ACC
MOV DPTR,#ADC_0808
MOV A,#00H
MOVX @DPTR,A;启动0808,A无实际意义
ADLP1:JNB EOC,ADLP1
ADLP2:JB EOC,ADLP2
MOVX A,@DPTR;读
MOV ZHONGLIANG,A
POP ACC
POP DPL
POP DPH
MOV A,ZHONGLIANG
LCALL XIANSHI1;调用显示程序
MOV A,DANJIA
LCALL XIANSHI2
MOV A,ZHONGLIANG
MOV B,DANJIA
MUL AB;算出总价
LCALL XIANSHI3;只显示低八位
SJMP LOOP
;;;;;;;;;;;;;;;键盘子程序;;;;;;;;;
EINT0S:
LCALL KEY ;调用键盘扫描程序
KEY: CLR EA ;中断总禁止
PUSH PSW ;PSW入栈
LCALL DELAY ;调用延时程序去抖动
LCALL KS ;调用检测按键子程序
JNZ SAOMIAO ;若有按键则跳转至扫描
LJMP INT0R
SAOMIAO:
ACALL K1 ;调用键盘扫描程序
INC A
MOVC A,@A+PC ;查表后将值送入累加器
MOV DANJIA,A ;在P0口显示键盘值
K1: ;键盘扫描子程序
MOV R2,#0EFH ;将扫描值送入R2暂存
MOV R4,#00H ;R4用于存放行值,并将00H暂存
K3: MOV P1,R2 ;将R2的值送入P1口
L6: JB P1.0,L1 ;P1.0等于1跳转到L1
MOV A,#00H ;将第一列的列值00H送入ACC
AJMP LK ;跳转到键值理程序进行键值处理L1: JB P1.1,L2
MOV A,#03H
AJMP LK
L2: JB P1.2,L3
MOV A,#06H
AJMP LK ;跳转到键值处理程序
L3: JB P1.3,NEXT
MOV A,#09H;
LK: ADD A,R4 ;行值和列值等于键值
PUSH ACC; ;A入栈
K4: LCALL DELAY ;调用延时程序,去抖动
LCALL KS
JNZ K4 ;按键没有松开继续返回检测
POP ACC ;A出栈
RET
NEXT:
INC R4 ;将行值加一
MOV A,R2;
JNB ACC.6,INT0R ;未扫描出键值退出中断
RL A ;扫描未完成将A中的值右移一位进行下一列的扫描
MOV R2,A ;将ACC的值送入R2暂存
AJMP K3 ;检测下一行
KS: ;按键检测程序
MOV P1,#0FH ;将P1口高四位置0低四位值1
MOV A,P1 ;读P1口
XRL A,#0FH ;将A中的值与0FH相异或
RET
DELAY:; 10ms延时去抖动子程序2*FA*2=10ms MOV R5,#02H
L7: MOV R6,#0FAH
L8: DJNZ R6,L8
DJNZ R5,L7
RET
INT0R: POP PSW
MOV P1,#0F0H
SETB T CON.0
MOV IE,#81H
RETI
;;;;;;;;;显示子程序1;;;;;;;;;
XIANSHI1: MOV B,#100
DIV AB
LCALL AA1;取段码
MOV DPTR,#B_8255 MOVX @DPTR,A;送段码
MOV DPTR,#A_8255
MOV A,#W8
MOVX @DPTR,A;送位码
LCALL DLY1
;十位数
MOV A,B
MOV B,#10
DIV AB
LCALL AA1;取段码
MOV DPTR,#B_8255 MOVX @DPTR,A;送段码
MOV DPTR,#A_8255
MOV A,#W7
MOVX @DPTR,A;送位码
LCALL DLY1
;个位
MOV A,B
LCALL AA1;取段码
MOV DPTR,#B_8255 MOVX @DPTR,A;送段码
MOV DPTR,#A_8255
MOV A,#W6
MOVX @DPTR,A;送位码
LCALL DLY1
RET
AA1: INC A
MOVC A,@A+PC
RET
DB 03FH,06H,05BH,04FH,66H,06DH DB 07DH,07H,07FH,06FH,77H,07CH DLY1: MOV R7,#18
D11: MOV R6,#210
DJNZ R6,$
DJNZ R7,D11
RET
;;;;;;;;;显示子程序2;;;;;;;;;
XIANSHI2:
LCALL AA2;取段码
MOV DPTR,#B_8255 MOVX @DPTR,A;送段码
MOV DPTR,#A_8255
MOV A,#W4
MOVX @DPTR,A;送位码
LCALL DLY2
RET
AA2: INC A
MOVC A,@A+PC
RET
DB 03FH,06H,05BH,04FH,66H,06DH DB 07DH,07H,07FH,06FH,77H,07CH DLY2: MOV R7,#28
D12: MOV R6,#160
DJNZ R6,$
DJNZ R7,D12
RET
;;;;;;;;;显示子程序3;;;;;;;;; XIANSHI3: MOV B,#100
DIV AB
LCALL AA3;取段码
MOV DPTR,#B_8255 MOVX @DPTR,A;送段码
MOV DPTR,#A_8255
MOV A,#W3
MOVX @DPTR,A;送位码
LCALL DLY3
;十位数
MOV A,B
MOV B,#10
DIV AB
LCALL AA3;取段码
MOV DPTR,#B_8255 MOVX @DPTR,A;送段码
MOV DPTR,#A_8255
MOV A,#W2
MOVX @DPTR,A;送位码
LCALL DLY3
;个位
MOV A,B
LCALL AA3;取段码
MOV DPTR,#B_8255 MOVX @DPTR,A;送段码
MOV DPTR,#A_8255
MOV A,#W1
MOVX @DPTR,A;送位码
LCALL DLY3
RET
AA3: INC A
MOVC A,@A+PC
RET
DB 03FH,06H,05BH,04FH,66H,06DH DB 07DH,07H,07FH,06FH,77H,07CH DLY3: MOV R7,#18
D13: MOV R6,#210
DJNZ R6,$
DJNZ R7,D13
RET
END。

相关文档
最新文档