久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機智能窗簾設計 有程序和硬件電路圖PCB
[打印本頁]
作者:
qq250076737
時間:
2020-4-7 12:17
標題:
51單片機智能窗簾設計 有程序和硬件電路圖PCB
Altium Designer畫的單片機智能窗簾原理圖和PCB圖如下:(51hei附件中可下載工程文件)
51hei.png
(27.79 KB, 下載次數: 45)
下載附件
2020-4-7 15:28 上傳
51hei.png
(55.58 KB, 下載次數: 46)
下載附件
2020-4-7 15:28 上傳
單片機源程序如下:
#include <reg51.h>//51頭文件
#include<INTRINS.h>
#define uchar unsigned char
#define uint unsigned int //變量宏定義
#define ulong unsigned long //變量宏定義
uchar count,s1num,shi2=0,fen2=0,shi3=10,fen3=10;//全局變量
uchar miao,fen,shi;//時間變量
uchar c,v,l,i;
ulong AD_ad1,AD_ad2;
float JiZhun_AD=2.5;
float AD_Data=0.0;
ulong AD_ad=0;
uchar dianji;
sbit rs = P0^5;//數據,命令選擇端(H/L)
sbit rw = P0^6;//讀,寫選擇端(H/L)
sbit e = P0^7;//使能信號
sbit CLOCK = P1^1; //lcd
sbit D_IN = P1^2; //lcd
sbit D_OUT = P1^3; //lcd
sbit _CS = P1^4; //lcd
sbit menu = P1^0; //按鍵//P1^3
sbit add = P1^7; //按鍵//P1^4
sbit cut = P1^5; //按鍵
sbit yes = P1^6; //按鍵
sbit ma = P3^0; //步進電機
sbit mb = P3^1; //步進電機
sbit mc = P3^2; //步進電機
sbit md = P3^3; //步進電機
sbit led1 = P3^4; //LED1
sbit led2 = P3^5; //LED2
sbit spek = P3^6; //SPEK
uchar code table[]="shut-00:00|ray:0";
uchar code table1[]="open-00:00|00:00";//數據字符表
uchar data display[8]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
//顯示單元后臺數據,1分2時現在時間,5分6時關閉時間,3分4時打開時間,7亮度級數 //
//****************延時*****************
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--) ;
}
//****************寫液晶指令*****************
void write_com(uchar com)
{
rs=0;
e=0;
P2=com;
delay(5);
e=1;
delay(5);
e=0;
}
//****************液晶數據*****************
void write_date(uchar date)
{
rs=1;
e=0;
P2=date;
delay(5);
e=1;
delay(5);
e=0;
}
//****************初始化液晶定時器************
void init() //
{
uchar num;
rs=0;
rw=0;
e=0;//鎖存關閉
write_com(0x38);
delay(5);
write_com(0x0c);//
delay(5);
write_com(0x06);
delay(5);
write_com(0x01);
write_com(0x80);//第一行開始寫
for(num=0;num<16;num++)
{
write_date(table[num]);
delay(20);
}
write_com(0x80+0x40);//第二行前一部分,也就是時間開始寫
for(num=0;num<16;num++)
{
write_date(table1[num]);
delay(20);
}
TMOD=0x01;//定時器0的方式1
TH0=(65536-50000)/256;//求模
TL0=(65536-50000)%256;//取余
EA=1;//開總中斷
ET0=1;//開定時器中斷
TR0=1;//啟動定時器
}
//****************地址數據變量**************
void write_sfm(uchar add, uchar date)
{
uchar shi,ge;
shi=date/10;
ge=date%10;
write_com(0x80+0x40+add);
write_date(0x30+shi);
write_date(0x30+ge);
}
void write_sfn(uchar add, uchar date)
{
uchar si,g;
si=date/10;
g=date%10;
write_com(0x80+add);
write_date(0x30+si);
write_date(0x30+g);
}
//****************按鍵函數*****************
void key()
{
if(c==8)c=0;
if(menu==0)
{
delay(50);
if(menu==0)
{
c++;spek=0;delay(50);
while(menu==0);spek=1;
}
}
if(add==0)
{
spek=0;delay(50);
while(add==0);
spek=1;
display[c]++;
write_sfm(14,display[1]);//分針位置
write_sfm(11,display[2]);//時針位置
}
if(cut==0)
{
spek=0;delay(50);
while(cut==0);
spek=1;
display[c]--;
}
if(yes==0)
{
spek=0;delay(50);
while(yes==0);
spek=1;
c=0;
}
write_sfm(14,display[1]);//現在分針位置
write_sfm(11,display[2]);//現在時針位置
write_sfm(8,display[3]);//打開分針位置
write_sfm(5,display[4]);//打開分針位置
write_sfn(8,display[5]);//關閉分針位置
write_sfn(5,display[6]);//關閉分針位置
write_com(0x80+15); //亮度級數
write_date(0x30+display[7]);//亮度級數位置
}
//****************步進電機函數*****************
void motorzen()
{
while(v)
{
led1=0;
ma=1,mb=0;mc=0;md=0;delay(3);
ma=0,mb=1;mc=0;md=0;delay(3);
ma=0,mb=0;mc=1;md=0;delay(3);
ma=0,mb=0;mc=0;md=1;delay(3);
}
led1=1;
}
void motorfan()
{
while(v&l)
{
led2=0;
ma=0,mb=0;mc=0;md=1;delay(3);
ma=0,mb=0;mc=1;md=0;delay(3);
ma=0,mb=1;mc=0;md=0;delay(3);
ma=1,mb=0;mc=0;md=0;delay(3);
}
led2=1;
}
//****************A/D*****************
uint read1543(uchar port)
{
uint ad;
uint i;
uchar al=0,ah=0;
CLOCK=0;
_CS=0;
port<<=4;
for (i=0;i<4;i++) //將四位通道地址送1543
{
D_IN=(bit)(port&0x80);CLOCK=1;CLOCK=0;
port<<=1;
}
for (i=0;i<6;i++) //填6個CLOCK信號
{
CLOCK=1;CLOCK=0;
}
_CS=1;
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
_nop_();_nop_();_nop_();
_CS=0; //等待AD轉換結束
_nop_();_nop_();_nop_();
for (i=0;i<2;i++) //D9,D8
{
D_OUT=1;CLOCK=1;ah<<=1;
if (D_OUT) ah +=0x01;
CLOCK=0;
}
for (i=0;i<8;i++) //取出D7--D0
{
D_OUT=1;CLOCK=1;al <<= 1;
if (D_OUT)
al +=0x01;
CLOCK=0;
}
_CS=1;
ad = (uint)ah;
ad <<= 8;
ad +=(uint)al; //
return(ad);
}
//****************亮度測試*****************
void liangdu()
{
i++;
if(i==30)
{
i=0;
AD_ad1 = read1543(0); // (通道0電壓正端)
AD_Data = ((float)AD_ad1)*JiZhun_AD*2/1024+0.005;//0.15經過實測需要加0.15減少誤差
AD_ad =(AD_Data*100);
if(display[7]>AD_ad%100/10)
{
if(dianji==0)
{
spek=0;delay(50);spek=1;
motorzen();
dianji=1;
}
}
else
{
if(dianji==1)
{
spek=0;delay(50);spek=1;
motorfan();
dianji=0;
}
}
}
}
//****************主函數*****************
void main()
{
spek=0;delay(50);spek=1;
display[4]=8;
display[6]=20;
display[7]=50;
spek=1;
init();
while(1)
{
key();liangdu();
if(display[2]==display[4])//時間判斷關閉窗簾
{
if(display[1]==display[3])//與打開時間一致動作
{
if(miao<5)
{
v=10;
spek=0;delay(50);spek=1;
motorzen();
}
}
}
if(display[2]==display[6])//時間判斷關閉窗簾
{
if(display[1]==display[5])//與打開時間一致動作
{
if(miao<5)
{
v=10;
spek=0;delay(50);spek=1;
motorfan();
}
}
}
}
}
void timer0() interrupt 1 //定時器0中斷服程序
{
TH0=(65536-50000)/256;//求模
TL0=(65536-50000)%256;//求佘
count++;//變量
if(count==20)//此處為時間基準調節,20為走一秒
{
count=0;
miao++;
if(v>0)
v--;
if(miao==60)
{
miao=0;
display[1]++;
if(display[1]==60)
{
display[1]=0;//display[0]現在時間分的存放點
display[2]++;
if(display[2]==24)//display[1]現在時間時的存放點
{
display[1]=0;
}
write_sfm(11,display[2]);//時針位置
}
write_sfm(14,display[0]);//分針位置
}
}
}
復制代碼
所有資料51hei提供下載:
窗簾控制(陳 玲).rar
(1.23 MB, 下載次數: 53)
2020-4-7 12:16 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
欧美亚洲另类丝袜综合网动图
|
日本特黄特色aaa大片免费
|
亚洲国产一区二区三区四区
|
99久久婷婷国产精品综合
|
视频三区
|
国产美女精品
|
91高清在线观看
|
国产精品成人久久久久
|
中文字幕在线网
|
日本精品一区二区三区在线观看视频
|
久久99精品久久久水蜜桃
|
99成人在线视频
|
中文字幕在线一区
|
欧美在线a
|
亚洲天堂男人的天堂
|
中文字幕 欧美 日韩
|
天天干亚洲
|
欧美日韩在线一区二区
|
久久久免费在线观看
|
天天射夜夜操
|
国产精品美女久久久久久久久久久
|
玖玖在线精品
|
91精品国产高清一区二区三区
|
国产午夜视频
|
99精品观看
|
欧美日韩在线一区二区三区
|
美女黄网站
|
国产成人av在线
|
福利社午夜影院
|
国产精品日韩一区二区
|
性高湖久久久久久久久3小时
|
中文字幕一区二区三区不卡
|
国产成人在线免费
|
欧美在线日韩
|
国产高清一区二区三区
|
免费啪啪
|
国产ts人妖另类
|
日韩超碰在线
|
伊人超碰
|
jizz在线看片
|
久久久久亚洲精品
|