单片机课程设计总结报告

合集下载

单片机课程设计心得体会通用15篇

单片机课程设计心得体会通用15篇

单片机课程设计心得体会单片机课程设计心得体会通用15篇当我们心中积累了不少感想和见解时,常常可以将它们写成一篇心得体会,这样能够让人头脑更加清醒,目标更加明确。

那么如何写心得体会才能更有感染力呢?以下是小编为大家整理的单片机课程设计心得体会,希望对大家有所帮助。

单片机课程设计心得体会1时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。

俗话说“好的开始是成功的一半”。

说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。

其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。

最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

虽然这次的课程设计算起来在实验室的时间只有三天,但是因为我们都有自己的实验板,所以在宿舍里做实验的时间必须不止三天。

硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。

当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。

第二,是在学习态度上,这次课设是对我的学习态度的一次检验。

对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对就应是严谨。

我们这次实习所遇到的多半问题多数都是由于我们不够严谨。

第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

在这次难得的课程设计过程中我锻炼了自己的思考潜力和动手潜力。

透过题目选取和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。

在方案设计选取和芯片的选取上,培养了我们综合应用单片机的潜力,对单片机的各个管脚的`功能也有了进一步的认识。

单片机 课程设计报告(完成版)

单片机  课程设计报告(完成版)

单片机课程设计报告
题目:音乐门铃
院系:电气信息工程系专业:通信工程
组长:吴楠学号: 20100606019
组员 1 :刘静静学号: 20100606017
组员 2 :张琳娜学号: 20100606018
组员 3 :李元学号: 20100606020
组员 4 :黄智鑫学号: 20100606049
组员 5 :学号:
组员 6 :学号:
指导教师:李宁
2011年01月06日
电气信息工程系课程设计总结报告
PCB原理图
电气信息工程系
单片机课程设计元器件清单指导教师:李宁课题名称:音乐门铃
参考文献:
[1]徐爱钧.单片机原理实用教程[M].北京:电子工业出版社,2009:267-285.
[2]刘焕平.单片机原理及应用[M].北京:北京邮电大学出版社,2008:246-260.
[3]刘南平.单片机实训与开发教程[M].北京:科学出版社,2008:199-209.
[4]吴金戌.8051单片机实践与应用[M].北京:清华大学出版社,2002:242-253.
[5]刘海成.单片机及应用系统设计原理与实践[M].北京:北京航空航天大学出版社,2009:273-281.
[6]杨振江.单片机应用于实践指导[M].西安:西安电子科技大学出版社,2010:378-380.。

单片机数字钟设计总结

单片机数字钟设计总结

单片机数字钟设计总结第一篇:单片机数字钟设计总结单片机数字钟设计总结经过一周的课程设计,我收获颇多,有深刻的心得体会。

实训让我们受益匪浅。

首先是关于单片机方面的。

我们学到了许多关于单片机系统开发的知识,从最开始选题到最后的结题,更使我们得到了充分的锻炼。

其次,它让我体会到了什么才是teamwork spirit。

一如:团队管理的经验、团队意识的提升和协调能力等等,这些都会让我们终身受益。

通过此次课程设计,使我更加扎实的掌握了有关电子线路单片机方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查我终于找出了问题所在,也暴露出了前期我在这方面的知识欠缺和经验不足。

实践才能出真知,实践才是检验真理的唯一标准,唯有通过亲自动手制作,才能令我们掌握的知识不再是一些纸上谈兵的东西。

在这次的课程设计中,我们遇到了很多困难,过程很艰难,但是我们都克服了,这是对我们自己的肯定。

我们不断发现错误,不断改正,不断领悟,不断获取。

我们也曾灰心,也曾茫然,也曾不知所措,从一开始的自信满满,到最后的紧张繁杂,所有的这些都令我们回味无穷,这已经成为了我们人生的一个宝藏。

我想今后的学习和工作也是这样的,汗水见证着成功,我想十年过后,但我们都已经走入了社会,在某个阳光明媚的夏日,午后醒来,突然想起大学经历的时候,最先映入脑海里的就是这门课程吧,就是这些为了一个共同的目标,相互合作,共同奋斗的日子吧。

不可否认,单片机是一门比较难的专业学科。

但是经过这一学期的学习,我们觉得单片机这门课很好,让我们在设计中掌握课程,具有很强的实用性。

在社会上,单片机也应用极其广泛。

通过这次课程设计,我掌握了常用元件的识别和测试;熟悉了常用仪器、仪表;了解了电路的连线方法;以及如何提高电路的性能等等。

我相信在接下来的日子里,我会更深刻地去研究它,发掘它。

在这次的实训里,我觉得过得很充实。

实训,不仅培养了我们独立思考、动手操作的能力,在各种其它能力上也都有了提高。

51单片机课程设计报告

51单片机课程设计报告

51单片机课程设计报告一、课程目标知识目标:1. 理解51单片机的硬件结构、工作原理及其功能特点;2. 学会使用51单片机的指令系统进行程序设计;3. 掌握51单片机与外围电路的接口技术,能实现简单的硬件控制功能;4. 了解51单片机在嵌入式系统中的应用及发展趋势。

技能目标:1. 能够运用C语言编写51单片机的程序,实现基础控制功能;2. 能够运用仿真软件对51单片机程序进行调试,分析并解决简单问题;3. 能够设计简单的51单片机硬件系统,进行电路连接和功能测试;4. 培养学生的动手能力、创新能力和团队协作能力。

情感态度价值观目标:1. 培养学生对电子技术的兴趣,激发学习热情;2. 培养学生严谨、务实的科学态度,提高自主学习能力;3. 培养学生关注社会发展,了解科技在生活中的应用,增强社会责任感;4. 培养学生团队合作精神,尊重他人意见,善于沟通交流。

课程性质:本课程为实践性较强的电子技术课程,以51单片机为核心,结合硬件和软件,培养学生的实际操作能力和创新能力。

学生特点:学生具备一定的电子技术基础知识,对单片机有一定了解,但实践经验不足。

教学要求:结合学生特点,注重理论与实践相结合,强调动手实践,提高学生的实际操作能力和解决问题的能力。

通过课程学习,使学生能够独立完成简单的51单片机控制系统设计。

二、教学内容根据课程目标,教学内容分为以下几个部分:1. 51单片机硬件结构及原理- 熟悉51单片机的内部结构、引脚功能;- 掌握51单片机的工作原理及性能特点。

2. 51单片机指令系统与编程- 学习51单片机的指令集,理解各指令的功能和使用方法;- 掌握C语言在51单片机编程中的应用。

3. 51单片机外围接口技术- 学习51单片机与常见外围电路(如LED、LCD、键盘等)的接口技术;- 掌握外围设备的控制原理及编程方法。

4. 仿真软件的使用- 学习使用Keil、Proteus等仿真软件进行51单片机程序设计和调试;- 掌握仿真软件的操作方法,提高程序调试效率。

单片机课程设计报告

单片机课程设计报告

单片机课程设计报告指导老师:任家富学生:钟文旭学号:200906050415一、目的与意义《单片微机原理及应用》是一门技术性、应用性很强的学科,实验课教学是它的一个极其重要的环节。

不论是硬件扩展、接口应用还是编程方法、程序调试,都离不开实验课教学。

如果不在切实认真地抓好学生的实践技能的锻炼上下功夫,单凭课堂理论课学习,势必出现理论与实践脱节,学习与应用脱节的局面。

任随书本上单片微机技术介绍得多么重要、多么实用、多么好用,同学们仍然会感到那只是空中楼阁,离自己十分遥远,或者会因此对它失去兴趣,或者会感到它高深莫测无从下手,这些情况都会令课堂教学的效果大打折扣。

《单片微机课程设计》的目的就是让同学们在理论学习的基础上,通过完成一个涉及MCS-51单片机多种资源应用并具有综合功能的小系统目标板的设计与编程应用,使学生不但能够将课堂上学到的理论知识与实际应用结合起来,而且能够对电子电路、电子元器件、印制电路板等方面的知识进一步加深认识,同时在软件编程、排错调试、焊接技术、相关仪器设备的使用技能等方面得到较全面的锻炼和提高,为今后能够独立进行单片机应用系统的开发设计工作打下一定的基础。

二、硬件电路图1、主板2、四位数码管3、八位LED流水灯4、蜂鸣器5、串口三、程序流程图五、实现的功能及现象1、键盘扫描输入当程序运行时,自动检测是否有按键按下,是哪个按键按下,并且通过返回值,在四位数码管上显示出按下键所对应的数字、字母或执行相应的功能。

2、四位数码管显示通过四位数码管显示相应的按键值、提示语或者执行相关功能。

3、八位流水灯程序运行时,当按下“B”功能键,八位流水灯依次循环点亮熄灭。

4、秒表程序运行时,当按下“C”功能键,数码管清零,从零开始逐秒增加。

5、串口通信程序运行时,当按下“F”功能键,数码管显示“232C”,提示进行串口输入,当从串口助手中输入控制字符时,八位LED灯得到对应的结果。

例如:当输入“00”时,八位灯全亮;当输入“AA”时,八位灯间隔亮。

单片机课程设计心得体会3篇

单片机课程设计心得体会3篇

单片机课程设计心得体会单片机课程设计心得体会精选3篇(一)在单片机课程设计过程中,我收获了很多宝贵的经验和知识。

首先,我学会了如何正确地进行单片机的硬件连接和编程。

通过实践,我了解并掌握了单片机的基本操作,熟悉了各种传感器和模块的使用方法,能够将各个模块相互连接起来,实现各种功能。

其次,在课程设计中,我加深了对数字电路和模拟电路的理解。

单片机作为数字电路和模拟电路的核心控制器,需要对数字信号和模拟信号进行处理和转换,因此对于这两个方面的知识要有一定的了解。

此外,我也提高了自己的问题解决能力和独立思考能力。

在遇到问题时,我能够主动去查找资料和寻求帮助,尝试各种方法来解决问题,并能够学会从多个角度去思考和分析问题。

最重要的是,通过这门课程设计,我深刻认识到了单片机的应用广泛性和重要性。

单片机在日常生活中无处不在,它已经深入到我们的生活中的方方面面。

因此,掌握单片机的相关知识和技能,不仅可以提高我们的工程能力,还可以应用于各行各业,实现我们的创意和想法。

综上所述,通过单片机课程设计,我不仅学到了具体的知识和技能,也提高了自己的学习能力和问题解决能力。

这对我未来的学习和工作都有着重大的意义。

单片机课程设计心得体会精选3篇(二)在进行单片机课程设计的过程中,我深刻体会到了课程设计的重要性和学习的价值。

通过这门课程的学习,我不仅掌握了单片机的基本原理和应用,还培养了自己的动手能力和解决问题的能力。

首先,在课程设计中,我学会了如何使用Keil C51软件进行单片机的程序设计。

通过课程设计,我掌握了单片机的基本指令和寄存器的使用方法,学会了如何编写和调试单片机程序。

这些知识和技能的掌握,对我今后的电子设计和嵌入式系统开发起到了很大的帮助。

其次,在课程设计中,我充分发挥了自己的动手能力和创造力。

在设计实验中,我需要自己独立完成电路的搭建和程序的编写,这对我的动手能力和实践能力提出了很大的要求。

通过自己的努力和实践,我不断改进电路的设计和程序的编写,最终成功实现了设计目标,这让我对自己的能力有了更深的认识和信心。

单片机课程设计总结范文精选3篇(全文)

单片机课程设计总结范文精选3篇(全文)

单片机课程设计总结范文精选3篇(全文) 在开发单片机嵌入式系统时,使用最多的软件就是Keilc51软件,此软件是由Keil公司研发出来的,软件以uVision2为开发平台,具有的功能包括项目治理、编码、程序生成器等。

Keilc51的优点在于:其界面的友好性较高、操作便捷,支持对汇编语言、C语言及混合语言的编程、编译和调试工作,可以在很大程度上缩短设计周期,在对程序进行修改时也是很方便的。

与此同时,Keilc51还能够加载Proteus软件的VSM 仿真器,加载之后就可以和Proteus软件进行联机调试。

一、课程设计流程1.编写相关指导文件在对课程设计着手之前,需要对课程设计的流程进行文档编写,为扎实掌握单片机技术打下基础。

相关指导文件包括:单片机项目开发的相关教程和例程材料,Keilc51和Proteus软件的教程和例程材料,单片机课程设计完成程度的标准,课程设计大纲等。

2.选择题目在制作课程计划时,需要根据每个章节内容的不同和课程进展程度对学生的实际学习情况进行考量,通过对学生掌握情况的推断再对课程设计进行拟题。

课程设计的题目包括针对各章内容的,也包括针对综合应用的:关于MSC-51与A/D转换方面的课程设计题目,关于MCS-51串口方面的课程设计题目,关于定时器与中断方面的课程设计题目,关于I/O接口方面的课程设计题目,关于MCS-51的综合使用方面的题目等。

除此之外,还要列出详细的元件表,供学生选择和参考,并对课程设计题目的实现提出相应的具体要求。

3.使用仿真软件和实现电路功能在课程设计实现中,教师可指导学生分组进行,根据学生所选题目对学生如何在软件和硬件等方面进行设计给予指导,以完成设计的初步内容。

在对学生进行指导时,可按照以下步骤进行:(1)绘制程序流程图,可以使用Visio或Word进行绘制。

学生在绘制程序流程图时,不但要依据所选题目的设计要求,还要结合教师的指导内容进行绘制,为接下来的程序设计做铺垫。

单片机课程设计-武汉理工大学单片机实训报告

单片机课程设计-武汉理工大学单片机实训报告

单⽚机课程设计-武汉理⼯⼤学单⽚机实训报告第⼀章绪论 (2)1.1概述 (2)1.2课程设计任务 (2)第⼆章硬件系统设计 (3)2.1单⽚机最⼩系统 (3)2.1.1 STC89C52的介绍 (3)2.1.2 stc89c52系列单⽚机最⼩系统的介绍 (4)2.2矩阵键盘模块 (5)2.3数码管显⽰单元 (5)2.4 LCD1602液晶显⽰电路 (6)2.5蜂鸣器单元 (7)第三章软件设计 (8)3.1数码管实验 (8)3.1.1循环数码管显⽰0—F程序设计结构图: (8)3.1.2 59秒倒计数流程图 (9)3.2 矩阵键盘流程图 (10)3.3 LCD1602滚动显⽰年⽉⽇时分秒 (11)3.4 AD转换, (12)3.5家电遥控器 (13)第四章调试结果分析 (14)4.1数码管调试及分析 (14)4.1.1循环数码管显⽰0—F (14)4.1.2数码管59秒倒计数 (15)4.2矩阵键盘 (15)4.3 LCD1602滚动显⽰年⽉⽇时分秒 (16)4.4 AD转换 (16)4.5家电遥控器 (17)第五章⼩结 (17)参考⽂献: (18)第⼀章绪论1.1概述随着我国⼯业技术和电⼦技术的发展和进步,⾃动控制技术也已经得到了极⼤的普及和应⽤,⽽这些⾃动控制技术的核⼼技术就是单⽚微型计算机,简称单⽚机。

它以其⾼可靠性、⾼性价⽐、低电压、低功耗等⼀系列优点,被⼴泛应⽤于控制系统、数据采集等领域。

⽽51单⽚机系列以其超⾼的性价⽐深受⼴⼤电⼦爱好者和开发者以及⼤学⽣群体的欢迎。

故⽽本次课程设计采⽤STC89C52单⽚机。

1.2课程设计任务必做项⽬(这是每个学⽣必做的任务):1.基本系统:在51单⽚机开发系统PCB电路板上完成电⼦元器件的焊接、调试、程序下载,并实现数码管显⽰、矩阵键盘扫描、中断程序、定时器程序、串⼝通讯等基本功能;2.显⽰功能:焊接电路并实现对1602液晶屏的显⽰功能,要求能滚动显⽰字符;3.输出控制:焊接电路并实现对继电器的控制功能;4.数据采集:焊接电路并实现对AD0832的数据采集功能;选做项⽬(以下任选⼀):1.家电遥控器:实现对红外接收管和发射管的控制功能,要求能够学习遥控器的红外码,并能发射相应的编码,实现红外遥控器的功能。

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

单片机课程设计频率计总结报告姓名:陈艺端学号:08292003班级:电气0809所在组:陈艺端白英杰【实验准备】在实验前,我通过上网、上图书馆查找了一些关于频率计的资料,结合单片机所学的中断和定时器的知识,并对电路板各个元器件、接线等的清楚认识,完成了对电路板仿真图的绘制,以及初步的程序,并实现了初步的仿真效果。

【设计内容】设计一个频率计。

【设计要求】分频段(高频、低频),在10k~20kHz范围做切换。

CPU为AT89S51,利用内部T0、T1的定时计数器或外部INT0中断功能来完成对输入的信号进行频率计数或脉宽计时,计数(计时)的频率结果通过6位七段LED数码管显示出来。

数字式频率计原理框图:【设计方案】一、实验原理:1、测频方式利用单片机计数器T0和定时器T1中断。

定时器T1中断产生闸门时间,在闸门时间Ts内,用计数器记录输入脉冲的个数N,从而计算出被测频率Fx =N/Ts。

2、测周方式利用单片机外部中断INT0和定时器T1中断。

定时器T1中断产生时标信号Ts,用外部中断INT0控制定时器T1的计数,计算出在被测信号的一个周期内定时器T1计得的数N,从而计算出被测频率Fx =NTs。

二、电路结构:① NE555构成多谐振荡器,产生频率可调的方波信号;②74HC74里的一个D触发器连成计数器,用来对555产生的方波分频;③74HC14非门做驱动,防止产生的信号不能驱动单片机的I/O口;④方波信号连接在单片机的INT0和T0口上。

⑤单片机的P1口做字位,连接74HC245驱动数码管的共阴端;⑥P0口做字形,连接74HC573锁存器和74HC245驱动数码管的a~dp端。

三、测频测周转换的讨论以及试验参数:1、测频方式和测周方式的转换频率依要求来说在10kHz~20kHz之间做切换。

2、转换频率过程中产生的问题当被测信号频率与转换频率非常接近,并且抖动时,容易产生两种方式一直跳变的现象,进入死循环,可以利用迟滞比较器的原理进行解决。

通常将测频方式和测周方式的转换频率设为程序判断测频还是测周的比较点,但为避免在转换频率附近产生死循环,设置两个比较点,分别为f1和f2,从高频测频方式向低频测周方式变化时,比较点为f1,从低频测周方式向高频测频方式变化时,比较点为f2,使f1<f2,即可避免不停跳变产生死循环的问题。

3、参数设定根据以上讨论,测频方式的闸门周期要大于1/f1,并且越大测量结果越精确,但还要考虑到闸门周期太大会导致测量得到的脉冲数N过大,影响程序大小。

同理,测周方式的时标周期要小于1/f2,并且越小越精确,同样要考虑到程序大小以及程序执行时间。

四、程序流程图⑴测频法:①主程序:②T0中断子程序:②T1中断子程序:⑵测周法:①主程序:②T1五、仿真图可见,改变电阻值或电容值,即改变NE555输入方波的频率,仿真实现的数码管显示值与用频率计测量的理论值相差不大,基本满足设计要求,但还是存在一定的误差,可以加以改进,增加精确度。

说明:由于软件版本问题,没有可调节的滑动变阻器,于是,我用多选开关来代替,通过开关选择不同的电阻来模拟滑动变阻器滑片的移动。

七、总结在去实验室前,我经过多番努力,将电路板上的电路用仿真软件画出,并且确保了每一条连线都包含了,芯片的每一个管脚都清楚的认识到是用来干什么的,怎么连接的,仿真时各个点将会出现什么情况。

尔后,我又进行了初步的编程,将程序模块化,分为了主程序、中断子程序(测频和测周)、显示子程序、十六进制转化为十进制的子程序、延时子程序等,但在十六进制转化为十进制的子程序的编程过程中,我不是很了解怎么实现这个过程,导致未能完成该子程序的编写。

验收当天,我和我的组员在互相讨论了自己的编程思路后,综合了对方的意见,得到了初步的程序,但是在仿真过程中,还是存在诸多问题,我们合力讨论了很久,但还是有点问题,于是我们和另外一组一起商讨,在测频和测周的转换过程方面讨论了很久,还尝试了用双闸门的方法,来代替测频和测周的转换,但是结果还是不理想,尝试了烧程序看看电路板能否实现,但经过了一天的努力,我们还是未能实现所要的结果。

临走前,我们询问老师,老师的意思是我们做得复杂了,想太多了,重心已经偏移了,于是,我们经过一个晚上的修改,初步定型了程序,第二天又到实验室去调试。

调试的时候发现显示出来的总是乱码,后用万用表测数码管,才发现电路板上的数码管接反了,于是我们将数码管重新插了一遍。

编程时的值都是理论计算得到的值,调试时发现测得的频率和实际频率总有点差别,原因是忽略了程序中其他语句执行所需要的时间,而且一开始由于为将某些语句在等待中断的时间完成,导致仿真结果是一段时间显示一次,时延较长,细微修改定时器定时,并修改程序结果后,减小了测得值和实际值的差别,显示结果也较稳定。

在烧程序的过程中出现了很多的问题,比如,接线的问题,芯片的问题等,我们第一天没能将课设验收完成,但我们不断地检查电路板和我们的程序,以及仿真图,不断地寻找问题所在,最终成功地将设计在电路板上实现出来。

六、实验程序①测频法:ORG 0000HAJMP STARTORG 000BH ;T0中断入口AJMP T0INTORG 001BH ;T1中断入口AJMP T1INTORG 0030HSTART: MOV SP,#70HMOV IE,#8AH ;10001010B,开放T0、T1中断MOV TMOD,#15H ;00010101,T1定时,T0计数,允许T0溢出中断MOV TH1,#0ECHMOV TL1,#78H ;定时10msMOV 20H,#100 ;100*10ms=1sMOV TH0,#00HMOV TL0,#00HMOV 21H,#0MOV 22H,#0MOV 23H,#0 ;存放采集到的频率SETB TR1 ;开始计数SETB TR0WAIT:AJMP WAIT ;等待中断T0INT:INC 23H ;T0计数器溢出则23H单元自增1RETIT1INT: ;定时10ms产生中断MOV R2,#06 ;显示初始化MOV R4,#0FEHMOV R1,#60H ;显示缓冲区起始地址SETB P3.0LOOP: MOV A,R4MOV P1,A ;字位MOV A,@R1MOV P0,A ;字形LCALL DELAYINC R1MOV A,R4RL A ;字位左移MOV R4,ADJNZ R2,LOOP ;判断6个数码管是否显示完DJNZ 20H,NEXT1 ;判断1s定时CLR TR1 ;停止计数CLR TR0MOV 20H,#100MOV 22H,TH0 ;1s时间到则采集数据MOV 21H,TL0LCALL DISPLAYMOV TH0,#00H ;计数初值置0MOV TL0,#00HNEXT1: MOV TH1,#0ECH ;继续定时MOV TL1,#78HSETB TR1SETB TR0EXIT: RETIDISPLAY:MOV R0,#60HMOV R1,#06H ;对60H-65H单元清零NEXT2: MOV @R0,#0INC R0DJNZ R1,NEXT2ZHUANHUAN: ;进制转换MOV A,23HMOV B,#0AHDIV ABMOV 24H,A ;存储第一位商MOV A,BMOV 30H,22HANL 30H,#0F0HADD A,30HSWAP AMOV B,#0AHDIV ABMOV 25H,A ;存储第二位商MOV A,BSWAP AANL 22H,#0FHADD A,22HMOV B,#0AHDIV ABMOV 26H,A ;存储第三位商MOV A,BMOV 30H,21HANL 30H,#0F0HADD A,30HSWAP AMOV B,#0AHDIV ABMOV 27H,A ;存储第四位商SWAP AANL 21H,#0FHADD A,21HMOV B,#0AHDIV ABMOV 28H,A ;存储第五位商MOV 50H,B ;存储十进制数个位MOV A,24HSWAP AADD A,25HMOV B,#0AHDIV ABMOV 24H,A ;存储第一位商MOV A,BSWAP AADD A,26HMOV B,#0AHDIV ABMOV 25H,A ;存储第二位商MOV A,BSWAP AADD A,27HMOV B,#0AHDIV ABMOV 26H,A ;存储第三位商MOV A,BSWAP AADD A,28HMOV B,#0AHDIV ABMOV 27H,A ;存储第四位商MOV 51H,B ;存储十进制数十位MOV A,24HSWAP AADD A,25HMOV B,#0AHDIV ABMOV 24H,A ;存储第一位商MOV A,BSWAP AADD A,26HMOV B,#0AHMOV 25H,A ;存储第二位商MOV A,BSWAP AADD A,27HMOV B,#0AHDIV ABMOV 26H,A ;存储第三位商MOV 52H,B ;存储十进制数百位MOV A,24HSWAP AADD A,25HMOV B,#0AHDIV ABMOV 24H,A ;存储第一位商MOV A,BSWAP AADD A,26HMOV B,#0AHDIV ABMOV 25H,A ;存储第二位商MOV 53H,B ;存储十进制数千位MOV A,24HSWAP AADD A,25HMOV B,#0AHDIV ABMOV 54H,B ;存储十进制数万位MOV 55H,A ;存储十进制数十万位MOV R2,#06MOV R0,#50HMOV R1,#5FHMOV DPTR,#TABNEXT3: MOV A,@R0MOVC A,@A+DPTR ;查表,字形INC R0INC R1MOV @R1,ADJNZ R2,NEXT3RETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H,71HDELAY: MOV 40H,#250LP0: NOPDJNZ 40H,LP0RETEND②测周法:ORG 0000HLJMP MAINORG 0100HMAIN: MOV DPTR, #0000HSETB CMOV P3.4, CMOV 23H, #00HF1: MOV C, P3.4JC F1F2: MOV C, P3.4JNC F2F3: MOV 22H, DPHMOV 21H, DPLMOV A, #0FFHCJNE A, 22H, JIACJNE A, 21H, JIAINC 23HJIA: INC DPTRMOV C, P3.4JC F3F4: MOV 22H, DPHMOV 21H, DPLMOV A, #0FFHCJNE A, 22H, JIA1CJNE A, 21H, JIA1INC 23HJIA1: INC DPTRMOV C, P3.4JNC F4MOV 22H, DPHMOV 21H, DPLACALL DISPLAYMOV 21H, #0MOV 22H, #0MOV 23H, #0LJMP MAINDISPLAY: MOV R0, #60HMOV R1, #06H ;对60H-65H单元清零NEXT2: MOV @R0, #0INC R0DJNZ R1, NEXT2ZHUANHUAN: ;进制转换MOV A, 23HMOV B, #0AHDIV ABMOV 24H, A ;存储第一位商MOV A, BMOV 30H, 22HANL 30H, #0F0HADD A, 30HSWAP AMOV B, #0AHDIV ABMOV 25H, A ;存储第二位商MOV A, BSWAP AANL 22H, #0FHADD A, 22HMOV B, #0AHDIV ABMOV 26H, A ;存储第三位商MOV A, BMOV 30H, 21HANL 30H, #0F0HADD A, 30HSWAP AMOV B, #0AHDIV ABMOV 27H, A ;存储第四位商MOV A, BSWAP AANL 21H, #0FHADD A, 21HMOV B, #0AHDIV ABMOV 28H, A ;存储第五位商MOV 50H, B ;存储十进制数个位MOV A, 24HSWAP AADD A, 25HMOV B, #0AHDIV ABMOV 24H, A ;存储第一位商MOV A, BSWAP AMOV B, #0AHDIV ABMOV 25H, A ;存储第二位商MOV A, BSWAP AADD A, 27HMOV B, #0AHDIV ABMOV 26H, A ;存储第三位商MOV A, BSWAP AADD A, 28HMOV B, #0AHDIV ABMOV 27H, A ;存储第四位商MOV 51H, B ;存储十进制数十位MOV A, 24HSWAP AADD A, 25HMOV B, #0AHDIV ABMOV 24H, A ;存储第一位商MOV A, BSWAP AADD A, 26HMOV B, #0AHDIV ABMOV 25H, A ;存储第二位商MOV A, BSWAP AADD A, 27HMOV B, #0AHDIV ABMOV 26H, A ;存储第三位商MOV 52H, B ;存储十进制数百位MOV A, 24HSWAP AADD A, 25HMOV B, #0AHDIV ABMOV 24H, A ;存储第一位商SWAP AADD A, 26HMOV B, #0AHDIV ABMOV 25H, A ;存储第二位商MOV 53H, B ;存储十进制数千位MOV A, 24HSWAP AADD A, 25HMOV B, #0AHDIV ABMOV 54H, B ;存储十进制数万位MOV 55H, A ;存储十进制数十万位MOV R2, #06MOV R0, #50HMOV R1, #5FHMOV DPTR, #TABNEXT3: MOV A, @R0MOVC A, @A+DPTRINC R0INC R1MOV @R1, ADJNZ R2, NEXT3MOV R2, #06MOV R4, #0FEHMOV R1, #60HSETB P3.0LOOP: MOV A, R4MOV P1, AMOV A, @R1MOV P0, ALCALL DELAYINC R1MOV A, R4RL AMOV R4, ADJNZ R2, LOOPRETTAB: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH DB 77H,7CH,39H,5EH,79H,71HDELAY: MOV 40H, #250LP0: NOPDJNZ 40H, LP0RETEND十六进制转化为十进制的方法:第一步将最高位的高半字节提出来,除以10,把商存储起来,余数与最高位的低半字节组合成一个字节,再除以10,再存储商,余数以此类推,直到最后一次计算得到的余数即为十进制数的个位;第二步把第一步存储的商组合成一个字节,依次除以10,仍然把每次得到的商存储起来,以此类推最后一次得到的余数即为十进制数的十位;以后也是以此类推得到十进制数的百位、千位……以上算法必须要注意的一个问题是,每次得到的余数与低位的半字节组合成一个字节时,余数必须放在该字节的高半字节,否则计算错误。

相关文档
最新文档