2021年MCU实验报告--3-基于单片机的简易秒表设计制作_第1页
2021年MCU实验报告--3-基于单片机的简易秒表设计制作_第2页
2021年MCU实验报告--3-基于单片机的简易秒表设计制作_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、mcu实验报告-3-基于单片机的简易秒表设计制作项目二基于单片机的简易秒表设计制作一、实验目的和要求1、实验目的熟悉led数码管与单片机的接口电路及其设计方法,掌握动态显示方式及其典型的应用电路;掌握led八段数码管秒表显示器的程序编制方法。通过调试简易秒表整体程序,学会编制含led动态显示、定时器中断等多种功能的综合程序,初步掌握复杂应用程序的编制和调试技巧。2、实验要求a仿真试验,完成用数码管显示0-9或a-f并不断循环;b简单秒表的设计及实现,每过1s,led数码管显示的秒数加1,设计制作0-59s不断运行的秒表。二、实验仪器设备1、pc机(keil,proteus)3、面包板4、元器件

2、2、实验仿真板(用dpj.dll实验仿真板验证)三、实验步骤1、器件准备元器件清单列表元件名称at89s51晶振电容1数码管12mhz参数数量1112电阻1电阻2电容1其它元件名称参数数量2、硬件设计试验a仿真原理图试验b仿真原理图实验b根据电路原理图,对各个硬件模块在面包板上进行搭试。3、软件设计及调试1)、启动keil软件2)、源程序(供参考)试验acounterequ57h;计数器,显示程序通过它得知现正显示哪个数码管dispbufequ58h;显示缓冲区为58h-5dh试验b23)、调试程序a、根据程序确定调试目的,即调试时所需观察的内容结果。b、调试程序。4、固化程序将以上asm编译

3、生成hex文件,利用编程器将hex文件烧录到at89s51。5、秒表显示(照片)四、总结与体会扩展阅读简易秒表的制作简易秒表的制作1实训目的(1)利用单片机定时器中断和定时器计数方式实现秒、分定时。(2)通过led显示程序的调整,熟悉8155与8051,8155与led的接口技术,熟悉led动态显示的控制过程。(3)通过键盘程序的调整,熟悉8155与矩阵式键盘的接口技术,熟悉键盘扫描原理。(4)通过阅读和调试简易秒表整体程序,学会如何编制含led动态显示、键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。2实训设备与器件(1)实训设备单片机开发系统、微机。(2)实训器

4、件实训电路板1套。3实训步骤与要求(1)要求利用实训电路板,以8位led右边2位显示秒,左边6位显示0,实现秒表计时显示。以44矩阵键盘的ke0、ke1、ke2等3键分别实现启动、停止、清零等功能。(2)方法用单片机定时器t0中断方式,实现1秒定时;利用单片机定时器1方式3计数,实现60秒计数。用动态显示方式实现秒表计时显示,用键盘扫描方式取得ke0、ke1、ke2的键值,用键盘处理程序实现秒表的启动、停止、清零等功能。(3)实验线路分析采用实训电路板,其原理图参见附录。8位led显示的位码由8155的pa口输出,段码由8155的pb口输出,pb口线与led之间接有200限流电阻,led为共阴

5、极数码管,led显示方式为动态显示方式。44矩阵键盘的行线经1k电阻上拉后与8155pc口的pc0pc3口线相连,列线与8155pa口的pa0pa3口线相连。8155的控制口地址为4400h,pa口地址为4401h,pb口地址为4402h,pc口地址为4403h。系统本采用10592mhz的晶振,本实训应改为12mhz晶振,以方便定时。(4)软件设计软件整体设计思路是以键盘扫描和键盘处理作为主程序,led动态显示作为子程序。二者间的联系是主程序查询有无按键,无按键时,调用二次led动态显示子程序(约延时8ms)后再回到按键查询状态,不断循环;有按键时,led动态显示子程序作为按键防抖延时被连续

6、调用二次(约延时16ms),待按键处理程序执行完后,再回到按键查询状态,同时兼顾了按键扫描取值的准确性和led动态显示的稳定性。秒定时采用定时器t0中断方式进行,60秒计数由定时器1采用方式3完成,中断及计数的开启与关闭受控于按键处理程序。由上述设计思路可设计出软件流程图如图1所示。(5)程序编制编程时置ke0键为“启动”,置ke1键为“停止”,置ke2键为“清零”,因按键较少,在处理按键值时未采用散转指令“jmp”,而是采用条件转移指令“cjne”,每条指令后紧跟着一条无条件跳转指令“ajmp”,转至相应的按键处理程序,如不是上述3个按键值则跳回按键查询状态。8位led显示的数据由显示缓冲区

