资源描述:
《单片机课程设计报告-数字时钟》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、单片机课程设计报告题目:数字时钟专业班级:电子信息工程2班姓名:江奇峰、陈雪丰14设计题目数字时钟设计目的熟悉单片机的编程及应用了解单片机指令的应用掌握动态显示的原理掌握LED的原理掌握按键原理设计任务实现时钟的显示实现时钟的调整(只能加不能减)实现闹钟的显示实现闹钟的调整(只能加不能减)设计分工硬件部分:陈雪丰软件部分:江奇峰14一、功能能实现定时、时间的调整(只能加不能减)、闹钟的设定(只能加不能减),当闹钟按键按下就进入闹钟设定,再按下那个键就进入时间显示,并且闹钟响铃时间是10秒钟。其整个设计的电路图如下:其中显示的是8个8段LED显示,单片机是80C51,外部晶振是12MHZ
2、,其中和晶振连接的是两个47pF的电容。单片机的p3.2~p3.5作为地址总线起到控制作用,p3.7在电路中我用一个电阻代替,在实际中接喇叭,起到闹钟的作用。P0.0~p0.7作为数据总线,把单片机的信号输入到显示器上,p2.0~p2.7作为单片机的额数据总线,其作用在显示总起到位选的作用,决定8段LED的亮灭。最下面的那个是RESPACK-8排阻,在电路中防止输入到显示的电压很小,是为输出提供电源的装置,配合显示器的显示。在整个程序中时间的秒、分、时的计数分别存放在20H、21H、22H,闹钟的秒、分、时的计数分别存放在40H、41H、42H。我的电路图开始的时候是用14静态显示的,
3、现在用动态显示程序还是用的是静态的,所以在一些程序不一样。实现定时闹钟的程序有以下几个部分组成:二、流程图1、定时程序(时间的设定)其程序流程图如下:返回分钟和时钟的流程图和秒钟的一样(20H)+1(20H)是否等于5FH延时1SDA修正20H中的书(20H)+1开始NY141、调时间的流程图开始Y判断P3.2是否为60H判断P3.2是否为0判断P3.2是否为0(20H)+1NNYNN清零(20H)Y判断P3.3是否为60HY判断P3.3是否为0判断P3.3是否为0(21H)+1NNYNN清零(21H)Y判断P3.4是否为24H判断P3.4是否为0判断P3.4是否为0Y(22H)+1N
4、NYNN清零(22H)Y141、显示的流程图(因为显示的刚好是8个,所以不要去考虑左移的个数,直接跳转到初始值。开始提取(20H)的个位查询并送给p0延时50us左移p2提取(20H)的十位查询并送给p0延时50us返回141、闹钟设定开始(30H)清零判断p3.5是否为0判断p3.5是否为0和时间设置一样,把(20H)、(21H)、(22H)改成(40H)、(41H)、(42H)时间显示(30H)置1判断p3.5是否为0判断p3.5是否为0NYNYYN时间的设定结束NY14三、总程序ORG0000HMOVP0,#00HMOVP2,#00HMOVSP,#60HCLR20HCLR21HC
5、LR22HCLR40HCLR41HCLR42HMOVDPTR,#TABVV:MOVR6,#1MM:MOVR5,#4NN:MOVR4,#100BB:JNBP3.5,LPPSJMPLLLPP:JNBP3.5,LPP0SETB30HAAC:MOVR3,#1AAB:MOVR2,#4AAA:MOVR1,#100CC0:JNBP3.2,CC1;判断p3.2是否为按下SJMPDD0CC1:JNBP3.2,LPP1;判断p3.2是否松开,松开秒钟加1MOVA,40HADDA,#01HDAACJNEA,#60H,CC2CLRACC2:MOV40H,ADD0:JNBP3.3,DD1;判断p3.3是否按下S
6、JMPEE0DD1:JNBP3.3,LPP2;判断p3.3是否松开,松开分钟加1MOVA,41HADDA,#01HDAACJNEA,#60H,DD2CLRADD2:MOV41H,A14EE0:JNBP3.4,EE1;判断p3.4是否按下SJMPHH1EE1:JNBP3.4,LPP3;判断p3.4是否松开,松开时钟加1MOVA,42HADDA,#01HDAACJNEA,#24H,EE2CLRAEE2:MOV42H,AHH1:LCALLLPJNBP3.5,LP1DJNZR1,CC0DJNZR2,AAADJNZR3,AABLCALLB2SJMPAACLP1:JNBP3.5,LPP4LL:CL
7、R30HLCALLC0DJNZR4,BBDJNZR5,NNDJNZR6,MMLCALLB2SJMPVVLPP0:LCALLLPNOPNOPNOPSJMPLPPLPP1:LCALLLPNOPNOPNOPSJMPCC1LPP2:LCALLLPNOPNOPNOPSJMPDD1LPP3:LCALLLPNOPNOPNOP14SJMPEE1LPP4:LCALLLPNOPNOPNOPSJMPLP1C0:JNBP3.2,C1;判断p3.2是否为按下SJMPD0