(末尾附文件)
系统框图

原理图

仿真图

最小系统电路
STC89C52的最小系统如图3-3所示,整个最小系统由三个部分组成,晶振电路部分、复位电路部分、电源电路等三个部分组成。
晶振电路包括2个30pF的电容C2和C3,以及12M的晶振X1。电容的作用在这里是起振作用,帮助晶振更容易的起振,取值范围是15-33pF。晶振的取值也可以是24M,晶振的取值越高,单片机的执行速度越快。在进行电路设计的时候,晶振部分越靠近单片机越好。
单片机复位电路就好比电脑的重启部分,当电脑在使用中出现死机,按下重启按钮电脑内部的程序从头开始执行。单片机也一样,当单片机系统在运行中,受到环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。
复位电路由10uF的极性电容C1和10K的电阻R4构成。利用电容电压不能突变的性质,可以知道,当系统一上电,RESET脚将会出现高电平,并且这个高电平持续的时间由电路的RC值来决定。典型的51单片机当RESET脚的高电平持续两个机器周期以上就将复位,所以适当组合RC的取值就可以保证可靠的复位。
最后一个是电源部分,采用5V的USB直接供电,可采用手机充电器、电脑USB口、移动电源等设备进行供电。
此外,除了单片机最小系统的3个部分之外,这里还多了一些外部电路。
由于STC89C52的P0口是漏极开路输出,因此在P0口接了一个10K的排阻R1,使得P0口可以作为普通的I/O口使用,本设计用P0口来做液晶的数据口。
特别注意的是,对于31脚(EA),当接高电平时,单片机在复位后从内部ROM的0000H开始执行;当接低电平时,复位后直接从外部ROM的0000H开始执行。由于我们的程序存储在了单片机内部,所以EA要接高电平,保证单片机是从内部读取程序去执行的

液晶显示电路

液晶显示器是一种显示器件,具有小体积、轻重量、低功耗等特色。由于其功耗低、显示的信息量大(例如,文本,图形,曲线等)、无电磁辐射、使用寿命长,它已被广泛应用在便携式电子产品。
本系统显示采用了工业字符型液晶模块1602,可显示2行16个字符,能方便显示英文字母大小写、阿拉伯数字、常用符号等。通过自定义还可显示简单的汉字。
本系统采用的1602是一款物美价廉的液晶显示屏,可以显示2行标准字符,每行共有16个字符。在通信系统,智能操作仪表和办公设备的自动化中被广泛的应用,主要功能是显示ASCII字符,因此被称为“字符型显示装置”。当在内部没有适合的汉字库的液晶类型显示器想要表达汉字的时候,第一步就是要获得想要的汉文或者图形的子模数据。子模块的软件不能直接提取的子模块的数据5×8点阵,可以从手工提取汉字的字体以模具。第二步,把取得的汉字子模数据保存在液晶存储器里面。

时钟模块
DS1302简介
DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。现在流行的串行时钟电路很多,如DS1302、 DS1307、PCF8485等。这些电路的接口简单、价格低廉、使用方便,被广泛地采用。
本文介绍的实时时钟电路DS1302是DALLAS公司的一种具有涓细电流充电能力的电路,主要特点是采用串行数据传输,可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。采用普通32.768kHz晶振。是一种高性能、低功耗、带RAM的实时时钟芯片,它可以对年、月、日、周、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.0V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后备电源双电源引脚,同时提供了对后备电源进行涓细电流充电的能力。

DS18B20传感器电路
DS18B20简介
(1)概述
DS18B20(图3-10)是美国DALLAS半导体公司推出的第一片支持“一线总线”接口的温度传感器,它具有微型化,低功耗,高性能,抗干扰能力强,易配微处理器等优点,可直接将温度转化成数字信号处理器处理。测量的温度范围是-55125℃,测温误差0.5℃。可编程分辨率912位,对应的可分辨温度分别为0.5℃,0.25℃,0.125℃和0.0625℃。相较热电偶传感器而言可实现高精度测温。

部分程序:

#include <reg52.h>
#include <intrins.h>#define uchar unsigned char   // 以后unsigned char就可以用uchar代替
#define uint  unsigned int  // 以后unsigned int 就可以用uint 代替sfr ISP_DATA  = 0xe2;             // 数据寄存器
sfr ISP_ADDRH = 0xe3;              // 地址寄存器高八位
sfr ISP_ADDRL = 0xe4;              // 地址寄存器低八位
sfr ISP_CMD   = 0xe5;              // 命令寄存器
sfr ISP_TRIG  = 0xe6;              // 命令触发寄存器
sfr ISP_CONTR = 0xe7;              // 命令寄存器sbit LcdRs_P    = P2^7;       // 1602液晶的RS管脚
sbit LcdRw_P    = P2^6;       // 1602液晶的RW管脚
sbit LcdEn_P    = P2^5;       // 1602液晶的EN管脚
sbit RST_P      = P1^3;                // 时钟芯片DS1302的RST管脚
sbit SDA_P      = P1^2;                // 时钟芯片DS1302的SDA管脚
sbit SCK_P      = P1^1;                // 时钟芯片DS1302的SCK管脚
sbit KeySet_P   = P3^2;                // 设置时间按键
sbit KeyClock_P = P3^3;                // 设置闹钟按键
sbit KeyDown_P  = P3^4;                // 减按键
sbit KeyUp_P    = P3^5;                // 加按键
sbit Buzzer_P   = P2^0;                // 蜂鸣器
sbit DQ         = P1^0;                // DS18B20传感器的引脚定义uchar TimeBuff[7]={17,9,1,6,18,30,40};               // 时间数组,默认2017年9月1日,星期五,18:30:40
// TimeBuff[0] 代表年份,范围00-99
// TimeBuff[1] 代表月份,范围1-12
// TimeBuff[2] 代表日期,范围1-31
// TimeBuff[3] 代表星期,范围1-7,1是星期天,2是星期一... ...
// TimeBuff[4] 代表小时,范围00-23
// TimeBuff[5] 代表分钟,范围00-59
// TimeBuff[6] 代表秒钟,范围00-59uchar Clock_Hour;                 // 闹钟的小时
uchar Clock_Minute;             // 闹钟的分钟
uchar Clock_Swt;                    // 闹钟的开关
uchar Buzzer_Flag=0;           // 蜂鸣器工作标志/*********************************************************/
// 单片机内部EEPROM不使能
/*********************************************************/
void ISP_Disable()
{ISP_CONTR = 0;ISP_ADDRH = 0;ISP_ADDRL = 0;
}/*********************************************************/
// 从单片机内部EEPROM读一个字节,从0x2000地址开始
/*********************************************************/
unsigned char EEPROM_Read(unsigned int add)
{ISP_DATA  = 0x00;ISP_CONTR = 0x83;ISP_CMD   = 0x01;ISP_ADDRH = (unsigned char)(add>>8);ISP_ADDRL = (unsigned char)(add&0xff);// 对STC89C51系列来说,每次要写入0x46,再写入0xB9,ISP/IAP才会生效ISP_TRIG  = 0x46;    ISP_TRIG  = 0xB9;_nop_();ISP_Disable();return (ISP_DATA);
}/*********************************************************/
// 往单片机内部EEPROM写一个字节,从0x2000地址开始
/*********************************************************/

.
链接:https://pan.baidu.com/s/1PJ6Vc4R6mjLmKOG_VDYzZg
提取码:btlq

.

