资源简介
用51单片机STC89C52、时钟芯片DS1302、液晶屏LCD1602、光敏电阻、红外对管,设计了一个教室智能照明控制系统。
附件为源代码。

代码片段和文件信息
#include
#include
#define uchar unsigned char
#define uint unsigned int
uchar time_data[7];
uchar code write_add[7]={0x8c0x8a0x880x860x840x820x80}; //数据的地址
uchar code read_add[7]={0x8d0x8b0x890x870x850x830x81};
uchar code table1[]=“C: 00|2000/00/00“;
uchar code table2[]=“T: 00|00:00:00 0“;
uchar code table3[]=“ “; //清屏内容
uchar code table4[]=“ Set Real Time “;
uchar code table5[]=“ Set Open Time “;
uchar code table6[]=“ Start Time: “;
uchar code table7[]=“ 00:00:00 “;
uchar code table8[]=“ End Time: “;
uchar code table9[]=“Date: 2000/00/00“;
uchar code table0[]=“Time: 00:00:00 0“;
bit Adjust; //调节标志位,=1表示进入调节模式,=0是正常模式
bit Auto_flg; //自动模式标志位,=1表示手动模式,=0是自动模式
sbit rs=P1^0; //LCD1602
sbit rw=P1^1; //LCD1602
sbit e=P1^2; //LCD1602
sbit sck=P2^5; //时钟端口
sbit io=P2^6; //时钟端口
sbit rst=P2^7; //时钟端口
sbit SELT =P1^6; //选择键
sbit ENTER=P1^7; //确认键
sbit UP =P3^0; //加键
sbit DOWN =P3^1; //减键
sbit MODE =P3^2; //切换按键接口
sbit SWITCH=P3^3; //手动开关
sbit AUTO_LED=P1^3; //自动模式灯接口
sbit HAND_LED=P1^4; //手动灯接口
sbit LAMP1=P3^4; //灯接口
sbit LAMP2=P3^5; //灯接口
sbit LAMP3=P3^6; //灯接口
sbit LAMP4=P3^7; //灯接口
sbit LIGHT1=P2^0; //光线检测端口
sbit IN1=P2^2;
sbit OUT1=P2^1;
sbit DQ=P1^5; //温度数据口
uchar Select_num; //选择按键按下次数
uchar Enter_num; //确认按键按下次数
uchar Switch_num; //手动开关按键按下次数
float YearMonthDayHourMinuteSecond; //时间设置值
uchar Week;
float Hour_HMinute_HSecond_H; //设置开始时间
float Hour_LMinute_LSecond_L; //设置结束时间
int Value1; //人数
uchar IN1_flag=0;
uchar OUT1_flag=0;
uint Count; //T0定时器中断计数次数
uchar Miao;
int temperature; //全局变量 温度
void read_rtc();
/**************************************************LCD1602显示*******************************************************************/
void delay1(uint z) //延时函数
{
uint xy;
for(x=z;x>0;x--)
for(y=10;y>0;y--);
}
void write_com(uchar com) //写指令函数
{
rw=0;
delay1(5);
rs=0;
delay1(5);
e=1;
delay1(5);
P0=com;
delay1(5);
e=0;
delay1(5);
}
void write_date(uchar date) //写数据函数
{
rw=0;
delay1(5);
rs=1;
delay1(5);
e=1;
delay1(5);
P0=date;
delay1(5);
e=0;
delay1(5);
}
void init() //初始化函数
{
uchar num;
Year=17;
Month=1;
Day=1;
Hour=15;
Minute=30;
Second=50;
Week=1;
Hour_H=22;
Minute_H=0;
Second_H=0;
Hour_L=18;
Minute_L=0;
Second_L=0;
e=0; // 时序表e初始为0
write_com(0x38); //设置16*2显示,5*7点阵,8位数据接口
write_com(0x0c); //设置光标
write_com(0x06); //光标自动加1光标输入方式
write_com(0x01); //清屏
write_com(0x80); //设置初始显示位置
for(num=0;num<16;num++)
{
write_date(table1[num]);
delay1(5);
}
write_com(0x80+0x40);
for(num=0;num<16;num++)
{
write_date(table2[num]);
delay1(5);
}
}
void SetTime_dispaly(uchar adduchar dat) //第一个:参数的地址,第二个:参数的内容
{
uch
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2020-04-02 09:41 2-程序\
文件 46366 2017-03-15 19:49 2-程序\DS1302
文件 69670 2017-03-15 19:49 2-程序\DS1302.LST
文件 59850 2017-03-15 19:49 2-程序\DS1302.M51
文件 57710 2017-03-15 19:49 2-程序\DS1302.OBJ
文件 935 2013-10-15 22:27 2-程序\DS1302.PWI
文件 24049 2017-03-15 19:49 2-程序\DS1302.c
文件 18410 2017-03-15 19:49 2-程序\DS1302.hex
文件 60 2017-03-15 19:49 2-程序\DS1302.lnp
文件 691 2017-03-15 19:49 2-程序\DS1302.plg
文件 56260 2017-03-15 19:50 2-程序\DS1302.uvopt
文件 13403 2014-12-03 23:19 2-程序\DS1302.uvproj
文件 56260 2016-04-09 02:54 2-程序\DS1302_uvopt.bak
文件 13403 2014-12-03 14:11 2-程序\DS1302_uvproj.bak
文件 91895 2011-08-28 12:44 2-程序\Last Loaded DS1302.DBK
文件 6376 2009-05-07 14:37 2-程序\STARTUP.A51
文件 14054 2017-03-15 19:49 2-程序\STARTUP.LST
文件 749 2017-03-15 19:49 2-程序\STARTUP.OBJ
- 上一篇:中科院自动化所历年模式识别博士题+答案
- 下一篇:JQ可拖曳上传图片插件兼容手机
相关资源
- 51单片机通信采样proteus仿真方波转化
- 基于MCS_51单片机的工业屏柜散热方案
- MCS_51单片机与8255A的接口设计
- 51单片机PWM程序,占空比、周期可调整
- 51单片机多功能自行车测速仪
- 00
- 用51单片机实现G代码翻译
- 简易的电阻电容测量电路
- 51单片机基于protues的几个仿真实例
- 51单片机PCB设计图
- PC -- 单片机的串口数据传输系统设计
- 51单片机控制舵机程序
- 51单片机读取温度数据存储到SD卡中并
- 【单片机】51单片机数码管显示万年历
- C51单片机汇编指令查询、学习工具集
- 基于8051单片机的红外接收程序
- 51单片机频率计(很简单)
- modbus51_c代码
- 基于51单片机的智能温控器
- 基于51单片机的16*16点阵动态显示
- 基于51单片机的模数转换与数模转换
- 51单片机中使用ucos ii的优缺点转
- 51单片机中使用ucos ii的优缺点
- 8051单片机教程第二十七课:单片机几
- 8051单片机教程第二十六课:矩阵式键
- 适用于STC单片机和51单片机的SX1262驱动
- 基于51单片机的计算器(C51编写,有
- 51单片机大量源码
- 基于51单片机的交通信号灯程序
- GSM监控系统51单片机设计
评论
共有 条评论