【资源下载】下载地址如下1558:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
#include <REGX52.H> //头文件
#define uchar unsigned char
#define uint unsigned int
#define CS P3_0 //ADC0804 CS端口
#define RD P3_1 //ADC0804 RD端口
#define WR P3_2 //ADC0804 WR端口
#define g_kz P2_5 //数码管个位控制
#define s_kz P2_4 //数码管十位控制
#define b_kz P2_3 //数码管百位控制
#define q_kz P2_2 //码管千位控制
#define SMG_XS P0 //数码管显示端口
#define AD_data P1 //ADC0804输出端口
#define Up P2_1 //上限限位开关端口
#define Down P2_0 //下限限位开关端口
#define Key1 P3_3 //手动/自动切换 按键
#define Key2 P3_4 //定时/光控功能切换 按键
#define Key3 P3_5 //设置 按键
#define Key4 P3_6 //加 按键 (手动模式:打开窗帘 定时模式:定时打开窗帘)
#define Key5 P3_7 //减 按键 (手动模式:关闭窗帘 定时模式:定时关闭窗帘)
#define IA P2_7 //直流电机控制端口
#define IB P2_6 //直流电机控制端口
int adval; //ADC 输出变量
int j; //定义循环变量 i j
uchar flag=0; //显示标志位(0:正常显示 1:上限光照度设置(调时) 2:下限光照度设置(调分)
bit flag_gd=0; //光控/定时标志位(0:当前光照度 1:定时时间 )
bit ms=0; //模式(0:手动模式 1:自动模式)
bit move=0; //定时时间到标志位(0:时间未到 1:时间到)
bit OFF_ON=0; //电机正反转标志位,表示窗帘打开或关闭(0:窗帘关闭 1:窗帘打开)
bit Time_OFF_ON=0;//定时时间到执行窗帘打开或关闭(0:定时关闭窗帘 1:定时打开窗帘)
char hour=12,min=0;sec=0; //定义时间 “时 分 秒”变量 上电默认12.00.00
char num=0; //时间基数
uint H_GM=240; //定义上限光敏度设置变量,上电默认200
uint L_GM=100; //定义下限光敏度设置变量,上电默认100
uchar t=1; //数码管动态扫描延时参数
uchar code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90};
//数码管显示数组 0 1 2 3 4 5 6 7 8 9
void delay(uint time) //延时函数
{
uint x,y; //定义临时变量 x y
for(x=time;x>0;x--)
for(y=110;y>0;y--); //空操作
}
void Time_init() //定时器初始化
{
EA=1;
TMOD=0x11;