7、30h37h单元中的数据决定,顺序是从左至右,动态显示时,每位显示持续时间为1ms,1ms延时由软件实现,8位显示约耗时8ms。主程序、按键查询子程序采用第0组工作寄存器,显示子程序采用第1组工作寄存器。1秒定时采用定时器t0方式1中断,每50ms中断一次,用21h做50ms计数单元,每20次为一个循环,计满20次,60秒计数单元(20h)计数1次。60秒计数采用定时器t1方式2计数,计数脉冲采用软件置位、复位p5口的方法实现,用20h单元做60秒计数单元,如定时器t1溢出,则20h单元被清零,20h单元的数据采用十进制计数,该数据被拆成个位和十位两个数据后分别送至显示缓冲区的30h、31h单

8、元。图1简易秒表软件流程图按照上述思路可编制源程序如下org0000hajmpmainorg000bhajmpcont;主程序;初始化程序mainmovtmod,#61h;置t0方式1定时,t1方式2计数movth0,#3ch;t0置初值movtl0,#0b0hmovth1,#0c4h;t1置初值movtl1,#0c4hmovdptr,#4400h;8155控制口地址送dptrmova,#43h;设置8155工作方式字movxdptr,a;设置pa、pb口输出,pc口输入mov20h,#00h;60秒计数单元置初值mov21h,#14h;50ms计数单元置初值movsp,#3fh;堆栈指针置初

9、值movr2,#08h;led待显示位数送r2movr0,#30h;显示缓冲区首址送r0starmovr0,#00h;显示缓冲区清零incr0djnzr2,starclra;累加器清零;键盘查询程序keyacallks;调按键查询子程序判是否有键按下jnzk1;有键按下转移acalldisp;无键按下,调显示子程序延时ajmpkey;继续查询按键;键盘扫描程序k1acalldisp;键盘去抖延时acalldispacallks;再次判别是否有键按下jnzk2;有键按下转移ajmpkey;无按键,误读,继续查询按键k2movr3,#0feh;首列扫描字送r3movr4,#00h;首列号送r4k3

10、movdptr,#4401h;pa口地址送dptr,开始列扫描mova,r3movxdptr,a;列扫描字送pa口incdptr;指向pc口incdptrmovxa,dptr;读取行扫描值jbacc.0,l1;第0行无键按下,转查第1行mova,#00h;第0行有键按下,行首键号送aajmplk;转求键号l1jbacc.1,l2;第1行无键按下,转查第2行mova,#08h;第1行有键按下,行首键号送aajmplk;转求键号l2jbacc.2,l3;第2行无键按下,转查第3行mova,#10h;第2行有键按下,行首键号送aajmplk;转求键号l3jbacc.3,next;第3行无键按下,转查

11、下一列mova,#18h;第3行有键按下,行首键号送aajmplklkadda,r4;形成键码送apushacc;键码入栈保护k4acalldispacallks;等待键释放jnzk4;未释放,等待popacc;键释放,弹栈送aajmppr;转键盘处理程序nextincr4;修改列号mova,r3jnbacc.3,key;4列扫描完返回按键查询状态rla;未扫描完,改为下列扫描字movr3,a;扫描字暂存r3ajmpk3;转列扫描程序;键盘处理程序prcjnea,#00h,pr01;不是ke0键码,转ke1键ajmpke0;转ke0键处理程序pr01cjnea,#01h,pr02;不是ke1键

12、码,转ke2键ajmpke1;转ke1键处理程序pr02cjnea,#02h,pr03;不是ke2键码,返回按键查询ajmpke2;转ke2键处理程序pr03ajmpkeyke0setbtr0;启动定时器t0setbtr1;启动定时器t1setbet0;允许定时器t0中断setbea;开中断ajmpkey;返回键盘查询状态ke1clrea;关中断clret0;禁止定时器t0中断clrtr1;关定时器t1clrtr0;关定时器t0ajmpkeyke2clrea;关中断ajmpmain;返回主程序进行初始化;按键查询子程序ksmovdptr,#4401h;置8155pa口地址mova,#00hmo

13、vxdptr,a;全扫描字#00h送pa口incdptr;指向pc口incdptrmovxa,dptr;读入pc口状态3cpla;变正逻辑,高电平表示有键按下anla,#0fh;屏蔽高4位ret;返回,a0表示有键按下;led动态显示子程序disppushacc;a入栈保护setbrs0;保护第0组工作寄存器,启用第1组工作寄存器movr2,#08h;led待显示位数送r2movr1,#00h;设定显示时间movr3,#7fh;选中最右端ledmovr0,#30h;显示缓冲区首址送r0mova,r0;秒显示个位送adisp1movdptr,#tab;指向字形表首址movca,a+dptr;查表

14、取得字形码movdptr,#4402h;指向8155pb口(段码口)movxdptr,a;字形码送pb口mova,r3;取位选字movdptr,#4401h;指向8155pa口(位选口)movxdptr,a;位码送pa口djnzr1,$;延时0.5msdjnzr1,$;延时0.5msrra;位选字移位movr3,a;移位后的位选字送r3incr0;指向下一位缓冲区地址mova,r0;缓冲区数据送adjnzr2,disp1;未扫描完,继续循环clrrs0;恢复第0组工作寄存器popacc;a弹栈,恢复现场rettabdb3fh,06h,5bh,4fh,66h;共阴极led字形表db6dh,7dh

