一、实验目的:(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