基于51的电子闹钟设计报告(附原理图、PCB图、程序)

合集下载

C51单片机实现电子闹钟

C51单片机实现电子闹钟

课程名称:单片机原理与接口技术实践设计课题:基于MCS 51单片机实现电子闹钟功能的设计学院:电子与信息工程学院专业:通信工程小组成员:电子闹钟在科学技术高度发展的今天,千家万户都少不了它,所以很多家庭个人都需要有一个电子闹钟,为人们提供报时方便,但普通电子闹钟不够方便实用。

本文给出了一种基于MCS51单片机实现电子闹钟功能的设计方法,从而给人们带来更为方便的工作与生活。

一.电子闹钟简介我们设计的电子闹钟是以MCS51单片机中的计时器作为时钟,用8位数码管显示当前时间,并且可以设置闹钟时间,并在设置的时间点发出闹铃。

简易闹钟具有以下功能:1.时钟能准确地走时,并可以通过数码管进行显示2.复位后可以进行当前时间的设置3.可以随意设置闹钟时间,闹钟会在设置时间响铃整个系统的任务要求:1)输入数字按键的功能。

保证数字的输入。

2)复位电路的功能。

所有时间回到初始化状态,用于启动设定时间参数(调时或设定闹钟时间);3)显示电路的功能。

当输入数字时显示24小时时间功能。

4)闹铃功能设置闹铃的时间后.能按设置好的时间准时闹铃。

二.系统方案的设计要求根据以上各模块并结合显示屏的功能及元器件材料的情况,决定采用AT89C51为内核显示设计方案。

先进行系统的整体规划确定整个系统的功能,然后按照每个功能的具体要求,进行各个模块的实物设计并逐个调试,待全部通过后,进行整个系统的联调,最终实现一个完整的系统。

整个系统的设计步骤如下:在单片机最小系统的基础上,完成按键电路和复位电路的设计。

完成显示电路、数字按键、单片机时钟电路。

Ⅰ硬件设计系统硬件的设计可以根据系统的各个功能,把整个系统划分成若干个模块,分别对这些模块来进行设计,然后在通过单片机程序来实现对各个硬件模块功能的调度。

本系统涉及到的硬件模块有:按键电路、数码管显示电路、单片机时钟电路、蜂鸣器电路。

各部分实现功能如下:按键电路:提供按键信号。

单片机时钟电路、复位电路:提供内部时钟。

《基于51单片机多功能电子时钟设计报告》

《基于51单片机多功能电子时钟设计报告》

单片机课程设计报告多功能电子数字钟姓名:学号:班级:指导教师:目录一课程设计题目-------------------------------- 3 二电路设计--------------------------------------- 4 三程序总体设计思路概述------------------- 5 四各模块程序设计及流程图---------------- 6 五程序及程序说明见附录------------------- ** 六课程设计心得及体会---------------------- 11 七参考资料--------------------------------------- 12一题目及要求本次单片机课程设计在Proteus软件仿真平台下实现,完成电路设计连接,编程、调试,仿真出实验结果。

具体要如下:用8051单片机设计扩展6位数码管的静态或动态显示电路,再连接几个按键和一个蜂鸣器报警电路,设计出一个多功能电子钟,实现以下功能:(1)走时(能实现时分秒,年月日的计时)(2)显示(分屏切换显示时分秒和年月日,修改时能定位闪烁显示)(3)校时(能用按键修改和校准时钟)(4)定时报警(能定点报时)本次课程设计要求每个学生使用Proteus仿真软件独立设计制作出电路图、完成程序设计和系统仿真调试,验收时能操作演示。

最后验收检查结果,评定成绩分为:(1)完成“走时+显示+秒闪”功能----及格(2)完成“校时修改”功能----中等(3)完成“校时修改位闪”----良好(4)完成“定点报警”功能,且使用资源少----优秀3二电路设计(电路设计图见附件电路图)(1)采用89C51型号单片机(2)采用8位共阴数码管(3)因为单片机输出高电平时输出的电流不足以驱动数码管,所以在P0口与8位数码管之间加74LS373来驱动数码管(4)P2口与数码管选择位直接加74LS138译码器(5)蜂鸣器接P3.7口。

