微机原理实验简易计算器

合集下载

微机原理课件设计简易计算器

微机原理课件设计简易计算器

$二○一一~二○一二学年第一学期信息科学与工程学院自动化系:课程设计计划书课程名称:微机原理及应用课程设计班级:自动化 0901姓名:王立学号: 4032 ]指导教师:孟志华二○一一年十二月六日一、课题名称简易计算器设计二、课题目的利用8088和8255设计一个简易计算器,并将其结果显示在LED数码管上。

熟悉系统设计的基本步骤,掌握8088与8255的接口设计,掌握通过8255设计键盘扫描技术,掌握通过8255显示七段共阴极数码管设计。

加强对8088数据总线,地址总线及接口寻址的理解,加深对8255的端口控制的理解。

!三、需求分析(1)能够实现99以内的加减乘法运算,并显示在2位LED上。

(2)对于减法运算产生的负数,可在LED上显示“-”号,若负量超过9,则显示“E0”。

四、方案选择方案一:、该方案将LED显示电路直接接在8088的DB上,而键盘则采用8255进行扫描。

(方案二:该方案则是将LED 显示电路和键盘扫描电路分别接在两个不同的8255上,扫描和显示时,选中不同的8255。

方案三:)该方案则只用一片8255驱动LED 显示和键盘扫描电路。

方案评估:方案一:LED 显示驱动电路实现起来较简单,但是很浪费系统总线资源,舍弃!方案二:释放了系统数据总线,但是方案缺乏经济性,因为采用了两片8255,与建设资源节约型社会初衷冲突!舍弃!方案三:此种方案较为经济,方便,具有模块化的特点(因为将计算和显示电路全部集成在了8255上,应用时,直接挂接8255即可实现要求!)&综上所述:采用方案三!五、程序流程图程序总流程图:…判断输入流程图:六、系统原理图键盘映射图:-注:1、复位电路单独画在旁边,其参数设置符合6MHZ。

2、74HC04反相器由于位置不够,本人自己画了一个小型的74HC04。

3、IOW,IOR信号线由于采用了最大系统组态,故由8288的IORC和AIOWC代替。

4、8088的CLK由8284A提供,其电路连接方式参照Datasheet5、最大系统组态连接方式参照课本。

简单计算器实验报告

简单计算器实验报告

简单计算器实验报告简单计算器实验报告引言:在现代社会,计算器已经成为人们生活中不可或缺的工具之一。

无论是在学校、办公室还是家庭,计算器都扮演着重要的角色。

本实验旨在设计和构建一个简单的计算器,并通过实验验证其功能和准确性。

实验步骤:1. 设计计算器的外观和功能:我们首先对计算器进行了外观设计,选择了简洁、易于使用的界面。

然后确定了计算器的基本功能,包括加法、减法、乘法和除法。

2. 选择合适的硬件和软件:为了构建计算器,我们选择了合适的硬件和软件。

硬件方面,我们选用了一块Arduino开发板、液晶显示屏和按键。

软件方面,我们使用了Arduino编程语言。

3. 连接硬件和编写代码:我们将液晶显示屏和按键与Arduino开发板连接起来,并编写了相应的代码。

代码中包括了计算器的逻辑运算和界面显示。

4. 测试计算器的功能和准确性:在完成硬件连接和代码编写后,我们对计算器进行了测试。

我们输入了一系列的算术表达式,包括简单的加减乘除运算,以及复杂的多步运算。

通过与手动计算的结果进行对比,我们验证了计算器的功能和准确性。

实验结果:经过多次测试,我们的计算器表现出了良好的功能和准确性。

无论是简单的加法还是复杂的多步运算,计算器都能够正确地给出结果。

液晶显示屏清晰地显示了算术表达式和计算结果,而按键的响应速度也非常迅速。

讨论:虽然我们的计算器在功能和准确性方面表现出色,但仍有一些改进的空间。

首先,我们可以增加更多的功能,如开方、求余等。

其次,我们可以改进界面设计,使其更加美观和易于使用。

此外,我们还可以考虑加入更强大的处理器和更大的内存,以提高计算器的性能。

结论:通过本次实验,我们成功设计和构建了一个简单的计算器,并验证了其功能和准确性。

计算器在各种算术运算中表现出色,并且具有清晰的界面和快速的响应速度。

然而,我们也意识到计算器仍有改进的空间,包括增加更多功能和改进界面设计。

总的来说,本次实验为我们深入了解计算器的原理和构造提供了宝贵的经验。