基于51单片机的万年历proteus仿真原理图方案设计相关推荐

  1. 基于51单片机的温度控制proteus仿真原理图PCB

    功能介绍: 0.本系统采用STC89C52作为单片机 1.LCD1602液晶实时显示当前温度及温度范围设定 2.超过温度设定范围将启动加热棒加热或风扇冷却 3.超过设定温度将声光报警 4.按键可设置温 ...

  2. 基于51单片机的电子秤proteus仿真设计

    本设计仅供学习参考 基于51单片机的电子秤proteus仿真设计(仿真+程序+原理图+报告+讲解) 原理图:Altium Designer 仿真图proteus 7.8 程序编译器:keil 4/ke ...

  3. 基于51单片机篮球计分器proteus仿真设计

    本设计是51单片机篮球计分器proteus仿真(源码+原理图+PCB+仿真+报告) 仿真:proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号C0004 资料文件下载 ...

  4. 基于51单片机简易数字示波器Proteus仿真

    功能介绍: 采用51单片机作为主控CPU:LCD12864可显示方波,三角波,锯齿波,正弦波等,可通过光标对波形进行测量,可以调节显示波形的幅度和频率,也可以将波形进行左右拖拉,完美的仿真出一个51单 ...

  5. 基于51单片机的全自动洗衣机仿真原理图程序方案设计

    设计总方框图 (末尾附文件) 原理图: 控制系统的功能 基于单片机洗衣机通过控制系统设定洗衣程序在洗涤脱水桶内自动完成注水.洗涤.漂洗.排水和脱水全过程.洗衣时控制系统打开进水电磁阀开始注水:当洗涤脱 ...

  6. 基于51单片机电子秤(程序+仿真+原理图)

    设计任务: 完成一个简单数字电子秤的硬件电路部分和软件部分的设计要求: 1.利用单片机对数字电子秤的各种功能进行控制. 2.数字电子秤能够显示商品的名称,价格,总重,总价.3.数字电子秤能够自动完成商 ...

  7. 基于51单片机数字电压表的设计 仿真、程序、原理图(转发)

    摘 要 数字电压表简称DVM,数字电压表基本原理是将输入的模拟电压信号转化为数字信号,再进行输出显示.而A/D转换器的作用是将连续变化的模拟信号量转化为离散的数字信号,器基本结构是由采样保持,量化,编 ...

  8. S0011基于51单片机DS18B20温控风扇仿真设计

    基于51单片机DS18B20温控风扇仿真设计 (仿真+原理图+源码+设计报告) 原理图:Altium Designer 仿真原版本:proteus 7.8 程序编译器:keil 4/keil 5 编程 ...

  9. 51单片机DS18B20温度报警器proteus仿真设计_可调上下限

    51单片机DS18B20温度报警器proteus仿真设计_可调上下限 (仿真+源码+原理图+报告) 原理图:Altium Designer 仿真版本:proteus 7.8 程序编译器:keil 4/ ...

最新文章

  1. NGSL + NAWL 单词表 以及学习网站
  2. SSH系列:(26)投诉受理
  3. 190521每日一句
  4. java从入门到精通 韩顺平_韩顺平Java从入门到精通视频教程(94集)
  5. 经济学人:数据经济虽好,可是仍需补钙
  6. 回到未来2——货币战争
  7. Jieba库与wordcloud库的学习汇总
  8. java中成员方法_java中的成员变量和方法
  9. LaTex 编译 bib 参考文献
  10. 【前端兼容性】常见的浏览器兼容问题及解决方案
  11. 潮汕“七样羹”,吃了变后生
  12. 张云雷的《探清水河》登上央视,为什么蔡国庆可以随心所欲地唱
  13. 【数据分析/挖掘】如何处理类别型特征?常用编码方式?Python实现?
  14. 【论文】360-aware saliency estimation with conventional image saliency predictors阅读笔记
  15. 嵩山少林寺网站向全世界公布了千年武功秘籍
  16. 冰雪复古鸿蒙碎片哪里出,复古冰雪玩法总览!!!干货!!!
  17. android ftdi,从 Android FTDI串行通信开始_ftdi_开发99编程知识库
  18. Terracotta 3.2.1简介 (一)
  19. Python实现炸金花小游戏
  20. Apache 与 php的配置

热门文章

  1. 树莓派4B最新系统bullseye更换国内源方法
  2. Ubuntu 22.04 中的 .NET 6
  3. 第一篇 香橙派刷机和开发环境准备(Armbian版)
  4. 网络直播:全能项目经理 - 编码篇(2015-3-31)
  5. bind mysql web_bindview+dlz(mysql)
  6. 【DLL的函数】关于DLL的函数|_declspec(dllimport)
  7. 给一个不多于5位的正整数,要求:一、求它是几位数,二、逆序打印出各位数字。
  8. 猎聘和BOSS直聘谁会成为在线招聘的最后赢家?
  9. 常见的图像重采样算法
  10. emem今天再记一道套路whalectf pwn3