电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

单片机系统实验报告VIP免费

单片机系统实验报告_第1页
1/5
单片机系统实验报告_第2页
2/5
单片机系统实验报告_第3页
3/5
一、实验目的:(1)学会程序的编写与调试,掌握子程序的设计与使用,熟悉中断服务程序的设计及调用过程。(2)综合运用所学知识,进行单片机系统的开发编程二、实验内容:编程实现如下功能的倒计时秒表。⑴秒表可从59s~0s循环运行。即每隔1s,数码管显示的秒数减1,减到0s时,再过1s,又回到59,重新从59开始减。⑵倒计时初值可通过键盘设置。按Key3(P3.4)键,数码管的十位加1,从0~5循环变化;按Key4(P3.5)键,数码管的个位加1,从0~9循环变化;⑶运行控制。按下Key1(P3.2)键秒表开始运行;按下Key2(P3.3)键秒表停止运行;三、实验说明及实验电路图四、实验程序及分析#include#defineucharunsignedchar#defineuintunsignedint#defineswsmgdatP0//数码管十位数据#definegwsmgdatP2//数码管各位数据sbitkey3=P3^4;//按键调整各位0~9ucharcodetem_CA[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳数码管0~9ucharsec5ms,sec1s,count,flag=1;//定义全局变量flag为标志位1开始0暂停intsecond=59,cur_second;//--------------------------------voidTimer0_Init(void)//定时器0外部中断0,1初始化{TMOD=0X61;//01100001计数器方式2(8位自动重装初值)TH0=(65536-5000)/256;TL0=(65536-5000)%256;TH1=0xFF;TL1=0xFF;EA=1;ET0=1;TR0=1;ET1=1;TR1=1;IT0=1;EX0=1;IT1=1;EX1=1;}//--------------------------------------voidwbzd_0()interrupt0//key1外部0中断{flag=1;}//-------------------------------------voidTimer0(void)interrupt1//定时器0进中断{TH0=(65536-5000)/256;TL0=(65536-5000)%256;sec5ms=1;//标记count++;if(count==200){count=0;sec1s=1;if(sec1s==1){sec1s=0;if(flag==1){second--;}if(second<0){second=59;}}}}//---------------------------------voidwbzd_1()interrupt2//key2外部1中断{if(flag==1)flag=0;}//---------------------------------voidTimer_1()interrupt3//key4计数器1中断{if(flag==1)flag=0;cur_second=second;cur_second=cur_second+10;if(cur_second>=60)cur_second=cur_second-60;second=cur_second;}//----------------------------------voidsmg_display()//定义两位数码管{if(second>=10){swsmgdat=tem_CA[second/10];gwsmgdat=tem_CA[second%10];}else{swsmgdat=0xFF;gwsmgdat=tem_CA[second];}}//------------------------------voidmain(){Timer0_Init();while(1){smg_display();if(sec5ms==1)//5ms检测一次按键{sec5ms=0;if(key3==0){if(flag==1){flag=0;}cur_second=second;cur_second=cur_second+1;if(cur_second==60){cur_second=0;}second=cur_second;while(!key3);//检测按键是否放开}}}}实验原理单片机可以利用定时功能实现电子时钟的计时。设计时利用单片机的定时器作为时钟的基准,利用几个单元作为时、分、秒的累计单元,秒到时,秒单元加l,直到59S时,分单元加1,依次类推,可完成年、月、日、时、分、秒的计时工作。提示:(1)秒信号的产生:可利用定时器来做。(设晶振频率12MHz)(2)计数:用一个变量保存计算值,每到1秒时间,该变量值减1,减到0后,就回到59。(3)计数的显示:因要显示数是两位数,只要把这个数除以10,得到商和余数就分别是十位和个位,分别送往两个数码管显示。(当十位为0时,可不要显示,即对十位的“0”要进行消隐处理。)(4)计时初值的调整:直接对变量操作,每按一次Key4键,对十位修改一次,注意显示值的范围是0~5;同理,每按一次Key5键,也要对个位值修改一次。设置完毕,要重新计算计算值,送回相应的变量中。(5)运行与停止:可设置一标志位,按Key2键时,对其置位,表示要运行;按Key3键时,对其清0,表示要停止。五、实验步骤及实验现象步骤:先画好电路图,确认无误后,依据电路图以及要实现的功能开始写程序,之后进行调试。现象:刚开始时,数码管显示值从59~0循环,时间间隔为1秒。4个按键功能:Key1为开始键,key2为暂停键,key3为个位加1,key4为十位加1。六、问题分析及实验心得本次实验两个定时器,两个外部中断源全开。定时器T0用来定时时间1s的...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

单片机系统实验报告

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部