标题: 51单片机时钟,闹钟,温度,农历PCB文件+Proteus仿真 [打印本页]
作者: 噜啦啦qwe' 时间: 2019-6-16 12:46
标题: 51单片机时钟,闹钟,温度,农历PCB文件+Proteus仿真
51单片机时钟,闹钟,温度,农历仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
Altium Designer画的原理图和PCB图如下:(51hei附件中可下载工程文件)
单片机源程序如下:
#include<reg52.h>
#include <string.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
#define wd 1 //定义是否有温度功能 =0时无温度,=1时有温度
#define yh 0x80 //LCD第一行的初始位置,因为LCD1602字符地址首位D7恒定为1(100000000=80)
#define er 0x80+0x40 //LCD第二行初始位置(因为第二行第一个字符位置地址是0x40)
//液晶屏的与C51之间的引脚连接定义(显示数据线接C51的P0口)
sbit en=P2^6;
sbit rw=P2^5; //如果硬件上rw接地,就不用写这句和后面的rw=0了
sbit rs=P2^4;
//校时按键与C51的引脚连接定义
sbit menu=P3^0; //菜单键
sbit set=P3^1; //设置键
sbit add=P3^2; //加键
sbit dec=P3^3; //减键
sbit ensure=P3^4; //确认键
sbit DQ=P2^0; //
sbit buzzer=P1^4; //蜂鸣器,通过三极管8550驱动,端口低电平响
sbit led=P2^4; //LCD背光开关
bit led1=1;
unsigned char temp_miao;
unsigned char bltime; //背光亮的时间
//DS1302时钟芯片与C51之间的引脚连接定义
sbit IO=P1^1;
sbit SCLK=P1^2;
sbit RST=P1^0;
uchar a,miao,shi,fen,ri,yue,nian,week,setn,temp;
uint flag;
//flag用于读取头文件中的温度值,和显示温度值
bit c_moon;
ucharnz_shi=12,nz_fen=0,nz_miao=0,setNZn; //定义闹钟变量
uchar shangyimiao,bsn,temp_hour; //记录上一秒时间
uchar T_NL_NZ; //计数器
bit timerOn=0; //闹钟启用标志位
bit baoshi=0; //整点报时标志位
bit p_r=0; //平年/润年 =0表示平年,=1表示润年
data ucharyear_moon,month_moon,day_moon,week;
sbit ACC0=ACC^0;
sbit ACC7=ACC^7;
/************************************************************
ACC累加器=A
ACC.0=E0H
ACC.0就是ACC的第0位。Acc可以位寻址。
累加器ACC是一个8位的存储单元,是用来放数据的。但是,这个存储单元有其特殊的地位,
是单片机中一个非常关键的单元,很多运算都要通过ACC来进行。以后在学习指令时,
常用A来表示累加器。但有一些地方例外,比如在PUSH指令中,就必须用ACC这样的名字。
一般的说法,A代表了累加器中的内容、而ACC代表的是累加器的地址。
***************************************************************/
//********阳历转换阴历表************************************
-
-
1 原理图及PCB.rar
533.66 KB, 下载次数: 57, 下载积分: 黑币 -5
-
-
2 程序.rar
134.85 KB, 下载次数: 75, 下载积分: 黑币 -5
-
-
3 protues仿真.rar
85.65 KB, 下载次数: 73, 下载积分: 黑币 -5
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |