资源描述:
《单片机系统实验》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、班级学号姓名实验项目:一、实验目的:单片机系统实验(1)学会程序的编写与调试,掌握子程序的设计与使用,熟悉屮断服务程序的设计及调用过程。(2)综合运用所学知识,进行单片机系统的开发编程二、实验内容:编程实现如下功能的倒计时秒表。⑴秒表可从59s〜Os循环运行。即每隔Is,数码管显示的秒数减1,减到Os时,再过Is,又回到59,重新从59开始减。⑵倒计时初值可通过键盘设置。按Key3(P3.4)键,数码管的十位加1,从0〜5循环变化;按Key4(P3.5)键,数码管的个位加1,从0〜9循环变化;(3)运行控制。按下Keyl(P3.2)键秒表开始运行;按下Ke
2、y2(P3.3)键秒表停止运行;三、实验说明及实验电路图、实验程序及分析#include#defineucharunsignedchar#defineuintunsignedint#dcfincswsmgdatPO#definegwsmgdatP2sbitkey3=P34;//数码管十位数据//数码管各位数据//按键调整各位0〜9ucharcodetornCA[]共阳数码管0~9{OxcO,0xf9,0xa4,OxbO,0x99,0x92,0x82,0xf8,0x80,0x90};//ucharsec5ms,seels,count,fla
3、g=l;//定义全局变量flag为标志位1开始0暂停intsecond二59,cur_sccond;//voidTimer0_lnit(void)//定时器0外部中断0,1初始化{TMOD=0X61;//01100001计数器方式2(8位自动重装初值)TH0=(65536-5000)/256;TLO=(65536-5000)%256;THl=0xFF;TL1二OxFF;EA=1;ETO=1;TRO=1;ET1=1;TRI二1;IT0=l;EXO=1;IT1=1;EX1=1;}//voidwbzdO()interrupt0//keyl外部0中断flag=1;
4、}//voidTimerO(void)interrupt1//定时器0进中断{THO=(65536-5000)/256;TLO=(65536-5000)%256;scc5ms=1;//标记count++;if(count二二200){count二0;seels二1;if(secls==l){seels二0;if(flag==l){second--;}if(second<0){second=59;}}}}//voidwbzd_l()interrupt2//key2外部1中断{if(flag==l)flag=0;}//voidTimerl()interrupt
5、3//key4计数器1中断{if(flag==l)flag=0;cur_second=second;cursecond二cursecond+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二OxFF;gwsmgdat二tem_CA[second];}}//void
6、main()TimerO_lnit();whl1e(1){smgdisplay();if(sec5ms==l)//5ms检测一次按键sec5ms二0;if(key3==0){if(flag==l){flag=0;}cursecond=second;cursecond二cur_second+l;if(cur_sccond二二60){cur_second二0;}second二cur_second;while(!key3);//检测按键是否放开}}实验原理单片机可以利用定时功能实现电子时钟的计时。设计时利用单片机的定时器作为时钟的基准,利用几个单元作为时、分、秒
7、的累计单元,秒到时,秒单元加1,直到59S时,分单元加1,依次类推,可完成年、月、日、时、分、秒的计时工作。提示:(1)秒信号的产生:可利用定时器来做。(设晶振频率12MHz)(2)计数:用一个变量保存计算值,每到1秒时间,该变量值减1,减到0后,就回到59。(3)计数的显示:因要显示数是两位数,只要把这个数除以10,得到商和余数就分别是十位和个位,分别送往两个数码管显示。(当十位为0时,可不要显示,即对十位的“0”要进行消隐处理。)(4)计时初值的调整:直接对变量操作,每按一次Key4键,对十位修改一次,注意显示值的范围是0〜5;同理,每按一次Key5键
8、,也要对个位值修改一次。设置完毕,要重新计算计算值,送冋相应的变量