简易计算器实验报告

简易计算器实验报告

简易计算器实验报告简易计算器实验报告引言:计算器是我们日常生活中常用的工具之一。

它可以帮助我们进行简单的数学运算,提高计算的效率。

在本次实验中,我们将设计并制作一台简易计算器,通过实践来掌握计算器的原理和工作原理。

实验目的:1. 了解计算器的基本原理和工作原理;2. 掌握计算器的设计和制作方法;3. 提高动手能力和创造力。

实验材料:1. 电路板;2. 按键;3. LED显示屏;4. 电容;5. 电阻;6. 电源。

实验步骤:1. 连接电路板和电源,确保电路板能够正常工作;2. 将按键连接到电路板上,用于输入数字和运算符;3. 连接LED显示屏,用于显示计算结果;4. 添加电容和电阻,用于控制电路的稳定性和电流;5. 调试电路,确保计算器能够正确运行。

实验结果:经过一番调试,我们成功制作出了一台简易计算器。

它可以进行基本的加减乘除运算,并且在LED显示屏上显示结果。

通过按键输入数字和运算符,我们可以进行各种运算,从而得到我们想要的结果。

这台计算器虽然简单,但是它的实用性和便携性都非常高。

实验分析:在本次实验中,我们主要学习了计算器的基本原理和工作原理。

计算器是通过按键输入数字和运算符,然后经过电路的计算和控制,最终在显示屏上显示结果。

在电路中,电容和电阻的作用是为了保证电路的稳定性和电流的控制。

通过这个实验,我们更加深入地了解了计算器的内部结构和工作原理。

实验总结:通过本次实验,我们成功制作了一台简易计算器,并且对计算器的原理和工作原理有了更深入的了解。

实验过程中,我们不仅提高了动手能力和创造力,还培养了解决问题的能力。

计算器作为一种常见的工具,它的设计和制作过程并不复杂,但是它的实用性和便携性却非常高,为我们的生活带来了很大的便利。

未来展望:通过这次实验,我们对计算器的原理和工作原理有了初步的了解。

在未来,我们可以进一步深入研究计算器的更高级功能和更复杂的电路设计。

同时,我们也可以将这种简易计算器的设计思想应用到其他领域,如电子设备、机器人等,从而提高我们的创造力和创新能力。

简单计算器实验报告

简单计算器实验报告

简单计算器实验报告
《简单计算器实验报告》
实验目的:通过使用简单计算器进行数学运算,探究其在日常生活中的实际应用价值。

实验材料:简单计算器、纸笔
实验步骤:
1. 使用简单计算器进行加法、减法、乘法和除法运算,记录运算过程和结果。

2. 尝试使用计算器进行复杂运算,如求平方根、求倒数等。

3. 计算器的功能和使用方法的讨论。

实验结果:
通过实验,我们发现简单计算器在日常生活中有着非常重要的应用价值。

它可以帮助我们快速准确地进行数学运算,节省时间和精力。

同时,计算器还具有一些高级的功能,如求平方根、求倒数等,这些功能在科学计算和工程计算中也具有很大的作用。

结论:
简单计算器是我们日常生活中必不可少的工具之一,它的实际应用价值是非常高的。

通过这次实验,我们更加深入地了解了计算器的功能和使用方法,对于我们的学习和工作都有着重要的帮助。

通过这次实验,我们不仅对计算器有了更深入的了解,也增加了对数学运算的兴趣,希望我们在日常生活中能够更加灵活地运用计算器,提高我们的数学运算能力。

微机原理课件设计简易计算器

微机原理课件设计简易计算器

