资源描述:
《课程设计报告宗丽丽.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、课程设计报告课程:单片机与接口技术姓名:宗丽丽班级:09通信1教师:高雪飞河北联合大学信息工程学院一、设计名称:基于AT89C51的数字钟的设计二、设计目的及要求:利用51单片机设计一个电子时钟,要求能够实时显示时间,并可以通过按键校时。时间显示格式:【hh:mm】三、设计原理说明:(1)STC89C52RC单片机具有低价,高速(0-80M)、高可靠性的优点,是具有真正的看门狗的MCU,缺省时为关闭,启动后无法关闭,可放心省去外部看门狗电路。内部FLASH可擦写100000次以上,由于出厂时就已经加密且无法解密,因此具有很好的
2、保密性。(2)DS12887内部自带晶振和电源,可省去外部晶振电路,并可在没有外部电源的情况下工作十年。通过MOT引脚外接电源或地可分别选择MOTOROLA和INTEL两种时序。模式。具有24小时和12小时两种计时模式,其中12小时模式具有AM和PM提示。SQW引脚为可编程方波输出端,通过设置寄存器A的低四位和寄存器B的SQWE位可输出不同频率的方波。本设计中采用了INTEL时序和24小时制,没有用到方波输出。另外,初次使用DS12887时必须先进行初始化,即写入指令启动计时,设定时间。DS12887上电后延时200ms时间才
3、可进行初始化操作。四、硬件设计图:讲解:1、时钟显示用七段LED数码管来实现,采用共阳管和PNP驱动方式。PNP工作于开关状态,基极通过1K的电阻连到单片机的P2口。因为四位管的段被并接只能通过动态扫描的方式来显示,即利用管子的余晖和人眼的视觉残留实现六位管子在“同一时间”显示不同的值,而扫描这是靠位选的轮流有效实现。2.校时、定时此部分由3个按键控制,校时键:进入、退出校时状态,选择被校位。(被校位要闪烁显示)第1次按下:进入校时状态,选择小时的十位为被校位;第2次按下:选择小时的个位为被校位;第3次按下:选择分钟的十位为被
4、校位;第4次按下:选择分钟的个位为被校位;第4次按下:退出校时状态。再1次被按下则重新开始进入校时状态……校时调整键:被校位加减调整。3.单片机最小系统本实验采用AT89C52RC单片机,指令系统完全与51兼容。其最小系统包含电源电路、晶振电路、复位电路。其中晶振频率为12MHz,震荡部分电容为30pF的瓷片电容。复位电路采用图示的兼有上电复位和按键复位功能的方式,其中的电容为10uF电解电容。五、软件设计流程图:源程序:;使用DS12C887的电子钟程序HOUR1EQU30H;30H作为小时的十位数存储单元HOUR2EQU3
5、1H;31H作为小时的个位数存储单元MINUTE1EQU32H;32H作为分钟的十位数存储单元MINUTE2EQU33H;33H作为分钟的个位数存储单元WEISHUEQU21H;21H存放被校位数,1小时十位,2小时个位,3分钟十位,4分钟个位ADJUSTBIT23H.0;校时标志,23H.0=1正在校时,23H.0=0未校时FLASH0BIT22H.0;校时位闪耀标志,22H.0=1,送亮,22H.0=0,送黑FLASH1BIT22H.1;秒点闪耀标志;20H存放T0溢出中断次数,每中断5次去处理被校位闪耀;2CH单元为键值
6、暂存单元,按键时2CH单元为键值,处理键值后将2CH清0,如果按键时2CH单元不为0,中断返回,待按键结束时去处理键值.;40H,41H,42H,43H分别存放小时高位,小时低位,分钟高位,分钟低位的最大数2,9,5,9ORG0000HLJMPMAIN;转主程序ORG000BHLJMPT0ZD;转T0中断服务程序,每50ms中断一次ORG0013HLJMPINT1ZD;转INT1中断服务程序,DS12C887每隔1秒引起一次INT1中断ORG00E0HTAB:DB18H,7EH,94H,34H,72H;0,1,2,3,4的显示
7、字形码DB31H,11H,7CH,10H,30H;5,6,7,8,9的显示字形码DB0FFH;全黑的显示字形ORG0100HMAIN:MOVSP,#60H;设置堆栈MOVR0,#50H;0到50H单元清0CLRAKK:MOV@R0,ADJNZR0,KKMOVR3,#20;延时200ms等待DS12C887启动KK1:LCALLDEL10mSDJNZR3,KK1MOVDPH,#00H;DS12C887初始化MOVDPL,#0AH;寄存器AMOVA,#20H;初始化为20HMOVX@DPTR,AMOVDPL,#0cH;读C寄存器(
8、必须)MOVXA,@DPTRMOVDPL,#0BH;寄存器BMOVA,#22H;初始化为1AHMOVX@DPTR,AMOVDPL,#05H;时,分,秒报警单元0001H,0003H,0005H单元送FFH,1秒1次中断(要引起中断就必须有)MOVA,#0FFHMOVX@DPT