15、,07h,7fh,6fh;定时器中断服务程序contpushacc;保护现场movth0,#3ch;定时器t1重置初值movtl0,#0b0hmova,20h;秒计数器送aajmpcont1renajmpren1cont1djnz21h,ren;1秒定时未到,中断返回mov21h,#14h;重置50ms计数初值clrp5;软件产生定时器t1计数脉冲nopnopsetbp5inca;1秒计数值加1daa;换算为10进制计数jbctf1,cont2;60秒到,转清零cont3mov20h,a;计数值送60秒计数单元20hanla,#0fh;屏蔽高4位mov30h,a;秒表个位待显示数据送显示缓冲区

16、mova,20hswapa;60秒计数单元高、低4位数据互换anla,#0fh;屏蔽高4位mov31h,a;秒表十位待显示数据送显示缓冲区ajmpren1cont2mova,#00hajmpcont3ren1popacc;恢复现场ret;中断返回end4实训总结与分析(1)例4与本实训相比,二者均是秒表,但差别较大。前者采用发光二极管显示,后者采用七段码led(俗称数码管),后者显示更直观;前者计时采用软件延时,后者采用定时器中断,后者更准确;前者功能单一,程序一旦开始运行,中间过程无法控制,后者功能齐全,可随时启动、停止、清零,后者智能化程度更高。综上所述,后者更实用。(2)设计、调试大型程

17、序时,需先根据要求划分模块,优化结构;再根据各模块特点确定何为主程序,何为子程序,何为中断服务程序,相互间如何调用;再根据各模块性质和功能将各模块细化,设计出程序流程图;最后才根据各模块流程图编制具体程序。调试时应先调主程序,实现最基本最主要的功能,在此基础上再将各模块功能往主程序上堆砌,直至各模块联调、统调,实现全部功能。本实训将整个程序划分为键盘程序,动态显示程序,秒计时程序三大模块,根据各自的特点确定键盘程序为主程序,动态显示程序为子程序,秒计时程序为定时器中断服务程序。主程序又细分为初始化程序,键盘查询程序,键盘扫描程序,键盘处理程序四大部分。三大模块之间的关系是键盘程序在无键按下时,

18、不断调用动态显示子程序;在有键按下时,先调用动态显示子程序消抖,再进入键盘处理程序,控制中断服务程序的运行;处理完毕后,再不断调用动态显示子程序。经上述处理后,三大模块运行协调一致,既保持了动态显示的稳定性,又保持了键盘的可靠性,还保持了秒计时的准确性,较好地实现了全部功能。(3)本实训只用到实验线路板8位led显示中的两位,只用到44键盘16个按键中的3个,因此,其功能还有较大的扩展空间。只要将上述程序稍加改动即可实现秒、分、时、日显示,并可作全方位修改的实时时钟。如增加led显示位数或将显示改为lcd显示模块,可实现年、月、周、日、时、分、秒显示。实验13简易秒表的制作(一)实验说明1利用

19、单片机定时器中断和定时器计数方式实现秒、分定时。2通过led显示程序的调整,熟悉8051,led的接口技术,熟悉led动态显示的控制过程。3通过键盘程序的调整,熟悉键盘扫描原理。4学会如何编制含led动态显示,键盘扫描和定时器中断等多种功能的综合程序,初步体会大型程序的编制和调试技巧。5以k1,k5,k93个键分别实现启动、停止、清零等功能。用动态显示方式实现秒表计时显示。(二)实验连线表连接1连接2连接3连接4连接5a01+5v/gndp0p1p2-p4gnd开始a05+5v/gndsclsdaa08+5v/gndkr1-kr3kc1(三)程序流程图定时器0中断服务程序恢复现场显示时间定时器

20、置初值保护现场主程序流程系统初始化显示全0初始时间键盘扫描调整时间值y启动键?ny停止键?nn清零键?y关中断关闭时器关中断启动定时器开中中断返回1234+5vdr1r2r31k1k1k实验13原理图+5v1dk1k2k3r4510x838383838383u1scl1sda23456781312151431b191891716p0/tp1/tp2p3p4p5p6p7p3/int1p2int0p5/t1p4/t0ea/vpxlat1xlat2resetp7/rdp6/wrmcu8052p0.0/ad0p0.1/ad1p0.2/ad2p0.3/ad3p0.4/ad4p0.5/ad5p0.6/ad6p0.7/ad7p0p1p2p3p4p5p6p7p0/rxdp1/txdale/ppsen39383736353433322122232425262728101130291a101b91c71d51e41f21g11dp6abacfbdgecfedgdpdpla11a1b1c1d1e1f1g1dp2a102b92c72d52e42f22g12dp6abacfbdgecfedgdpdpla23a103b93c73d53e43f23g13dp6abacfbdgecfedgdpdpla34a104b94c74d54e44f24g14dp6abacfbdgecfedg

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论