资源简介
用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单片机的交通灯设计
- 51 教室智能灯 控制系统
- 51单片机125Khz ID卡读卡程序
- 51单片机课程设计内含50多个课程设计
- 51单片机实现蜂鸣器的简易歌曲播放器
- 基于51单片机的智能十字路口交通灯系
- 51单片机编写的标准modbus协议通信模版
- SIM900A通过51单片机拨打电话程序
- at89c51单片机外文翻译
- CW2015 51单片机程序
- 基于51单片机的超声波测距技术实现含
- 基于51单片机射频密码锁设计门禁刷卡
- 基于51单片机的十字路口交通灯Protu
- 32x16LED汉子点阵显示屏
- 收发短信,短信控制LED51单片机例程
- 51单片机智能小车花式,寻迹,红外,
- 51单片机 音乐彩灯
- 基于51单片机的刷卡签到系统
- 12864多功能万年历
- 郭天祥的GSM与51单片机通信程序一
- MCS-51单片机定时器/计数器常见习题解
- 51单片机实现智能型孵化器的控制系统
- 51单片机7种常见时钟电路图
- 解析51单片机LED系统电路
- 51单片机实现usb鼠标
- 51单片机数码管滚动显示hello
- 16x16点阵程序
评论
共有 条评论