基于51单片机制作电子时钟实训报告

基于51单片机制作电子时钟实训报告

绪论单片机应用简述.................................... 电子时钟简介...................................... 电子时钟的基本特点................................ 任务要求.........................................设计方案.........................................控制系统的硬件设计................................芯片的选择....................................... AT89S51的功能概述............................... AT89S51引脚功能说明(附引脚图)................... LED数码管显示电路................................ 硬件设计及元器件技术说明电子元器件技术说明………. 控制系统的软件设计................................ 程序编程......................................... 流程图........................................... 测试调试........................................... 总结...............................................单片机应用简述目前,单片机正朝着高性能和多品种方向发展趋势是进一步向着CMOS化、低功耗、小体积,大容量、高性能、低价格和外围电路内装化等几个方面发展。

单片机应用的重要意义还在于,它从根本上改变了传统的控制系统设计思想和设计方法。

在以前,是必须由模拟或是数字电路实现的大部分功能的,而现在已经能用单片机通过软件的方法来实现了。

51单片机数字钟实验(原理图及程序)

51单片机数字钟实验(原理图及程序)

51单片机数字钟实验(原理图及程序)1.实验任务(1.开机时,显示12:00:00的时间开始计时;(2.P0.0/AD0控制“秒”的调整,每按一次加1秒;(3.P0.1/AD1控制“分”的调整,每按一次加1分;(4.P0.2/AD2控制“时”的调整,每按一次加1个小时;2.电路原理图图4.20.13.系统板上硬件连线(1.把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上;(2.把“单片机系统:区域中的P3.0-P3.7端口用8芯排线连接到“动态数码显示”区域中的S1-S8端口上;(3.把“单片机系统”区域中的P0.0/AD0、P0.1/AD1、P0.2/AD2端口分别用导线连接到“独立式键盘”区域中的SP3、SP2、SP1端口上;4.相关基本知识(1.动态数码显示的方法(2.独立式按键识别过程(3.“时”,“分”,“秒”数据送出显示处理方法5.程序框图6.汇编源程序SECOND EQU 30HMINITE EQU 31HHOUR EQU 32HHOURK BIT P0.0MINITEK BIT P0.1SECONDK BIT P0.2DISPBUF EQU 40HDISPBIT EQU 48HT2SCNTA EQU 49HT2SCNTB EQU 4AHTEMP EQU 4BHORG 00HLJMP STARTORG 0BHSTART: MOV SECOND,#00HMOV MINITE,#00HMOV HOUR,#12MOV DISPBIT,#00HMOV T2SCNTA,#00HMOV T2SCNTB,#00HMOV TEMP,#0FEHLCALL DISPMOV TMOD,#01HMOV TH0,#(65536-2000) / 256 MOV TL0,#(65536-2000) MOD 256 SETB TR0SETB ET0SETB EAWT: JB SECONDK,NK1LCALL DELY10MSJB SECONDK,NK1INC SECONDMOV A,SECONDCJNE A,#60,NS60MOV SECOND,#00HNS60: LCALL DISPJNB SECONDK,$NK1: JB MINITEK,NK2LCALL DELY10MSJB MINITEK,NK2INC MINITECJNE A,#60,NM60 MOV MINITE,#00H NM60: LCALL DISPJNB MINITEK,$ NK2: JB HOURK,NK3LCALL DELY10MS JB HOURK,NK3INC HOURMOV A,HOURCJNE A,#24,NH24 MOV HOUR,#00H NH24: LCALL DISPJNB HOURK,$NK3: LJMP WTDELY10MS:MOV R6,#10D1: MOV R7,#248DJNZ R7,$DJNZ R6,D1RETDISP:MOV A,#DISPBUF ADD A,#8DEC AMOV R1,AMOV A,HOURMOV B,#10MOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1MOV A,#10MOV@R1,ADEC R1MOV A,MINITE MOV B,#10DIV ABMOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1MOV A,#10MOV@R1,ADEC R1MOV A,SECOND MOV B,#10DIV ABMOV @R1,ADEC R1MOV A,BMOV @R1,ADEC R1INT_T0:MOV TH0,#(65536-2000) / 256 MOV TL0,#(65536-2000) MOD 256 MOV A,#DISPBUFADD A,DISPBITMOV R0,AMOV A,@R0MOV DPTR,#TABLEMOVC A,@A+DPTRMOV P1,AMOV A,DISPBITMOV DPTR,#TABMOVC A,@A+DPTRMOV P3,AINC DISPBITMOV A,DISPBITCJNE A,#08H,KNAMOV DISPBIT,#00HKNA: INC T2SCNTAMOV A,T2SCNTACJNE A,#100,DONEMOV T2SCNTA,#00HINC T2SCNTBMOV A,T2SCNTBCJNE A,#05H,DONEMOV T2SCNTB,#00HINC SECONDMOV A,SECONDCJNE A,#60,NEXTMOV SECOND,#00HINC MINITEMOV A,MINITECJNE A,#60,NEXTMOV MINITE,#00HINC HOURMOV A,HOURCJNE A,#24,NEXTMOV HOUR,#00HNEXT: LCALL DISPDONE: RETITABLE: DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H TAB: DB 0FEH,0FDH,0FBH,0F7H,0EFH,0DFH,0BFH,07FHEND7.C语言源程序#include <AT89X51.H>unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00}; unsigned char dispbitcode[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char dispbuf[8]={0,0,16,0,0,16,0,0};unsigned char dispbitcnt;unsigned char second;unsigned char minite;unsigned char hour;unsigned int tcnt;unsigned char mstcnt;unsigned char i,j;void main(void){TMOD=0x02;TH0=0x06;TL0=0x06;TR0=1;ET0=1;EA=1;while(1){if(P0_0==0){for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_0==0){second++;if(second==60){second=0;}dispbuf[0]=second%10; dispbuf[1]=second/10; while(P0_0==0);}}if(P0_1==0){for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_1==0){minite++;if(minite==60){minite=0;}dispbuf[3]=minite%10; dispbuf[4]=minite/10; while(P0_1==0);}}if(P0_2==0){for(i=5;i>0;i--)for(j=248;j>0;j--);if(P0_2==0){hour++;if(hour==24){hour=0;}dispbuf[6]=hour%10;dispbuf[7]=hour/10;while(P0_2==0);}}}}void t0(void) interrupt 1 using 0{mstcnt++;if(mstcnt==8){mstcnt=0;P1=dispcode[dispbuf[dispbitcnt]]; P3=dispbitcode[dispbitcnt];dispbitcnt++;if(dispbitcnt==8){dispbitcnt=0;}}tcnt++;if(tcnt==4000){tcnt=0;second++;if(second==60){second=0;minite++;if(minite==60){minite=0;hour++;if(hour==24) {hour=0; }}}dispbuf[0]=second%10; dispbuf[1]=second/10; dispbuf[3]=minite%10; dispbuf[4]=minite/10; dispbuf[6]=hour%10; dispbuf[7]=hour/10; }}。

基于MCS51单片机的闹钟提醒器设计报告

基于MCS51单片机的闹钟提醒器设计报告

成绩课程论文题目:基于MCS51单片机的闹钟提醒器设计报告目录一、设计方案选定: (3)1.1 前言 (3)1.2 实验目的 (3)1.3总体设计要求 (3)1.3.1、基本要求 (3)1.3.2、自由发挥部分 (4)1.4 方案选定 (4)二、硬件电路设计 (4)2.1 AT89C52 (4)2.2 复位电路 (5)2.3 晶振电路 (5)2.4 时钟显示 (6)2.4.1 LCD1602 (6)2.4.2 DS1302: (6)2.5 程序框图 (7)2.6 基本电路及工作原理 (8)三、软件设计和仿真 (8)3.1 软件设计 (9)3.2 Proteus仿真 (25)四、课程设计体会 (27)参考文献 (28)基于MCS51单片机的闹钟提醒器学生:陈浩敏指导教师:张水锋电气信息工程学院电子信息工程专业一、设计方案选定:1.1 前言:单片计算机即单片微型计算机,(Single-Chip Microcomputer)。

是集CPU ,RAM ,ROM,定时,计数和多种接口于一体的微控制器。

他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。

而51单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

基于单片机的定时和控制装置在许多行业有着广泛的应用。

而数字定时闹钟是其中最基本,也是最有代表性的一个实例。

数字定时闹钟的设计方法有许多种,例如,可以用中小规模集成电路组成数字定时闹钟,也可以利用专用的时钟芯片配以显示电路及其所需要的外围电路组成数字定时闹钟,还可以利用单片机来实现数字定时闹钟。

这些方法都各有其特点,其中,利用单片机来实现数字定时闹钟具有编程灵活、精度高等特点,便于数字定时闹钟功能的扩充,同时还可以用该数字定时闹钟发出各种控制信号。

1.2 实验目的:1、熟悉集成电路的引脚安排。

2、掌握各芯片的逻辑功能及使用方法。

3、充分认识单片机设计。

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于51的电子闹钟设计报告(附原理图、PCB图、程序)

基于51的电⼦闹钟设计报告(附原理图、PCB图、程序)成都信息⼯程学院第五届嵌⼊式创新技术⼤赛基于MCS51的智能电⼦闹钟设计报告姓名学院班级实物图⽬录1.电⼦时钟的设计原理和⽅法 (1)1.1设计原理 (1)1.2 硬件电路的设计 (1)1.2.1 STC89C51RC简介 (1)1.2.2 键盘电路的设计 (2)1.2.3蜂鸣器驱动电路 (3)1.2.4 数码管驱动电路 (3)1.2.5 电源电路 (4)1.3软件部分的设计 (4)1.3.1主程序部分的设计 (4)1.3.2中断计时器及时间进位 (5)1.3.3 闹钟⼦函数 (7)1.3.4 按键扫描 (8)1.3.5 时钟闹钟设置 (9)1.3.6 显⽰数字函数 (10)1.3.7 显⽰界⾯函数 (10)1.3.8 闹钟记录及读取 (11)2.硬件调试 (13)附录A:电路原理图 (15)附录B:电路PCB图 (16)附录C:源程序 (17)1.电⼦时钟的设计原理和⽅法1.1设计原理系统框图1.2硬件电路的设计1.2.1 STC89C51RC简介STC89C52R CSTC89C51RC是⼀种带8K闪烁可编程可擦除只读存储器(FPETOM-FlashProgrammabalandErasableReadOnlyMemory )的低电压、⾼性能CMOS8位微型处理器,即单⽚机芯⽚。

单⽚机的可擦除只读存储器可以反复擦除1000次,内部FLASH 擦写次数为100000次以上。

该芯⽚使⽤⾼密度⾮易失存储制造技术,与⼯业标准的MCS-51指令集和输出管脚相兼容。

由于将多功能8位CPU 和闪烁存储器集成在单个芯⽚中,使得STC89C51RC 成为了⼀种性价⽐极⾼的微型处理器芯⽚,在许多电路设计中都得到了应⽤。

STC89C51RC 单⽚机特点:⼯作电压:5.5V-3.4V ⼯作频率:0-40MHz ⽤户应⽤程序空间:8K ⽚上集成128*8RAMISP (在系统可编程)/IAP (在应⽤可编程),⽆需专⽤编程器/仿真器可通过串⼝(P3.0/P3.1)直接下载⽤户程序EEPROM 功能共3个16位定时器/计数器,其中定时0还可以当成2个8位定时器使⽤外部中断4路通⽤异步串⾏⼝(UART ),还可⽤定时器软件实现多个UART ⼯作温度范围:0-75℃引脚说明:VCC:供电电压 GND :接地P0:P0是⼀个8位漏级开路双向I/O ⼝,低8位地址复⽤总线端⼝。

基于51单片机电子闹钟的设计

基于51单片机电子闹钟的设计

前言20世纪末,电子技术获得了飞速的发展。

在其推动下,现代电子产品几乎渗透了社会的各个领域,有力地推动了社会生产力的发展和社会信息化程度的提高。

同时也使现代电子产品性能进一步提高,产品更新换代的节奏也越来越快。

时间对人们来说总是那么宝贵,工作的忙碌性和繁杂性容易使人忘记当前的时间。

忘记了要做的事情,当事情不是很重要的时候,这种遗忘无伤大雅。

但是,一旦重要事情,一时的耽误可能酿成大祸。

例如,许多火灾都是由于人们一时忘记了关闭煤气或是忘记充电时间。

所以有必要制作一个定时系统。

随时提醒这些容易忘记时间的人。

而钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。

诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、定时启闭电路、定时开关烘箱、通断动力设备,甚至各种定时电气的自动启用等等。

所有这些,都是以钟表数字化为基础的。

因此,研究数字钟及扩大其应用,有着非常现实的意义。

随着生活水平的提高,人们越来越追求人性化的事物。

传统的时钟已不能满足人们的需求。

而现代的时钟不仅需要模拟电路技术和数字电路技术而且更需要单片机技术,增加数字钟的功能。

利用软件编程尽量做到硬件电路简单稳定,减小电磁干扰和其他环境干扰,减小因元器件精度不够引起的误差,但是数字钟还是可以改进和提高如选用更精密的元器件。

但与机械式时钟相比已经具有更高的准确性和直观性,且无机械装置,具有更长的使用寿命,因此得到了广泛的使用。

数字钟通过数字电路实现时、分、秒。

数字显示的计时装置,广泛用于个人家庭、车站、码头办公室等公共场所成为人们日常生活中不可少的必需品。

由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度远远超过老式钟表。

多功能数字钟的应用非常普遍。

由单片机作为数字钟的核心控制器,通过它的时钟信号进行实现计时功能,将其时间数据经单片机输出,利用显示器显示出来。

通过键盘可以进行校时、定时等功能。

输出设备显示器可以用液晶显示技术和数码管来显示技术。

基于MCS51单片机的闹钟提醒器设计报告

基于MCS51单片机的闹钟提醒器设计报告

题目:基于MCS51单片机的闹钟提醒器设计报告目录一、设计方案选定: (3)1.1 前言 (3)1.2 实验目的 (3)1.3总体设计要求 (3)1.3.1、基本要求 (3)1.3.2、自由发挥部分 (4)1.4 方案选定 (4)二、硬件电路设计 (4)2.1 AT89C52 (4)2.2 复位电路 (5)2.3 晶振电路 (5)2.4 时钟显示 (6)2.4.1 LCD1602 (6)2.4.2 DS1302: (6)2.5 程序框图 (7)2.6 基本电路及工作原理 (8)三、软件设计和仿真 (8)3.1 软件设计 (9)3.2 Proteus仿真 (25)四、课程设计体会 (27)参考文献 (28)基于MCS51单片机的闹钟提醒器学生:陈浩敏指导教师:张水锋电气信息工程学院电子信息工程专业一、设计方案选定:1.1 前言:单片计算机即单片微型计算机,(Single-Chip Microcomputer)。

是集CPU ,RAM ,ROM,定时,计数和多种接口于一体的微控制器。

他体积小,成本低,功能强,广泛应用于智能产品和工业自动化上。

而51单片机是各单片机中最为典型和最有代表性的一种。

这次课程设计通过对它的学习,应用,从而达到学习、设计、开发软、硬的能力。

基于单片机的定时和控制装置在许多行业有着广泛的应用。

而数字定时闹钟是其中最基本,也是最有代表性的一个实例。

数字定时闹钟的设计方法有许多种,例如,可以用中小规模集成电路组成数字定时闹钟,也可以利用专用的时钟芯片配以显示电路及其所需要的外围电路组成数字定时闹钟,还可以利用单片机来实现数字定时闹钟。

这些方法都各有其特点,其中,利用单片机来实现数字定时闹钟具有编程灵活、精度高等特点,便于数字定时闹钟功能的扩充,同时还可以用该数字定时闹钟发出各种控制信号。

1.2 实验目的:1、熟悉集成电路的引脚安排。

2、掌握各芯片的逻辑功能及使用方法。

3、充分认识单片机设计。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
25FFh
2600h
27FFh
第五扇区
第六扇区
第七扇区
第八扇区
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
2800h
29FFh
2A00h
2BFFh
2C00h
2DFFh
2E00h
2FFFh
每个扇区512字节,建议同一次修改的数据放在同一扇区,不是同一次修改的数据放在不同的扇区,不必用满,当然可全用。
2.
PCB制作完成后,为检测其能否正常工作,我编写了将数码管全部点亮,蜂鸣器控制口置低电平的程序。发现如下问题:
1.某一数码管右侧的所有数码管的相同段不亮;
2.数码管的小数点全部不亮;
3.蜂鸣器负极直接单片机IO口,蜂鸣器声音微小。
经检查后发现原因如下:
1.数码管板底层走线较细,钻孔时被打断,由于两块PCB已焊接到一起,拆解修补困难,故在数码管板顶层直接飞线;
SWBS
SWRST
-
-
WT2
WT2
WT0
ISPEN: ISP/IAP功能允许位。0:禁止IAP/ISP读/写/擦除Data Flash/EEPROM
1:允许IAP/ISP读/写/擦除Data Flash/EEPROM
SWBS:软件选择从用户应用程序区启动(送0),还是从系统ISP监控程序区启动(送1)。
要与SWRST直接配合才可以实现
SWRST:0:不操作;1:产生软件系统复位,硬件自动复位。
设置等待时间
CPU等待时间(机器周期),(1个机器周期=12个CPU工作时钟)
WT2
WT1
WT0
Read/读
Program/编程
(=72uS)
Sector Erase
扇区擦除
(=13.1304ms)
Recommended System Clock
成都信息工程学院
第五届嵌入式创新技术大赛
基于MCS51的智能电子闹钟
设计报告
姓名
学院
班级
实物图
目录
1.电子时钟的设计原理和方法1
1.1设计原理1
1.2硬件电路的设计1
1.2.1 STC89C51RC简介1
1.2.2键盘电路的设计2
1.2.3蜂鸣器驱动电路3
1.2.4数码管驱动电路3
1.2.5电源电路4
ISP_TRIG: ISP/IAP操作时的命令触发寄存器。
在ISPEN(ISP_CONTR.7) = 1时,对ISP_TRIG先写入46h,再写入B9h,ISP/IAP命令才会生效。
ISP/IAP操作完成后,ISP地址高八位寄存器ISP_ADDRH、ISP地址低八位寄存器ISP_ADDRL和ISP命令寄存器ISP_CMD的内容不变。如果接下来要对下一个地址的数据进行ISP/IAP操作,需手动将该地址的高8位和低8位分别写入ISP_ADDRH和ISP_ADDRL寄存器。
charh_ala= 0,min_ala= 1,sw_ala=1;
charflag_set,flag_sw;
char count;
sbitnum1 = P0^0;
sbitnum2 = P0^4;
sbitnum3 = P2^7;
sbitnum4 = P2^3;
sbitnum5 = P2^0;
sbitnum6 = P2^1;
STC89C51RC系列单片机内部EEPROM详细地址表
具体某型号有多少扇区的EEPROM,参照前面的EEPROM空间大小选型一览表,每个扇区0.5 K字节
第一扇区
第二扇区
第三扇区
第四扇区
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
起始地址
结束地址
2000h
21FFh
2200h
23FFh
2400h
-
-
MS1
MS0
MS2
MS1
MS0
命令/操作模式选择
0
0
0
Standby待机模式,无ISP操作
0
0
1
从用户的应用程序区对"Data Flash/EEPROM区"进行字节读
0
1
0
从用户的应用程序区对"Data Flash/EEPROM区"进行字节编程
0
1
1
从用户的应用程序区对"Data Flash/EEPROM区"进行扇区擦除
1.2.5
由于系统需要在7~12V的供电下正常工作,故采用了78M05三段稳压芯片。78M05能将7~35V的直流电源转换成5V直流电压。
1.3
1.3.1
程序部分主要采用了程序结构的模块化设计,避免了一些函数的不必要的重复书写,使程序变得单间易懂。程序在执行时,主程序要须通过调用子函数就可完成相应的功能。
ISP_ADDRL : ISP/IAP操作时的地址寄存器低八位。该寄存器地址为E4H,复位后值为00H.
3. ISP/IAP命令寄存器ISP_CMD
ISP/IAP命令寄存器IAP_CMD格式如下:
SFR name
Address
bit
B7
B6
B5
B4
B3
B2
B1
B0
ISP_CMD
E5H
name
-
-
-
-
ISP_DATA : ISP/IAP操作时的数据寄存器。
ISP/IAP从Flash读出的数据放在此处,向Flash写的数据也需放在此处
2. ISP/IAP地址寄存器ISP_ADDRH和ISP_ADDRL
ISP_ADDRH : ISP/IAP操作时的地址寄存器高八位。该寄存器地址为E3H,复位后值为00H.
11111111B
ISP_ADDRH
ISP/IAP Flash Address High
E3H
0000 0000B
ISP_ADDRL
ISP/IAP Flash Address Low
E4H
0000 0000B
ISP_CMD
ISP/IAP Flash Command Register
E5H
- - - - - - MS1MS0
VCC:供电电压
GND:接地
P0:P0是一个8位漏级开路双向I/O口,低8位地址复用总线端口。
P1:P1是一个内部提供上拉电阻的8位双向I/O口,静态通用端口。
P2:P2是一个内部提供上拉电阻的8位双向I/O口,高8位地址总线动态端口。
P3:P3是一个内部提供上拉电阻的8位双向I/O口,双功能静态端口。P3口也可作为一些特殊功能口。P3.0RXD(串行输入口)P3.1TXD(串行输出口)。
RST:复位自输入。
XTAL1/XTAL2:反向振荡器的输入与输出。
1.2.2
键盘采用四个个独立按键配以实现对时钟和闹钟的设定及修改。按键未按下时,IO口为高电平,按键按下后IO口被拉低。
1.2.3
发音部分是通过三极管放大驱动蜂鸣器工作,当IO口输出低电平时,三极管导通,蜂鸣器响。
1.2.4
由于点亮数码管所需电流较大,对单片机IO口连接上拉电阻,提高IO口的电流输出能力。
1.3软件部分的设计4
1.3.1主程序部分的设计4
3.2中断计时器及时间进位5
1.3.3闹钟子函数7
1.3.4按键扫描8
1.3.5时钟闹钟设置9
1.3.6显示数字函数10
1.3.7显示界面函数10
1.3.8闹钟记录及读取11
2.硬件调试13
附录A:电路原理图15
附录B:电路PCB图16
附录C:源程序17
sbitbell = P2^2;
sbitkey_set= P3^0;
跟等待参数对应的推荐系统时钟
0
1
1
6个机器周期
30个机器周期
5471个机器周期
5MHz
0
1
0
11个机器周期
60个机器周期
10942个机器周期
10MHz
0
0
1
22个机器周期
120个机器周期
21885个机器周期
20MHz
0
0
0
43个机器周期
240个机器周期
43769个机器周期
40MHz
STC89C51RC/RD+系列单片机EEPROM空间大小及地址
设计中采用了中断方式1作为定时中断,其定时计数初值的设置可由以下公式计算得到。
1.3.3
闹钟时间的判别主要是通过设定时间与实时时间对逐位对比确定是否进行闹铃。
1.3.4
这些函数主要是判断是否有按键按下,并根据相应按键按下的情况调用相关函数执行。
1.3.5
此部分主要是通过判断flag_sw、flag_set在不同值时通过调用加1、减1子函数对时间和闹钟进行设置。
STC89C51RC/RD+系列单片机内部可用EEPROM的地址与程序空间是分开的:程序在用户应用程序区时,可以对EEPROM行IAP/ISP操作。
具体某个型号单片机内部EEPROM大小及详细地址请参阅:
1. STC89C51RC/RD+系列单片机内部EEPROM详细地址表
2. STC89C51RC/RD+系列单片机内部EEPROM空间大小选型一览表
EEPROM可用于保存一些需要在应用过程中修改并且掉电不丢失的参数数据。在用户程序中,可以对EEPROM进行字节读/字节编程/扇区擦除操作。
IAP及EEPROM新增特殊功能寄存器介绍
符号
描述
地址
位地址及符号
MSB LSB
相关文档
最新文档