微机原理课件设计简易计算器(总14页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--二○一一~二○一二学年第一学期信息科学与工程学院自动化系课程设计计划书课程名称:微机原理及应用课程设计班级:自动化 0901 姓名:王立学号: 4032指导教师:孟志华二○一一年十二月六日2一、课题名称简易计算器设计二、课题目的利用8088和8255设计一个简易计算器,并将其结果显示在LED数码管上。

熟悉系统设计的基本步骤,掌握8088与8255的接口设计,掌握通过8255设计键盘扫描技术,掌握通过8255显示七段共阴极数码管设计。

加强对8088数据总线,地址总线及接口寻址的理解,加深对8255的端口控制的理解。

三、需求分析(1)能够实现99以内的加减乘法运算,并显示在2位LED上。

(2)对于减法运算产生的负数,可在LED上显示“-”号,若负量超过9,则显示“E0”。

四、方案选择方案一:该方案将LED显示电路直接接在8088的DB上,而键盘则采用8255进行扫描。

3方案二:该方案则是将LED显示电路和键盘扫描电路分别接在两个不同的8255上,扫描和显示时,选中不同的8255。

方案三:该方案则只用一片8255驱动LED显示和键盘扫描电路。

方案评估:方案一:LED显示驱动电路实现起来较简单,但是很浪费系统总线资源,舍弃!方案二:释放了系统数据总线,但是方案缺乏经济性,因为采用了两片8255,与建设资源节约型社会初衷冲突!舍弃!方案三:此种方案较为经济,方便,具有模块化的特点(因为将计算和显示电路全部集成在了8255上,应用时,直接挂接8255即可实现要求!)综上所述:采用方案三!4五、程序流程图程序总流程图:5判断输入流程图:6六、系统原理图7注:1、复位电路单独画在旁边,其参数设置符合6MHZ。

2、74HC04反相器由于位置不够,本人自己画了一个小型的74HC04。

3、IOW,IOR信号线由于采用了最大系统组态,故由8288的IORC和AIOWC代替。

汇编语言课程设计--简单计算器设计

汇编语言课程设计--简单计算器设计

《微机原理与应用》课程设计实验题目:简单计算器设计年级:2010级专业:电子信息工程组员:梁玮堃 21005108田少飞 21005116刘明 21005127陈晓琳 21005145指导教师:邓亚玲2013年01月组员分工组长梁玮堃:报告设计。

具体负责对设计报告版面设计、修改,流程图的设计,调试程序和应用程序的设计。

组员田少飞:程序调试。

负责计算器具体程序设计,编写主程序。

刘明:程序修改。

对已调程序进行修改,并设计相关功能程序。

陈晓琳:查阅资料。

通过上网或在图书馆查阅有关汇编语言及计算器设计资料。

目录1设计目的 (1)2概要设计 (2)2.1系统总体分析 (2)2.2程序流程图及说明 (3)3详细设计 (5)3.1主模块及子模块说明 (5)3.2各模块详细设计 (10)4程序调试 (13)4.1调试过程及分析 (13)4.2运行界面分析 (13)5心得体会 (17)5.1设计体会 (17)5.2系统改进 (17)参考文献 (18)1设计目的汇编语言是计算机能够提供给用户使用的最快而又最有效的语言。

同时,汇编语言也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。

因而,对程序的空间和时间要求很高的场合,汇编语言的应用是必不可少的。

至于很多需要直接控制硬件的应用场合,则更是非用汇编语言不可。

由于汇编语言如此地接近计算机硬件,因此,它可以最大限度地发挥计算机硬件的性能。

用汇编语言编写的程序速度通常要比高级语言快几倍、几十倍、甚至成百上千倍,解释语言其程序速度更无法与汇编语言程序同日而语。

本次课程设计的题目是用汇编语言实现一个简单的计算器,要求:编写一个程序,每运行一次可执行程序,可以实现加减乘除四则运算。

计算器是最简单的计算工具,简单计算器具有加、减、乘、除四项运算功能。

通过使用汇编语言设计实现简单计算器,以此进一步了解和掌握对数据存储,寄存器的使用,加减乘除相关指令以及模块的调用等汇编语言知识的有效运用。

单片机实践简易计算器实验报告

单片机实践简易计算器实验报告

零基础DIY单片机简易计算器实践
单片机是一种很有趣的微处理器,它广泛应用于电子产品中。

学习单片机可以帮助我们更深入理解计算机原理和底层运作。

本实验将介绍如何使用单片机来制作一个简易计算器。

所需材料:
1. 单片机开发板
2. 4位7段显示器
3. 数字按键开关
4. 杜邦线
5. 电位器
6. 板子外壳
步骤1:连接电路
将数码管和数字按键开关与单片机开发板连接。

使用杜邦线将每个组件的引脚连接到开发板的相应引脚。

电位器可用于调节数码管显示的亮度。

步骤2:编写程序
使用C语言编写程序。

程序需要识别按键输入的数字和运算符,
并根据不同的情况显示计算结果。

程序中需要使用条件语句、循环语
句和函数等基本语言结构。

步骤3:测试程序
将编写好的程序上传到单片机开发板中。

测试程序的过程中要注
意按键输入的顺序和正确性。

如果按键输入错误,程序需要能够正确
地识别并给出错误提示。

步骤4:完成外壳
将单片机开发板和数码管装进铝盒中,并将数字按键开关与外壳
相连。

在外壳上打开一个窗口,以便能看到数码管和按键。

为了美观,可以涂上一些喜欢的颜色或加上小贴纸等装饰。

通过这个实验,我们深入了解了单片机的基本原理和运作方式,
掌握了C语言编程语言基础知识,并制作了一个实用的计算器。

在实
践中,我们不仅锻炼了问题解决能力和动手能力,还增强了对电子产
品的兴趣和信心。

微型计算机原理与接口技术简易计算器系统设计

微型计算机原理与接口技术简易计算器系统设计

、学号××××××××《微型计算机原理与接口技术》课程设计(2008级本科)《题目:简易计算器系统设计系(部)院:××××××××××专业:电气工程及其自动化,作者姓名:×××××××指导教师:××职称:××完成日期:××年×月×日@课程设计任务书(目录一、设计目的 (1)二、设计任务与要求 (1)三、总体方案论证 (1)方案1 (1)8255A与键盘接口 (2)8255A与LED数码管接口 (5)方案2 (8)/使用设备 (6)参数定义 (6)使用方法 (6)四、硬件设计 (6)五、软件设计 (6)程序设计思路 (6)程序中的关键技术 (7)六、流程图设计 (7)&七、程序调试运行 (8)程序编写 (9)上机编译与调试 (9)运行结果 (10)八、总结 (11)参考文献 (12)微机原理与接口技术课程设计成绩评定表 (15)一、设计目的1、进一步加深对微机系统的理解和认识,提高微机系统的应用水平。

2、进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。

3、初步加强自己的科学研究方法训练和实践锻练,增强分析问题和解决问题的能力,了解微机原理和接口技术的新发展。

二、设计任务与要求1、可以进行十进制数四则运算。

用按键输入数据;具有清零和复位功能;具有连续运算功能。

2、在设计中可以引用所需的参考资料,避免重复工作,加快设计进程,但必须和题目的要求相符合,保证设计的正确。

学会掌握和使用各种已有的技术资料,不要盲目地、机械地抄袭资料,必须具体分析,使设计质量和设计能力都获得提高。

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

【实验题目】简易计算器设计【实验目的】综合测试学生微机接口技术及应用能力,包括系统构思设计、电路设计搭建、软件调试等;结合应用实际,培养学生运用微机技术服务应用、服务实际的能力。

【基本要求】1)利用实验箱上的4x4键盘及6位数码管,实现两个16位宽的非负整数(0~65535)进行+、-、×运算,计算结果限制在范围-65535~65535,超过范围在数码管最低位显示E;2) 16个按键的分配可以自行指定;【扩展要求】1)按基本要求保持输入的范围不变(16位宽),扩展计算结果的范围到用足6位数码管,当计算结果超过-65535~999999时,显示E;2)增加÷的功能,有小数显示;【实验程序】;该程序实现了基本要求及扩展要求的2)DSEG SEGMENTBUFF DB 6 DUP()LED_7 DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39 H,5EH,79H,71H,00H,40HPOSITION DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEHUNIT10 DW 10000,1000,100,10,1NEWNUM DB 0COUNT DB 0FLAG DB 0 ;是否有键按下的标志NEGTI DB 0 ;是否为负数的标志NUM DW 0NUM1 DW 0NUM2 DW 0TAG DB 0 ;运算种类标志POINT DB 0 ;除法结果添加小数点标志RESULT DW 0DSEG ENDSCSEG SEGMENTASSUME DS:DSEG,CS:CSEGSTART:MOV AX,DSEGMOV DS,AXMOV DX,300CH ;8255初始化MOV AL,81HOUT DX,ALLEA SI,BUFFMOV CX,6 NEXT:MOV BYTE PTR[SI],16INC SILOOP NEXTCALL SHOW ;将显示缓冲区中内容在LED上一次显示出来MOV COUNT,0 ;记按下了几位数NEXT2:CALL SHOWCALL SCAN ;判断是否有按键按下CMP FLAG,1JZ OKJMP NEXT2OK:MOV FLAG,0MOV POINT,0MOV DX,3000H ;判断是哪一个键被按下MOV AL,0FFHOUT DX,ALMOV CH,-1 ;CH用于保存当前被扫描的列号MOV CL,07FHXL:ROL CL,1INC CHMOV DX,3000HMOV AL,CLOUT DX,ALMOV DX,3008HIN AL,DXAND AL,0FHCMP AL,0FHJZ XL ;选中下一列被扫描CMP AL,0EHJNZ FOURMOV CL,0 ;CL保存行号JMP FREEFOUR:CMP AL,0DHJNZ BAMOV CL,4JMP FREEBA:CMP AL,0BHJNZ SHIERMOV CL,8JMP FREESHIER:CMP AL,07HJNZ XLMOV CL,12FREE:ADD CH,CL ;行列值相加为按键代表的值CMP CH,9JBE SHUZICMP CH,12 ;加法JZ JIAFACMP CH,13 ;减法JZ JIANFACMP CH,14 ;乘法JZ CHENGFACMP CH,15 ;除法JZ CHUFACMP CH,11 ;等号时进行运算JZ YUNSUANCMP CH,10 ;此键清屏重新输入JZ CLEARSHUZI:INC COUNTMOV NEWNUM,CHCALL COPY ;将新输入的按键值送入显示缓冲区的最末位MOV DX,3000H ;将LED关显示MOV AL,0FFHOUT DX,ALCALL DELAY2JMP NEXT2 JIAFA:MOV TAG,1 ;置加法标志CALL TO_DEC ;将输入的数转化为十进制数保存MOV AX,NUMMOV NUM1,AXJMP START ;继续输入第二个按键数JIANFA:MOV TAG,2CALL TO_DECMOV AX,NUMMOV NUM1,AXJMP STARTCHENGFA:MOV TAG,3CALL TO_DECMOV AX,NUMMOV NUM1,AXJMP STARTCHUFA:MOV TAG,4CALL TO_DECMOV AX,NUMMOV NUM1,AXJMP STARTCLEAR:JMP STARTYUNSUAN:CALL TO_DEC ;将第二次输入的数转化为十进制数保存MOV AX,NUMMOV NUM2,AXCMP TAG,1JZ SJIAFCMP TAG,2JZ SJIANFCMP TAG,3JZ SCHENGFCMP TAG,4JZ SCHUFYEAH:CALL CHULI ;将结果中零的位置16关显示MOV TAG,0MOV NEGTI,0CALL SHOWJMP NEXT2SJIAF:CALL JIAJMP YEAHSJIANF:CALL JIANJMP YEAHSCHENGF:CALL CHENGJMP YEAHSCHUF:CALL CHUJMP YEAHMOV AH,4CHINT 21HJIA PROC NEARPUSH AXPUSH CXPUSH SIMOV AX,NUM1ADD AX,NUM2JC YC1 ;溢出MOV RESULT,AXCALL TO_SHOWSHUJMP OVER1YC1:LEA SI,BUFFMOV BYTE PTR[SI],14INC SIMOV CX,5SS0:MOV BYTE PTR[SI],16INC SILOOP SS0OVER1:POP SIPOP CXPOP AXRETJIA ENDPJIAN PROC NEARPUSH AXPUSH CXPUSH SIMOV AX,NUM1CMP AX,NUM2JA POSITIVEMOV NEGTI,1 ;结果为负数MOV AX,NUM2SUB AX,NUM1JC YC2JMP OV POSITIVE:MOV AX,NUM1 SUB AX,NUM2JC YC2OV:MOV RESULT,AX CALL TO_SHOWSHU JMP OVER2YC2:LEA SI,BUFFMOV BYTE PTR[SI],14 INC SIMOV CX,5SS2:MOV BYTE PTR[SI],16 INC SILOOP SS2OVER2:POP SIPOP CXPOP AXRETJIAN ENDP CHENG PROC NEAR PUSH AXPUSH CXPUSH SIMOV AX,NUM1 MUL NUM2JC YC3MOV RESULT,AX CALL TO_SHOWSHU JMP OVER3YC3:LEA SI,BUFFMOV BYTE PTR[SI],14 INC SIMOV CX,5SS3:MOV BYTE PTR[SI],16 INC SILOOP SS3OVER3:POP SIPOP CXPOP AXRETCHENG ENDPCHU PROC NEAR PUSH AXPUSH CXPUSH DXPUSH SIXOR DX,DXMOV AX,NUM1DIV NUM2PUSH DXMOV RESULT,AX CALL TO_SHOWSHU MOV POINT,1LEA SI,BUFFADD SI,5MOV CX,5PEA:MOV AL,[SI-1]MOV [SI],ALDEC SILOOP PEAPOP DXMOV AX,10MUL DXXOR DX,DXDIV NUM2MOV [SI],ALPOP SIPOP DXPOP CXPOP AXRETCHU ENDPCHULI PROC NEAR PUSH SIPUSH CXLEA SI,BUFFADD SI,5XX:CMP BYTE PTR[SI],0 JNZ NOZEROMOV BYTE PTR[SI],16 DEC SIJMP XX NOZERO:CMP NEGTI,1JNZ ZHENGINC SIMOV BYTE PTR[SI],17 ZHENG:POP CXPOP SICHULI ENDPTO_DEC PROC NEAR PUSH SIPUSH AXPUSH BXPUSH CXLEA SI,BUFFMOV AL,COUNTXOR AH,AHADD SI,AXDEC SIXOR AX,AXXOR CH,CHMOV CL,COUNT AGAIN:ADD AX,AXMOV BX,AXADD AX,AXADD AX,AXADD AX,BXMOV BH,0MOV BL,[SI]ADD AX,BXDEC SILOOP AGAINMOV NUM,AXPOP CXPOP BXPOP AXPOP SIRETTO_DEC ENDPTO_SHOWSHU PROC NEAR PUSH SIPUSH DIPUSH AXPUSH BXPUSH CXLEA DI,BUFFADD DI,5LEA SI,UNIT10MOV AX,RESULTMOV BYTE PTR[DI],0 DEC DILOP0:XOR CL,CLMOV BX,[SI]LOP1:SUB AX,BXJB LOP3INC CLJMP LOP1LOP3:ADD AX,BXMOV [DI],CLINC SIINC SIDEC DICMP BX,1JNZ LOP0POP CXPOP BXPOP AXPOP DIPOP SIRETTO_SHOWSHU ENDPSHOW PROC NEARPUSH AXPUSH BXPUSH CXPUSH DXPUSH SIPUSH DICMP POINT,1 ;是否需添加小数点JNZ NOPOINTMOV CH,0FFHAA3:LEA SI,BUFFLEA DI,POSITIONMOV AL,[SI]LEA BX,LED_7XLATMOV DX,3004HOUT DX,ALMOV DX,3000HMOV AL,[DI]OUT DX,ALCALL DELAY ;延时,使一位稳定显示INC SIINC DIMOV AL,[SI]LEA BX,LED_7 XLATOR AL,80H ;填小数点MOV DX,3004HOUT DX,ALMOV DX,3000HMOV AL,[DI]OUT DX,ALCALL DELAY ;延时,使一位稳定显示INC SIINC DIMOV CL,4AA2:MOV AL,[SI]LEA BX,LED_7XLATMOV DX,3004HOUT DX,ALMOV DX,3000HMOV AL,[DI]OUT DX,ALCALL DELAY ;延时,使一位稳定显示INC SIINC DIDEC CHJZ REALSTOPDEC CLJNZ AA2JMP AA3NOPOINT:MOV CH,0FFHAA1:LEA SI,BUFFLEA DI,POSITIONMOV CL,6AA:MOV AL,[SI]LEA BX,LED_7XLATMOV DX,3004HOUT DX,ALMOV DX,3000HMOV AL,[DI]OUT DX,ALCALL DELAY ;延时,使一位稳定显示INC SIINC DIDEC CHJZ REALSTOPDEC CLJNZ AAJMP AA1 REALSTOP:POP DIPOP SIPOP DXPOP CXPOP BXPOP AXRETSHOW ENDP DELAY PROC NEAR PUSH BXPUSH CXMOV BX,3FFH DEL1:MOV CX,0FFFH DEL2:LOOP DEL2DEC BXJNZ DEL1POP CXPOP BXRETDELAY ENDP DELAY2 PROC NEAR PUSH BXPUSH CXMOV BX,3FHDEL3:MOV CX,0FFH DEL4:LOOP DEL4DEC BXJNZ DEL3POP CXPOP BXRETDELAY2 ENDP SCAN PROC NEARPUSH AXPUSH DXKS:MOV DX,3000HMOV AL,0OUT DX,ALMOV DX,3008HIN AL,DXAND AL,0FH ;屏蔽高四位CMP AL,0FHJZ JIESHUMOV FLAG,1JIESHU:POP DXPOP AXRETSCAN ENDPCOPY PROC NEARPUSH SIPUSH CXPUSH AXMOV CX,5LEA SI,BUFFADD SI,5NEXT1:MOV AL,[SI-1]MOV [SI],ALDEC SILOOP NEXT1MOV AL,NEWNUMMOV [SI],ALPOP AXPOP CXPOP SIRETCOPY ENDPCSEG ENDSEND START。

相关文档
最新文档