单片机实训总结
学生实训总结报告专业:应用电子技术班级:学号:姓名:实训室:日期:至止指导教师:
201*年12月日
学生实训总结报告
说明
1.
实训结束之前,每个学生都必须认真撰写《实训总结报告》。通过撰写实训总结报告,系统地回顾和总结实训的全过程,将实践性教学的感性认识升华到一定的理论高度,从而提高实训教学效果。
实训总结报告要求条理清晰,内容详尽,数据准确。字数不少于201*字。
实训总结报告的质量反映了实训的质量,它是实训成绩评定的主要依据之一。应在实训结束后两周内将此报告上交学院教学办公室。不交实训报告者不得参加实训成绩评定。
封面中的“实训室”必须写全名,必须写上指导教师姓名。
“前言”部分:“实训背景”可简介实训目的、通过何种方式到此单位实训等内容;“实训环境”可包括实训室全称(中英文)、地址、规模、简介等内容。“实训内容”部分:属报告的主要部分。“实训过程”概述实训各阶段所从事的主要工作等;“实训内容”包括项目介绍、本人从事的工作、软硬件平台和技术等;“实训成果”应具体列出自己所完成的主要成果及实际应用情况等。
“总结”部分:其中“其它意见”可对学院课程设置、教学内容、实训安排等方面提出自己的意见或建议,也可对实训单位的各个方面提出自己的意见。
2.3.
4.5.6.
7.
第2页共6页学生实训总结报告
目录
11.11.2
前言.................................................4
实训背景...........................................................................................................4实训环境...........................................................................................................4
22.12.22.3
实训内容.............................................5
实训过程...........................................................................................................5实训内容...........................................................................................................5主要成果...........................................................................................................5
33.13.2
总结.................................................6
实训体会...........................................................................................................6其它意见...........................................................................................................6
第3页共6页学生实训总结报告
1前言
1.1实训背景
通过实训,掌握单片机内部硬件结构、工作原理,掌握程序的设计基本方法;掌握单片机的接口技术,熟悉常用的外围接口芯片及典型电路。熟悉设计、调试单片机的应用系统的一般方法,具有初步的软、硬件设计能力。1.2
实训环境
利用keiluVision软件写程序,并用stc-isp下载软件中下载到铁牛单片机中,上电运行和检查。
第4页共6页学生实训总结报告
2实训内容
2.1实训过程
1)先将单片机上电,用USB接口的数据线将这块单片机板与PC机连接;2)装单片机驱动,对“我的电脑”右键,选择“属性”,在“设备管理器”里
的“端口”处识别该单片机的接口,如:(COM5);3)识别完后运行spc-isp,选择端口类型(COM5),然后将流水灯、蜂鸣器、继电
器、数码管静态显示、矩阵键盘等程序下载到单片机里,下载一个检测一个,看这块单片机是否有哪里故障;
4)逐个检测无故障后,在运行keiluVision2编写程序,便写完后检测看有没有
错误,确认无误后将这个程序下载到单片机上,得出最后的结果,即在数码显示管上显示从0-9这些数字。
2.2
实训内容
1)将流水灯、蜂鸣器、继电器、数码管静态显示、矩阵键盘的程序下载到单片机并观察单
片机的显示方式;
2)利用proteus画图,利用Reli编写C语言程序,使用单片机的25个IO口,连接
发光管,组成5X5的矩阵显示屏,在屏幕上显示0到7这八个数字.
2.3
主要成果
完成对矩阵键盘电路、串口通信电路、数码管显示电路、蜂鸣器电路、继电器电路等程序在单片机的运行。
第5页共6页学生实训总结报告
3总结
3.1实训体会
通过这一周的实训,对单片机加深了了解。对编写程序有一定进步,在理解单片机端口功能的前提下,才能写出正确的程序。在实训的期间是很有趣的,当出现一个很难攻破的程序时,就觉得很想去挑战它。当找到一点突破口时,自己从心底感觉到喜悦,当成果出来时,很有成就感。
对于这为期一周的实训,是很快乐的。对单片机的兴趣越发的浓厚,希望下次还有机会参加这样的实训,实训的时间能更长点。
3.2
其它意见
1)合理的安排时间。2)课题的难易程度。
第6页共6页
扩展阅读:单片机实习总结
专业综合实习总结
201*-201*(2)
专业班级:电子信息工程0802学生学号:0414080224学生姓名:
指导教师:张云、包长春、马崇霄、杜殿会实习时间:201*.6.20201*.7.15
机电工程学院
一、实习目的和意义
1、实习目的:
(1)利用单片机小系统实习板,掌握电路原理图;
(2)通过对系统板的测试,了解系统板的工作原理及性能,掌握元器件及系统故障的排除方法;
(3)掌握程序编制及调试方法,完成系统初始化、存储器操作、端口操作、模拟量采集、模拟量输出、串口通讯、IIC、日历时钟芯片、键盘显示等程序的编制及调试。
(4)通过单片机系统的调试、程序编制及运行,掌握单片机系统的工作原理、开发方法和操作方法。2、实习意义:
电子技术和微型计算机的迅速发展,促进了微型计算机测量和控制技术的迅速发展和广泛应用。微机测控技术的应用已渗透到国民经济的各个部门。可以说,微机测控技术的应用是产品提高档次和推陈出新的有效途径。创新精神和实践能力是对新时期高素质人才的基本要求。通过本实习不但可以掌握单片机软、硬件的综合调试方法,而且可以熟练掌握电路原理图,激发对单片机智能性的探索精神,提高学生的综合素质,培养学生应用单片机实现对工业控制系统的设计、开发与调试的能力。在制作学习过程中,不但可以掌握软、硬件的综合调试方法,而且可以使学生对单片机智能性产生强烈的欲望。达到最大限度地掌握微机应用技术,软件及接口设计和数据采集与处理的技能,培养电综合实践素质的目。
二、实习内容
1.熟悉“单片机课程实习”电路板,领会、掌握该电路板的设计原理及硬件布局。2.掌握单片机技术应用平台keil软件的学习。
3.借助平台软件,学习开发板的使用,按照要求编制、调试出正确的汇编语言程序。4.学习适合本开发平台软件STC-ISP的在线单片机烧录。
5.针对实习电路板的功能,编制、调试、编译汇编语言程序,下载烧录并在实验板上运行,或利用软件proteus进行软件仿真。
实现的功能:
1.led显示模块:单向循环流水led显示、双向循环流水led显示、花样流水灯的显示,使用查表方法编制任意点亮历程的实现,使用软件延时;
2.数码管显示模块:一位静态数码管显示0到9和0到F、二位静态数码管显示0到99、三位静态数码管显示0到999、四位静态数码管显示0到9999;阴极和阳极四位动态数码管显示;74LS驱动4位静态数码管显示;利用74HC595四位静态数码管显示;使用串行静态显示和动态扫描显示两种方式;
3.键盘模块:利用4×4矩阵键盘按键对应置数显示“0~F”;使用键盘的行列扫描方式;
三、硬件介绍
(一)LED显示模块:
C21930pFU1XTAL1X1CRYSTALC118XTAL29RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617R11kC31uF29303130pF12345678PSENALEEAR251kP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51D7LED-REDD6LED-REDD5LED-REDD4LED-REDD3LED-REDD2LED-REDD1LED-REDD0LED-RED图1流水灯显示
C130pX1CRYSTALVCCC230pU119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617D1D2D3D4D5D6D7D8LED-REDR3R4200R5201*8XTAL2C31uF9LED-GREENRSTR21kLED-REDLED-REDR6201*00R151k293031PSENALEEAR7R8200LED-RED12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51LED-REDR9R10200LED-REDLED-RED200图2键盘控制循环灯(二)数码管显示模块:
R10R4R3R5R6R7R8R910k10k10k10k10k10k10k10kC21930pFU1XTAL1X1CRYSTALC118XTAL29RSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617R11kC31uF29303130pF12345678PSENALEEAR251kP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51图31位静态数码管显示
VCCVCCC21930pFR10R4R3R5R6R7R8R9R14R13R12R11R15R16R18R17R22R21R20R19R23R24R26R25R34R33R32R27R28R29R30R31U1XTAL110k10k10k10k10k10k10k10kP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39383736353433322122232425262728101112131415161710k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10k10kX1CRYSTAL18XTAL29RSTR11kC31uF293031PSENALEEAR251k12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51图44位静态数码管显示P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.3P2.2P2.1P2.0VCCC1U130PF191P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RXDTXDINT0INT1T0T1WRRDP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.723456789XTAL1RP1X1CRYSTAL18C230PFXTAL2C3910uRSTVCCRESPACK-8R110kVCC293031PSENALEEAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51图54位动态数码管显示VCCRP1U119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617D0D1D2D3D4D5D6D7123456789RESPACK-8D0D1D2D3D4D5D6D7WE1WE2WE3WE4WE5WE6abcdefghU223456789D0D1D2D3D4D5D6D7LEOE74HC573Q0Q1Q2Q3Q4Q5Q6Q71918171615141312abcdefgh18XTAL2DULA1119RSTU3D0D1D2D3D4D5D6D723456789D0D1D2D3D4D5D6D7LEOE74HC573WRQ0Q1Q2Q3Q4Q5Q6Q71918171615141312WE1WE2WE3WE4WE5WE6293031PSENALEEADULAWELA12345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C51T0T0T1WRRDT1WELA111RD图6独立键盘加减清零数码管显示U274LS164U374LS16413121110131211101312111013121110654365436543654U41DSRG81D74LS1643U574L1DSRG81DSRG8C1/->C1/->C1/->RRRC1/->8&&&&21821821899921RXDC1U130PF19XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RXDTXDINT0INT1T0T1WRRDTXDVCCRP11P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.723456789RESPACK-8X1CRYSTALC230PF18XTAL2C39RSTVCCR110k10uVCC293031PSENALEEAP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.780C519RVCCSRG8图74位74LS驱动静态数码管显示
161514131211109161514131211109161514131211109RN110kRN210kRN310k161514131211109RN410k123456781234567812345678976543211597654321159765432115Q7Q7Q6Q5Q4Q3Q2Q1Q0Q7Q7Q6Q5Q4Q3Q2Q1Q0Q7Q7Q6Q5Q4Q3Q2Q1Q074HC59574HC59574HC595Q7Q7Q6Q5Q4Q3Q2Q1Q0131012U2U3U4976543211512345678U574HC595DSSH_CPDSSH_CPDSSH_CP131012141113101214111310121411P1.0RXDTXDC130pFX1CRYSTALU119XTAL1P0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD39P0.038P0.137P0.236P0.335P0.434P0.533P0.632P0.721222324252627281011121314151617P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RXDTXDINT0INT1T0T1WRRDC2C330pF10u18XTAL2RP11P0.02P0.13P0.24P0.35P0.46P0.57P0.68P0.79RESPACK-89RSTR110k293031PSENALEEAP1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C511411DSSH_CPST_CPST_CPST_CPST_CPOEMROEMROEMROEMR图84位74HC595静态显示(三)键盘显示模块:
C1191nFCRYSTALU1XTAL1X1C2GNDVCC18XTAL21nFC39100uR110kVCCRSTP0.0/AD0P0.1/AD1P0.2/AD2P0.3/AD3P0.4/AD4P0.5/AD5P0.6/AD6P0.7/AD7P2.0/A8P2.1/A9P2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/INT0P3.3/INT1P3.4/T0P3.5/T1P3.6/WRP3.7/RD393837363534333221222324252627281011121314151617P0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P2.0P2.1P2.2P2.3P2.4P2.5P2.6P2.7RXDTXDINT0INT1T0T1WRRDGND293031PSENALEEAVCCP1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.712345678P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7AT89C51R3R4R5R6R7R8R9R1010k10k10k10k10k10k10k10kP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0VCCRP11P1.1P0.02P0.13P0.24P0.35P0.46P0.57P0.68P0.79RESPACK-8P1.2P1.3P1.7P1.6P1.5P1.4图90到F矩阵键盘
四、软件程序流程图
流水灯循环左移右移程序框图:开始运行主程序给P1口赋初值80HA循环左移,并在P1口输出否调用延时程序判别A与80H是否相等是A循环右移,并在P1口输出否调用延时程序判别A与01H是否相等结束
是1、
、0到F一位静态显示程序框图:开始1.建0F的字形码表2.用累加器A控制P0口并传递参数3.R0记录目前显示的字型码R0=0A=R0查字型码表,显示0延时INCR0是R0=16?否继续查表,显示下一个字型延时
3、0到9一位静态显示程序框图:
开始(P0)=0A=P0查字型码表,取得段驱动码段驱动码送P0口延时(R0)+1NR0=10?YR0=02
4、动态数码显示程序框图:
开始P0口,P2口初始化置相应的使能位查表显示延时N显示完Y置使能位处值返回
5、4×4矩阵矩阵键盘数码显示程序框图:主程序图:
开始扫描N是否有键按下YY识别是哪一个键按下通过P0口查询显示该序号
判别是否有键按下程序:
开始P1=FFH,P1.2=0P1=FFH,P1.0=0有键按下吗?有键按下吗?延时去抖动延时10ms真的有键按下?真的有键按下?根据当前状态识别按键根据当前状态识别按键P1=FFH,P1.1=0P1=FFH,P1.3=0有键按下吗?有键按下吗?延时10ms延时10ms真的有键按下吗?真的有键按下吗?根据当前状态识别按键根据当前状态识别按键
五、实习的心得体会
本次单片机实习我们一共完成了三个模块的程序设计,包括:led显示模块、数码管显示模块和键盘模块。分别实现了流水灯的循环点亮控制、数码管的静态和动态计数显示,还有矩阵键盘按键控制数码管显示的程序设计。然后我们分别用protues系统仿真软件对各个模块进行了模拟仿真,用keil软件编制了汇编语言程序,验证了我们所设计的程序。
这次实习还使我理解了编写程序的一些技巧。单片机应用系统一般由包含多个模块的主程序和由各种子程序组成。每一模块都要完成一个明确的任务,实现某个具体的功能,如计算、接受、发送、延时、显示等。采用模块化程序设计方法,就是将这些具体功能程序进行独立设计和分别调试,最后将这些模块程序装配成整体程序并进行联合调试。模块化程序设计方法的优点:一个模块可以为多个程序所共享;单个功能明确的程序模块的设计和调试比较方便,容易完成;利用已经编好的成熟模块,将大大缩短开发程序的时间,降低开发成本。采用循环结构和子程序结构可以使程序的容量大大减少,提高程序的效率,节省内存。对于多重循环,要注意各重循环的初值和循环结束的条件,避免出现程序无休止循环的“死循环”现象;
通过这次的实习我发现,只有理论水平提高了,才能够将课本知识与实践相结合,理论知识服务于教学实践,以增强自己的动手能力。这次实习十分有意义,这次实习我们知道了理论和实践的距离,也知道了理论和实践相结合的重要性。
回顾起此次课程设计,感觉受益匪浅,从拿到题目到完成整个编程,从理论到实践,学到很多很多的课堂理论中没学到过的东西,不仅对键盘的识别技术这一章节的知识点有了深刻的认识,而且对这学期开设的单片机这门课程有了更全面的了解,尤其是在学习使用proteus软件片编程和仿真时收获良多。通过这次单片机课程设计,还使我懂得了实践的重要性。同时在程序调试的过程中提高自己的发现问题、解决问题、实际动手和独立思考的能力。
这次课程设计能顺利的完成,除了我们的努力外,当然也离不开指导老师申老师的辛勤指导,致使我在设计的过程中学到了很多实用性的知识。同时,对给过我帮助的所有同学和各位指导老师表示忠心的感谢!
附录:程序清单
P1口闪亮:
ORG0000HLOOP:MOVP1,#01HACALLDELAYMOVP1,#00HACALLDELAYSJMPLOOPDELAY:MOVR7,#250DEL1:MOVR6,#250DJNZR6,$DJNZR7,DEL1RETEND
流水灯循环左移右移:方法一:
ORG0000HMOVA,#01HLOOP:MOVP1,AMOVR5,#10LOOP1:ACALLDELAYDJNZR5,LOOP1RLA
JBACC.7,LOOP2SJMPLOOPLOOP2:MOVP1,AMOVR5,#10LOOP3:ACALLDELAYDJNZR5,LOOP3RRA
JBACC.0,LOOPSJMPLOOP2DELAY:MOVR7,#250DEL1:MOVR6,#250DJNZR6,$DJNZR7,DEL1RETEND方法二:
ORG0000HMOVA,#80HLOOP:RLA
MOVP1,AACALLDELAY
CJNEA,#80H,LOOP
LOOP1:RRAMOVP1,AACALLDELAY
CJNEA,#01H,LOOP1SJMPLOOP
DELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND方法三:
ORG0000HMOVA,#80HMOVR0,#08HLOOP:RLAMOVP1,AACALLDELAY
DJNZR0,LOOPMOVR0,#07HLOOP1:RRAMOVP1,AACALLDELAYDJNZR0,LOOP1MOVR0,#07HSJMPLOOP
DELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND方法四:
ORG0000HMOVA,#00HSETBCYLOOP:RLCAJCLOOP1MOVP1,A
ACALLDELAY
SJMPLOOPLOOP1:RRCAJCLOOPMOVP1,AACALLDELAYSJMPLOOP1DELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND
从中间向两边,再从两边向中间循环点亮:
ORG0000HSTAR:MOVR0,#00HMOVR1,#07MOVA,R0
MOVDPTR,#TABLOOP:MOVCA,@A+DPTRMOVP1,AMOVR5,#10LOOP1:ACALLDELDJNZR5,LOOP1INCR0MOVA,R0DJNZR1,LOOPSJMPSTARDEL:MOVR7,#200DEL1:MOVR6,#250DJNZR6,$DJNZR7,DEL1RETTAB:DB
18H,24H,42H,81H,42H,24H,18HEND
键盘控制流水灯循环点亮:
按键P1.5P1.6控制循环灯移动方向ORG0000HAJMPMAINORG0003HAJMPETORG0030HMAIN:MOVSP,#60HSETBEASETBIT0SETBEX0CLRC
MOVA,#0FFHMOVP2,ALCALLDEL
LOOP:JNB21H.1,L;检测标志RRCA;右移动MOVP2,AAJMPDEE
L:RLCA;左移动MOVP2,ADEE:LCALLDELAJMPLOOPET:CLREAPUSHACCPUSHPSWLCALLDELAYMOVA,#0FFHMOVP1,ANOPNOP
MOVA,P1;读键值ANLA,#0F0H
CJNEA,#0F0H,NEXT1AJMPNEXT
NEXT1:JBACC.5,NEXT2
CLR21H.1;按键后产生标志AJMPNEXT
NEXT2:JBACC.6,NEXT
SETB21H.1;按键后产生标志NEXT:SETBEAPOPPSWPOPACCHHH:RETI
DEL:MOVR6,#250DEL11:MOVR5,#250DJNZR5,$DJNZR6,DEL11RET
DELAY:MOVR6,#10DEL1:MOVR5,#200DEL2:DJNZR5,$DJNZR6,DEL1RETEND花样流水灯:
ORG0000HSTART:MOVR0,#00HMOVP1,#00HLOOP:MOVA,R0ADDA,#0CHMOVCA,@A+PCCJNEA,#01H,XSHSJMPSTARTXSH:MOVP1,AACALLDELAYINCR0SJMPLOOP
DB0FFH,00H,0FFH,00H,0FFH,00H,0FFH,00H,0FH,0F0H,0FH,0F0H,0FH,0F0H,0FH
DB0F0H,0FH,0F0H,0AAH,55H,0AAH,55H,0AAH,55H,0AAH,55H,0AAH,55H,81H,42H
DB24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H,42H,24H,18H,24H,42H,81H
DB42H,24H,18H,24H,42H,81H,03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH
DB06H,03H,06H,0CH,18H,30H,60H,0C0H,60H,30H,18H,0CH,06H,03H,01HDELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND
1位静态数码显示:ORG0000HMOVR0,#0FFHDISPLY:INCR0
CJNER0,#0AH,DISPLY1MOVR0,#0FFHSJMPDISPLYDISPLY1:MOVA,R0ADDA,#06HMOVCA,@A+PCMOVP0,AACALLDELAYSJMPDISPLY
DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHDELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RET
2位静态数码显示:ORG0000HMOVR0,#0FFHMOVR1,#00HDISPLY:INCR0
CJNER0,#0AH,DISPLY1INCR1
CJNER1,#0AH,DISPLY2MOVR0,#0FFHMOVR1,#00HMOVP0,#0FFHAJMPDISPLYDISPLY2:MOVA,R1ADDA,#10HMOVCA,@A+PCMOVP0,AMOVR0,#0FFHAJMPDISPLYDISPLY1:MOVA,R0ADDA,#06HMOVCA,@A+PCMOVP2,AACALLDELAYAJMPDISPLYDTAB:DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHDELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND
3位静态数码显示:ORG0000HSTART:MOVR0,#0FFHMOVR1,#00HMOVR2,#00HMOVP3,#0FFHMOVP2,#0FFHMOVP0,#0FFHDISPLY:INCR0
CJNER0,#0AH,DISPLY1MOVR0,#0FFHINCR1
CJNER1,#0AH,DISPLY2MOVR1,#00HMOVP2,#0C0HINCR2
CJNER2,#0AH,DISPLY3SJMPSTARTDISPLY3:MOVA,R2ADDA,#16HMOVCA,@A+PCMOVP0,ASJMPDISPLYDISPLY2:MOVA,R1ADDA,#0EHMOVCA,@A+PCMOVP2,A
SJMPDISPLYDISPLY1:MOVA,R0ADDA,#06HMOVCA,@A+PCMOVP3,AACALLDELAYSJMPDISPLY
DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHDELAY:MOVR7,#0FFHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND
4位静态数码显示:ORG0000HSTART:MOVR0,#0FFHMOVR1,#00HMOVR2,#00HMOVR3,#00HMOVP1,#0FFHMOVP3,#0FFHMOVP2,#0FFHMOVP0,#0FFHDISPLY:INCR0
CJNER0,#0AH,DISPLY1MOVR0,#0FFHINCR1
CJNER1,#0AH,DISPLY2MOVR1,#00HMOVP3,#0C0HINCR2
CJNER2,#0AH,DISPLY3MOVR2,#00HMOVP2,#0C0HINCR3
CJNER3,#0AH,DISPLY4SJMPSTARTDISPLY4:MOVA,R3ADDA,#1EHMOVCA,@A+PCMOVP0,ASJMPDISPLYDISPLY3:MOVA,R2ADDA,#16HMOVCA,@A+PCMOVP2,ASJMPDISPLYDISPLY2:MOVA,R1ADDA,#0EHMOVCA,@A+PCMOVP3,A
SJMPDISPLYDISPLY1:MOVA,R0ADDA,#06HMOVCA,@A+PCMOVP1,AACALLDELAYSJMPDISPLY
DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHDELAY:MOVR7,#0AHDELAY1:MOVR6,#0FFHDELAY2:MOVR5,#03HDELAY3:DJNZR5,DELAY3DJNZR6,DELAY2DJNZR7,DELAY1RETEND
74HC595四位稳定显示:1)最大数为9999的计数器ORG0000HAJMPMAINORG000BHAJMPCRT0ORG0020HMAIN:MOVR1,#33HMOVR2,#04HCLEAR:MOV@R1,#33HDECR1
DJNZR2,CLEARMOVSP,#60HMOVTMOD,#01HMOVTH0,#3CH
MOVTL0,#0B0HSETBEA
SETBET0SETBTR0
MOVR7,#1
MOVDPTR,#DTABLOOP:MOVR1,#33HMOVR2,#04HMOVR3,#08HMOVR4,#01HLOOP1:MOVA,R3MOVP2,ARRA
MOVR3,AMOVA,@R1
CJNER4,#00H,MODEXSH:LCALLDISLCALLDEL
DECR1
DJNZR2,LOOP1
AJMPLOOP
MODE:CJNEA,#00H,FHMOVR4,#01HMOVA,#0AHSJMPXSHFH:MOVR4,#00HSJMPXSHCRT0:DJNZR7,RRRMOVR7,#1INC30HMOVR0,30H
CJNER0,#0AH,RRRMOV30H,#00HINC31HMOVR0,31H
CJNER0,#0AH,RRRMOV31H,#00HINC32HMOVR0,32H
CJNER0,#0AH,RRRMOV32H,#00HINC33HMOVR0,33H
CJNER0,#0AH,RRRMOV33H,#00HRRR:MOVTH0,#3CHMOVTL0,#0B0HRETI
DIS:MOVCA,@A+DPTRMOVP0,ARET
DEL:MOVR6,#20DEL1:MOVR5,#150DEL2:DJNZR5,$DJNZR6,DEL1RETDTAB:DB
0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFHDB
88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHEND
2)最高位为零时,最高位不显示ORG0000HAJMPMAINORG000BHAJMPCRT0ORG0020HMAIN:MOVR1,#33HMOVR2,#04HCLEAR:MOV@R1,#00HDECR1
DJNZR2,CLEARMOVSP,#60HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBEASETBET0SETBTR0MOVR7,#1
MOVDPTR,#DTABLOOP:MOVR1,#33HMOVR2,#04HMOVR3,#08HLOOP1:MOVA,R3MOVP2,ARRAMOVR3,AMOVA,@R1LCALLDISLCALLDELDECR1
DJNZR2,LOOP1AJMPLOOPCRT0:DJNZR7,RRRMOVR7,#1MOVR0,#30HMOVR4,04HCON:INC@R0
CJNE@R0,#0AH,RRRMOV@R0,#00HINCR0
DJNZR4,CONRRR:MOVTH0,#3CHMOVTL0,#0B0HRETI
DIS:MOVCA,@A+DPTRMOVP0,ARET
DEL:MOVR6,#20DEL1:MOVR5,#150DEL2:DJNZR5,$DJNZR6,DEL1RET
DTAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHEND
3)最大数为256的计数器DATDATA30HBWDATA31HSHWDATA32HGWDATA33HORG0000HAJMPMAINORG000BHAJMPCOUNTORG0030HMAIN:MOVSP,#60HMOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0HSETBEASETBET0SETBTR0MOVR7,#2MOVDAT,#00HLOOP:LCALLCHANGEMOVP2,#01HMOVA,GWLCALLDISLCALLDELMOVP2,#02HMOVA,SHWLCALLDISLCALLDELMOVP2,#04HMOVA,BWLCALLDISLCALLDELMOVP2,#08HMOVA,#0AHLCALLDISLCALLDELAJMPLOOPCOUNT:DJNZR7,RRRMOVR7,#2INCDAT
RRR:MOVTH0,#3CHMOVTL0,#0B0HRETI
CHANGE:MOVA,DATMOVB,#100DIVABMOVBW,AMOVA,#10XCHA,BDIVABMOVSHW,AMOVGW,BRET
DIS:MOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ARET
DEL:MOVR6,#20DEL1:MOVR5,#150DEL2:DJNZR5,$DJNZR6,DEL1RET
TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFHEND
74LS4位静态数码显示:方法一:ORG0000HMOVR3,#04HMOVR0,#20HSTART:LCALLDISPLAYLCALLCOUNTLCALLDELAYSJMPSTARTCOUNT:INC@R0
CJNE@R0,#0AH,DONMOV@R0,#00HSHW:INCR0INC@R0
CJNE@R0,#0AH,DE1
MOV@R0,#00HBW:INCR0INC@R0
CJNE@R0,#0AH,DE2MOV@R0,#00HQW:INCR0INC@R0
CJNE@R0,#0AH,DE3MOV@R0,#00HDE3:DECR0DE2:DECR0DE1:DECR0DON:RET
DISPLAY:MOVSCON,#00HLOOP:MOVA,@R0ADDA,#0FHMOVCA,@A+PCMOVSBUF,AJNBTI,$CLRTIINCRDJNZR3,LOOPMOVR3,#04HMOVR0,#20HDON1:RET
DTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB77H,7CH,39H,5EH,79H,71H,00H,0F3H,76H,80H,40HDELAY:MOVR7,#50DELAY1:MOVR6,#100DELAY2:MOVR5,#20DJNZR5,$DJNZR6,DELAY2DJNZR7,DELAY1RETEND
方法二:ORG0000HAJMPMAINORG000BHAJMPCOUNTORG0020HMAIN:MOVR1,#30HMOVR2,#04HCLEAR:MOV@R1,#00HINCR1
DJNZR2,CLEARMOVSP,#60HMOVTMOD,#01HMOVTH0,#0B0HSETBEASETBET0SETBTR0MOVR3,#3
MOVDPTR,#DTABMOVSCON,#00HDISPLY:MOVR1,#30HMOVR2,#04HLOOP:MOVA,@R1
MOVCA,@A+DPTRMOVSBUF,AJNBTI,$CLRTIINCR1
DJNZR2,LOOPACALLDELSJMPLOOPCOUNT:DJNZR3,RRRMOVR3,#3MOVR0,#30HMOVR4,#04HCON:INC@R0
CJNE@R0,#0AH,RRRMOV@R0,#00HINCR0
DJNZR4,CONRRR:MOVTH0,#3CHMOVTL0,#0B0HRETI
DEL:MOVR6,#250DEL1:MOVR5,#250DEL2:DJNZR5,$DJNZR6,DEL1RET
DTAB:DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB77H,7CH,39H,5EH,79H,71H,00H,0F3H,76H,80H,40HEND
动态数码显示:
ORG0000HACALLSTART
START1:MOV@R0,#00HINCR0
DJNZR2,START1ACALLSTART2
COUNT:CJNE@R0,#0AH,ACALLDISMOV@R0,#00HINCR0INC@R0
CJNER0,#34H,COUNTACALLSTARTAJMPSTART1ACALLDIS:ACALLDISPLAYINC@R0AJMPCOUNTDISPLAY:ACALLSTARTMOVR4,#01HDISPLAY1:MOVA,@RMOVDPTR,#DTABMOVCA,@A+DPTRMOVP0,AINCR0MOVA,R3MOVP2,ARLA
MOVR3,AACALLDELAY
DJNZR2,DISPLAY1ACALLSTART
DJNZR4,DISPLAY1RETDTAB:DB
3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH
DB77H,7CH,39H,5EH,79H,71H,00H,0F3H,76H,80H,40HSTART:MOVR3,#0FEHSTART2:MOVR0,#34HMOVR2,#04HRET
DELAY:MOVR7,#088HDEL1:MOVR6,#88HDEL2:MOVR5,#01HDEL3:DJNZR5,DEL3DJNZR6,DEL2DJNZR7,DEL1RETEND
独立键盘加减清零数码显示:#include
#defineucharunsignedchar#defineuintunsignedintsbitkey1=P3^4;sbitkey2=P3^5;sbitkey3=P3^6;sbitkey4=P3^7;sbitdula=P2^6;sbitwela=P2^7;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};voiddelayms(uint);ucharnumt0,num;voiddisplay(numdis){ucharshi,ge;shi=numdis/10;ge=numdis%10;wela=1;P0=0xfe;wela=0;dula=1;
P0=table[shi];dula=0;P0=0xff;delayms(5);wela=1;P0=0xfd;wela=0;dula=1;
P0=table[ge];dula=0;P0=0xff;
delayms(5);}
voiddelayms(uintx){uinti,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);}voidinit(){TMOD=0x01;
TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;}
voidkeyscan(){if(key1==0){delayms(10);if(key1==0){num++;
if(num==60)num=0;
while(!key1);}}if(key2==0){delayms(10);if(key2==0){if(num==0)num=60;num--;
while(!key2);}}if(key3==0){delayms(10);if(key3==0){num=0;
while(!key2);}}if(key4==0){delayms(10);if(key4==0)
{while(!key4);TR0=~TR0;}}}voidmain(){init();while(1){keyscan();
display(num);}}
voidT0_time()interrupt1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;numt0++;
if(numt0==20){numt0=0;num++;
if(num==60)num=0;}}
矩阵键盘0到F显示:KEY_DATADATA30HORG0000H
MOVKEY_DATA,#10HAJMPMAINORG0030HMAIN:MOVSP,#60HLOOP:LCALLSCANMOVA,KEY_DATAMOVDPTR,#TABMOVCA,@A+DPTRMOVP0,ALCALLDELAJMPLOOP
SCAN:MOVA,#0FHMOVP1,AMOVA,P1
CJNEA,#0FH,KEYSCANRET
KEYSCAN:LCALLDELMOVR2,#7FHMOVR3,#4MOVR0,#00HKEYSM1:MOVA,R2MOVP1,ARRAMOVR2,AMOVA,P1ANLA,#0FH
CJNEA,#0FH,JSADDINCR0
DJNZR3,KEYSM1RET
JSADD:JBACC.0,JSADD1MOVA,#0AJMPJSADD4
JSADD1:JBACC.1,JSADD2MOVA,#4AJMPJSADD4
JSADD2:JBACC.2,JSADD3MOVA,#8AJMPJSADD4
JSADD3:JBACC.3,JSADD4MOVA,#12JSADD4:ADDA,R0
MOVKEY_DATA,ADEL:MOVR6,#50DEL1:MOVR5,#200DJNZR5,$DJNZR6,DEL1RET
TAB:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHEND
友情提示:本文中关于《单片机实训总结》给出的范例仅供您参考拓展思维使用,单片机实训总结:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。