欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
模擬路燈控制系統仿真及程序 12864菜單顯示
[打印本頁]
作者:
wfc
時間:
2017-4-25 22:31
標題:
模擬路燈控制系統仿真及程序 12864菜單顯示
模擬路燈控制系統仿真原理圖:
0.png
(41.42 KB, 下載次數: 42)
下載附件
2017-4-26 02:04 上傳
0.png
(88.79 KB, 下載次數: 33)
下載附件
2017-4-26 02:05 上傳
12864菜單顯示程序:
#include "FUN.h"
#include "LCD12864.h"
#include "DELAY.h"
#include "ZK.h"
#define uchar unsigned char
sbit keydown=P1^1; //下鍵
sbit keyenter=P1^3; //確定鍵
sbit keyup=P1^0; // 上鍵
sbit keyback=P3^4 ;//返回
uchar func_index=0;
void (*current_operation_index)();
typedef struct
{
uchar current;
uchar up;//向上翻索引號 x
uchar down;//向下翻索引號 y
uchar enter;//確認索引號 z
uchar back;// 返回索引號 w
void (*current_operation)();
} key_table;
key_table code table[10]=
{
// x,y,z,w
{0,0,0,1,0,(*fun0)},//第一層,顯示、按確認鍵繼續
{1,4,2,5,0,(*fun1)},//第一層,顯示【光控】、時間控制、物位控制、故障檢測
{2,1,3,6,0,(*fun2)},//第一層,顯示光控、【時間控制】、物位控制、故障檢測
{3,2,4,7,0,(*fun3)},//第一層,顯示光控、時間控制、【物位控制】、故障檢測
{4,3,1,8,0,(*fun4)},//第一層,顯示光控、時間控制、物位控制、【故障檢測】
{5,5,5,5,1,(*fun5)},//第二層,執行光控程序
{6,6,6,6,2,(*fun6)},//第二層,執行時間控制程序
{7,7,7,7,3,(*fun7)},//第二層,執行物位控制程序
{8,8,8,8,4,(*fun8)},//第二層,執行故障檢測程序
// {9,9,9,9,2,(*fun9)},//第二層,執行清屏函數
};
void main()
{
initLCD();
clearscreen(0);
Set_line(0);
disp_BMP(a);
delayms(1000);
clearscreen(0);
while(1)
{
/*******************find index****************************/
if((keyup==0)||(keydown==0)||(keyenter==0)||(keyback==0))
{
delayms(5);//消抖
if(keyup==0)
{
func_index=table[func_index].up; //向上翻
while(!keyup);//松手檢測
}
if(keydown==0)
{
func_index=table[func_index].down; //向下翻
while(!keydown);
}
if(keyenter==0)
{
func_index=table[func_index].enter; //確認
while(!keyenter);
}
if(keyback==0)
{
func_index=table[func_index].back; //返回
while(!keyback);
}
clearscreen(0);
InitializeLCD();
clearscreen(0);
}
current_operation_index=table[func_index].current_operation;
(*current_operation_index)();//執行當前操作函數
}
}
復制代碼
#include<reg52.h>
#include "lcd12864.h"
#include "delay.h"
#include"FUN.h"
#include "ZK.h"
#include"DS1302.h"
sbit F1=P3^0;
sbit F2=P3^1;
sbit BUZZ=P3^3;
sbit L1=P3^6;
sbit L2=P3^7;
sbit EN=P1^4;
sbit CK0=P1^5;
sbit CK1=P1^6;
sbit CK2=P1^7;
sbit K1=P1^3; // 時間調整選擇鍵
sbit K2=P1^0; // 加鍵
sbit K3=P1^1; // 減鍵
sbit K4=P1^2; // 確定保存鍵
sbit K5=P3^4; // 時間控制頁返回
sbit K6=P3^5; // 方向選擇
//**************************全局變量申明**********************************//
//unsigned char code DATE_TIME_WORDS[];
//unsigned char code WEEKDAY_WORDS[];
uchar DateTime[7];
uchar tCount=0; //定時器T0定時50ms的計數器
//*****************************************************************************
void fun0()
{
uchar i;
InitializeLCD();
for(i=0;i<6;i++)
Hanzi(0,0+i*16, DATE_TIME_WORDS0+i*32);
for(i=0;i<6;i++)
Hanzi(2,0+i*16, DATE_TIME_WORDS0+(i+6)*32);
for(i=0;i<5;i++)
Hanzi(4,0+i*16, DATE_TIME_WORDS0+(i+12)*32);
for(i=0;i<8;i++)
Hanzi(6,0+i*16, DATE_TIME_WORDS0+(i+17)*32);
}
//******************************************************************************
void fun1() // 第一層,顯示【光控】、時間控制、物位控制、故障檢測
{
uchar i;
InitializeLCD();
for(i=0;i<4;i++)
Hanzi(0,0+i*16, DATE_TIME_WORDS1+i*32);
for(i=0;i<4;i++)
Hanzi(2,16+i*16,DATE_TIME_WORDS1+(i+4)*32);
for(i=0;i<4;i++)
Hanzi(4,16+i*16,DATE_TIME_WORDS1+(i+8)*32);
for(i=0;i<4;i++)
Hanzi(6,16+i*16,DATE_TIME_WORDS1+(i+12)*32);
L1=1;
L2=1;
}
//***************************************************************************//
void fun2() //第一層,顯示光控、【時間控制】、物位控制、故障檢測
{
uchar i;
InitializeLCD();
for(i=0;i<2;i++)
Hanzi(0,16+i*16,DATE_TIME_WORDS1+(i+1)*32);
Hanzi(2,0,DATE_TIME_WORDS1+0*32);
for(i=0;i<4;i++)
Hanzi(2,16+i*16,DATE_TIME_WORDS1+(i+4)*32);
Hanzi(2,80,DATE_TIME_WORDS1+3*32);
for(i=0;i<4;i++)
Hanzi(4,16+i*16,DATE_TIME_WORDS1+(i+8)*32);
for(i=0;i<4;i++)
Hanzi(6,16+i*16,DATE_TIME_WORDS1+(i+12)*32);
L1=1;
L2=1;
}
////***************************************************************************//
void fun3() //第一層,顯示光控、時間控制、【物位控制】、故障檢測
{
uchar i;
InitializeLCD();
for(i=0;i<2;i++)
Hanzi(0,16+i*16,DATE_TIME_WORDS1+(i+1)*32);
for(i=0;i<4;i++)
Hanzi(2,16+i*16,DATE_TIME_WORDS1+(i+4)*32);
Hanzi(4,0,DATE_TIME_WORDS1+0*32);
for(i=0;i<4;i++)
Hanzi(4,16+i*16,DATE_TIME_WORDS1+(i+8)*32);
Hanzi(4,80,DATE_TIME_WORDS1+3*32);
for(i=0;i<4;i++)
Hanzi(6,16+i*16,DATE_TIME_WORDS1+(i+12)*32);
L1=1;
L2=1;
}
//***************************************************************************//
void fun4() //第一層,顯示光控、時間控制、物位控制、【故障檢測】
{
uchar i;
InitializeLCD();
for(i=0;i<2;i++)
Hanzi(0,16+i*16,DATE_TIME_WORDS1+(i+1)*32);
for(i=0;i<4;i++)
Hanzi(2,16+i*16,DATE_TIME_WORDS1+(i+4)*32);
for(i=0;i<4;i++)
Hanzi(4,16+i*16,DATE_TIME_WORDS1+(i+8)*32);
Hanzi(6,0,DATE_TIME_WORDS1+0*32);
for(i=0;i<4;i++)
Hanzi(6,16+i*16,DATE_TIME_WORDS1+(i+12)*32);
Hanzi(6,80,DATE_TIME_WORDS1+3*32);
L1=1;
L2=1;
BUZZ=1;
}
//////***************************************************************************//
void fun5() //第二層,顯示光控
{
uchar i;
InitializeLCD();
for(i=0;i<2;i++)
Hanzi(0,16+i*16,DATE_TIME_WORDS1+(i+1)*32);
if(EN==1)
{
L1=0;
L2=0;
}
if(EN==0)
{
L1=1;
L2=1;
}
}
//*********************************************************************************
void T0_Int1()interrupt 1
{
uchar i;
TH0=-50000/256;
TL0=-50000%256;
if(++tCount<=20)return;
tCount=0;
Reverse_Display=Adjust_Index==6; //調整年后兩位
OneChar_int(0,26,DateTime[6]/10);
OneChar_int(0,34,DateTime[6]%10);
for(i=4;i>2;i--) //顯示月、日
{
Reverse_Display=Adjust_Index==i;
OneChar_int(0,56+(4-i)*32,DateTime[i]/10);
OneChar_int(0,64+(4-i)*32,DateTime[i]%10);
}
Reverse_Display=Adjust_Index==5; //顯示星期
Hanzi_int(2,88,WEEKDAY_WORDS+(DateTime[5]%10-1)*32);
for(i=2;i>0;i--) //顯示時、分
{
Reverse_Display=Adjust_Index==i;
OneChar_int(4,26+(2-i)*32,DateTime[i]/10);
OneChar_int(4,34+(2-i)*32,DateTime[i]%10);
}
Reverse_Display=Adjust_Index==0; //顯示秒
OneChar_int(4,88,DateTime[0]/10);
OneChar_int(4,96,DateTime[0]%10);
//***************************************************************************************
if ((DateTime[0]/10>=3)&&(DateTime[0]%10>=0))//在定時時間內燈就亮
{ //秒、分、時、日、月、星期、年
L1=0; //( 0、 1、 2、 3、 4、 5、 6 )
L2=0;
}
if ( (DateTime[0]/10<=2)&&(DateTime[0]%10>=0))
{
L1=1;
L2=1;
}
}
//***************************************************************************************
void Ex_Int0()interrupt 0
{
if(K1==0)
{
if(Adjust_Index==-1||Adjust_Index==0)Adjust_Index=7;
else Adjust_Index--;
}
else if(K2==0)
{
DateTime_Adjust(1); //加1
}
else if(K3==0)
{
DateTime_Adjust(-1);
}
else if(K4==0)
{
Set_Time();
Adjust_Index=-1;
}
}
////***************************************************************************//
void fun6() //第二層,時間控制
{
uchar i;
InitializeLCD();
clearscreen(0);
OneChar(0,10,2);
OneChar(0,18,0);
for(i=0;i<3;i++)
Hanzi(0,42+i*32,DATE_TIME_WORDS+i*32);
Hanzi(2,42,DATE_TIME_WORDS+3*32);
Hanzi(2,58,DATE_TIME_WORDS+4*32);
// Hanzi(2,90,WEEKDAY_WORDS+4*32);
for(i=0;i<3;i++)
Hanzi(4,42+i*32,DATE_TIME_WORDS+(i+5)*32);
IE=0X83;
IP=0X01;
IT0=0X01;
TH0=-50000/256;
TL0=-50000%256;
TR0=1;
while(1)
{
if(K5==0)
{
TR0=0;
// IE=0;
break;
}
else if(Adjust_Index==-1)Get_Time();
}
// clearscreen(0);
// InitializeLCD();
}
//***************************************************************************************
//***************************************************************************************
////***************************************************************************//
void fun7() //第二層,物位控制
{
uchar i;
InitializeLCD();
for(i=0;i<4;i++)
Hanzi(0,0+i*16,DATE_TIME_WORDS1+(i+8)*32);
if((CK0==0)&&(K6==1))
{
L1=0;
L2=1;
}
if((CK1==0)&&(K6==1))
{
L1=1;
L2=0;
}
if((CK2==0)&&(K6==1))
{
L1=1;
L2=1;
}
////***************************************************************************//
if((CK2==0)&&(K6==0))
{
L1=1;
L2=0;
}
if((CK1==0)&&(K6==0))
{
L1=0;
L2=1;
}
if((CK0==0)&&(K6==0))
{
L1=1;
L2=1;
}
}
//***************************************************************************//
void fun8() //第二層,故障檢測
{
uchar i;
InitializeLCD();
for(i=0;i<4;i++)
Hanzi(0,0+i*16,DATE_TIME_WORDS1+(i+12)*32);
//*********************************************************************************
if( (F1==1)&&(F2==0) ) //聲光報警
{
BUZZ=0;
InitializeLCD();
for(i=0;i<5;i++)
Hanzi(4,0+i*16,DATE_TIME_WORDS1+(i+16)*32); //顯示1號燈故障
}
if((F1==0)&&(F2==1))
{
BUZZ=0;
InitializeLCD();
for(i=0;i<5;i++)
Hanzi(4,0+i*16,DATE_TIME_WORDS1+(i+21)*32); //顯示2號燈故障
}
if( (F1==1)&&(F2==1) )
{
BUZZ=0;
InitializeLCD();
for(i=0;i<5;i++)
Hanzi(4,0+i*16,DATE_TIME_WORDS1+(i+26)*32); //顯示全故障
}
if((F1==0)&&(F2==0))
{
BUZZ=1;
InitializeLCD();
for(i=0;i<5;i++)
Hanzi(4,0+i*16,DATE_TIME_WORDS1+(i+31)*32); //無故障
}
}
////***************************************************************************//
//
// void fun9() //第二層,顯示時間控制
//{
// uchar i;
// for(i=0;i<4;i++)
// Hanzi(2,0+i*16,DATE_TIME_WORDS1+(i+4)*32);
//
//
//}
////***************************************************************************//
// void fun10() //第二層,北京大學層下顯示歷史、【政治】、簡介、返回
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<2;i++)
// Hanzi(0,16+i*16,DATE_TIME_WORDS3+(i+1)*32);
//
// Hanzi(2,0,DATE_TIME_WORDS3+0*32);
//
// for(i=0;i<2;i++)
// Hanzi(2,16+i*16,DATE_TIME_WORDS3+(i+4)*32);
//
// Hanzi(2,48,DATE_TIME_WORDS3+3*32);
//
// for(i=0;i<2;i++)
// Hanzi(4,16+i*16,DATE_TIME_WORDS3+(i+6)*32);
//
//// for(i=0;i<2;i++)
//// Hanzi(6,16+i*16,DATE_TIME_WORDS3+(i+8)*32);
//
//
//}
//
////***************************************************************************//
// void fun11() //第二層,北京大學層下顯示歷史、政治、【簡介】、返回
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<2;i++)
// Hanzi(0,16+i*16,DATE_TIME_WORDS3+(i+1)*32);
//
//
// for(i=0;i<2;i++)
// Hanzi(2,16+i*16,DATE_TIME_WORDS3+(i+4)*32);
//
//
// Hanzi(4,0,DATE_TIME_WORDS3+0*32);
//
// for(i=0;i<2;i++)
// Hanzi(4,16+i*16,DATE_TIME_WORDS3+(i+6)*32);
//
// Hanzi(4,48,DATE_TIME_WORDS3+3*32);
//
//// for(i=0;i<2;i++)
//// Hanzi(6,16+i*16,DATE_TIME_WORDS3+(i+8)*32);
//
//
//}
//
////***************************************************************************//
////
//// void fun12() //第二層,北京大學層下顯示歷史、政治、簡介、【返回】
////{
//// uchar i;
//// InitializeLCD();
////
//// for(i=0;i<2;i++)
//// Hanzi(0,16+i*16,DATE_TIME_WORDS3+(i+1)*32);
////
//// for(i=0;i<2;i++)
//// Hanzi(2,16+i*16,DATE_TIME_WORDS3+(i+4)*32);
////
//// for(i=0;i<2;i++)
//// Hanzi(4,16+i*16,DATE_TIME_WORDS3+(i+6)*32);
////
////
//// Hanzi(6,0,DATE_TIME_WORDS3+0*32);
////
//// for(i=0;i<2;i++)
//// Hanzi(6,16+i*16,DATE_TIME_WORDS3+(i+8)*32);
////
//// Hanzi(6,48,DATE_TIME_WORDS3+3*32);
////
////}
//
////***************************************************************************//
//
// void fun13() //第二層,重慶三峽學院層下顯示【簡介】、最佳院系、最佳實驗室、返回
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<4;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS4+i*32);
// for(i=0;i<4;i++)
// Hanzi(2,16+i*16,DATE_TIME_WORDS4+(i+4)*32);
// for(i=0;i<5;i++)
// Hanzi(4,16+i*16,DATE_TIME_WORDS4+(i+8)*32);
//// for(i=0;i<2;i++)
//// Hanzi(6,16+i*16,DATE_TIME_WORDS4+(i+13)*32);
//
//}
//
////***************************************************************************//
// void fun14() //第二層,重慶三峽學院層下顯示簡介、【最佳院系】、最佳實驗室、返回
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<2;i++)
// Hanzi(0,16+i*16,DATE_TIME_WORDS4+(i+1)*32);
//
// Hanzi(2,0,DATE_TIME_WORDS4+0*32);
//
// for(i=0;i<4;i++)
// Hanzi(2,16+i*16,DATE_TIME_WORDS4+(i+4)*32);
//
// Hanzi(2,80,DATE_TIME_WORDS4+3*32);
//
// for(i=0;i<5;i++)
// Hanzi(4,16+i*16,DATE_TIME_WORDS4+(i+8)*32);
//
//// for(i=0;i<2;i++)
//// Hanzi(6,16+i*16,DATE_TIME_WORDS4+(i+13)*32);
//
//
//}
//
////***************************************************************************//
// void fun15() //第二層,重慶三峽學院層下顯示簡介、最佳院系、【最佳實驗室】、返回
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<2;i++)
// Hanzi(0,16+i*16,DATE_TIME_WORDS4+(i+1)*32);
//
//
// for(i=0;i<4;i++)
// Hanzi(2,16+i*16,DATE_TIME_WORDS4+(i+4)*32);
//
//
// Hanzi(4,0,DATE_TIME_WORDS4+0*32);
//
// for(i=0;i<5;i++)
// Hanzi(4,16+i*16,DATE_TIME_WORDS4+(i+8)*32);
//
// Hanzi(4,96,DATE_TIME_WORDS4+3*32);
//
//// for(i=0;i<2;i++)
//// Hanzi(6,16+i*16,DATE_TIME_WORDS4+(i+13)*32);
//
//
//}
////***************************************************************************//
////
//// void fun16() //第二層,重慶三峽學院層下顯示簡介、最佳院系、最佳實驗室、【返回】
////{
//// uchar i;
//// InitializeLCD();
////
//// for(i=0;i<2;i++)
//// Hanzi(0,16+i*16,DATE_TIME_WORDS4+(i+1)*32);
////
//// for(i=0;i<4;i++)
//// Hanzi(2,16+i*16,DATE_TIME_WORDS4+(i+4)*32);
////
//// for(i=0;i<5;i++)
//// Hanzi(4,16+i*16,DATE_TIME_WORDS4+(i+8)*32);
////
////
//// Hanzi(6,0,DATE_TIME_WORDS4+0*32);
////
//// for(i=0;i<2;i++)
//// Hanzi(6,16+i*16,DATE_TIME_WORDS4+(i+13)*32);
////
//// Hanzi(6,48,DATE_TIME_WORDS4+3*32);
////
////
////}
//
//////***************************************************************************//
//
//void fun17() //第三層,清華大學地點層
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<7;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS5+i*32);
//
//}
//
////***************************************************************************//
//
//void fun18() //第三層,清華大學創建時間層
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<8;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS6+i*32);
//
//}
//
////***************************************************************************//
//
//void fun19() //第三層,清華大學簡介層
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<7;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS7+i*32);
//
//}
//
////***************************************************************************//
//
//void fun20() //第三層,北京大學歷史層
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<7;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS8+i*32);
//
//}
////***************************************************************************//
//
//void fun21() //第三層,北京大學政治層
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<7;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS9+i*32);
//
//}
////***************************************************************************//
//
//void fun22() //第三層,北京大學簡介層
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<7;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS10+i*32);
//
//}
// //***************************************************************************//
//
//void fun23() //第三層,重慶三峽學院簡介層
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<8;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS11+i*32);
// Hanzi(2,0,DATE_TIME_WORDS11+8*32);
//
//}
// //***************************************************************************//
//
//void fun24() //第三層,重慶三峽學院最佳院系層
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<8;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS12+i*32);
// for(i=0;i<3;i++)
// Hanzi(2,0+i*16,DATE_TIME_WORDS12+(i+8)*32);
//
//}
//
// //***************************************************************************//
//
//void fun25() //第三層,重慶三峽學院最佳實驗室層
//{
// uchar i;
// InitializeLCD();
//
// for(i=0;i<8;i++)
// Hanzi(0,0+i*16,DATE_TIME_WORDS13+i*32);
// for(i=0;i<4;i++)
// Hanzi(2,0+i*16,DATE_TIME_WORDS13+(i+8)*32);
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
下載:
模擬路燈控制系統.rar
(151.8 KB, 下載次數: 161)
2017-4-25 22:30 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
dnf648222
時間:
2017-7-9 15:22
這個怎么做的
作者:
zj007
時間:
2018-1-3 13:27
學習學習,謝謝分享
作者:
51單片機小白龍
時間:
2020-4-26 12:34
有用,拿走了,,,
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1