亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 液晶顯示1602與遙控程序演示!.txt

?? 1602液晶屏的多個參考程序
?? TXT
字號:


 
液晶顯示1602與遙控程序演示!
//遙控帶液晶顯示程序,已經調試完畢2002/10/30
//并可顯示時鐘
//若遙控接收不到,修改脈寬值即可
//
//-----------------------------------------------
//http://www.mcu123.com
//Email:ycxms88@163.com
//作者:Mingtree
//-----------------------------------------------
#include <reg51.h>
#include<intrins.h>
#include<absacc.h>

//變量類型標識的宏定義,
#define uchar unsigned char
#define uint unsigned int

#define DEDA 20
unsigned char deda=0;

// 1602 控制引腳定義,
sbit RS = P0^0;
sbit RW = P0^1;
sbit Elcm =P0^2;
#define DATAPORT P1 // 數據端口
#define busy 0x80 //用于檢查寫忙信號


//外鍵控制(本程序未用,現在用遙控控制)
sbit act=P2^1; /*加鍵*/
sbit deb=P2^0; /*減鍵*/
sbit cong=P2^2; /*功能鍵*/



char data led6[8];/*六位顯示緩沖區*/

code char love[]="I LOVE YOU ";

code char time[]="0123456789ABCDEF:MinHour ";

unsigned char hour=0,min=0,sec=0;
bit menu=0;
bit up=0;
bit dw=0;
#define temp1 DBYTE[0x50]
#define temp2 DBYTE[0x51]
#define temp3 DBYTE[0x52]
#define temp4 DBYTE[0x53]
#define temp5 DBYTE[0x54]
//遙控
unsigned char yt; //中斷次數
bit start=0; //起碼標志
bit h=0; //解碼標志
unsigned char da=0; //暫存數據
unsigned char gt=0,gv=0; //

//
void delay400ms(void);
void delay5ms(void);
void lcdreset( void ); //LCD RESET
void WaitForEnable( void ); //忙信號檢測

void lcdwrite_c( uchar CMD,uchar AttribC );//
void DispOneChar(uchar x,uchar y,uchar Wdata);//顯示一個字符
void LocateXY( char posx,char posy);
void LcdWrite_D( char dataW ) ; //寫一個數據
void yk(void);
/*鍵盤檢測*/
void acct_1(void);
unsigned char conh=0; /*功能鍵鍵值*/
void key_hit(unsigned char add3);
void delay(void);

/*定時初始化------------*/
void init_timer()
{
TMOD=0x11;
TH0=0x4c;
TL0=0x00;

IP=0x10;
IE=0X82;
TR0=1;
IT0=1; //邊沿觸發方式 
EX0=1; //INT0

}
/*------------------------*/
/*----------顯示緩沖區放數子程序--------------*/
void gift_in(void){
if(conh==0){
led6[0]=hour/10;
led6[1]=hour%10;
led6[2]=16;
led6[3]=min/10;
led6[4]=min%10;
led6[5]=16;
led6[6]=sec/10;
led6[7]=sec%10;
}
else if(conh==1){
led6[0]=17;
led6[1]=18;
led6[2]=19;
led6[3]=16;
led6[4]=min/10;
led6[5]=min%10;
led6[6]=24;
led6[7]=24;
}
else{
led6[0]=20;
led6[1]=21;
led6[2]=22;
led6[3]=23;
led6[4]=16;
led6[5]=hour/10;
led6[6]=hour%10;
led6[7]=24;


}
}
/*----------時間判斷子程序--------------*/

conv()
{ 
if(sec==60){min++;sec=0;}
if(min==60){hour++;min=0;}
if(hour==24) hour=0;

gift_in();
}
/*-----------中斷服務程序-------------*/
void time8()interrupt 1 using 3
{
TH0=0x4c;
TL0=0x00;

deda++;
if(deda==DEDA)
{
sec++;deda=0;

}
conv(); 
}

/*-----------送顯子程序-------------*/
void disp1(uchar x,uchar y) {
unsigned char *pd;
unsigned char*kt;
unsigned char b;
kt=&led6[0]; /*送led的首地址給指針KT*/
for(b=0;b<8;b++){ /* 顯示六位*/
pd=&time[*kt]; /*查表---送要顯示的碼給指針pd*/
kt++; /*緩沖區加1*/
DispOneChar(x,y,*pd);
x++; //顯示位置X
}
}

/*------------------------*/


/*=======================================================
顯示字符串
=======================================================*/
void disp(uchar x,uchar y,char *ptr) {
uchar i,l=0;
while (ptr[l] >31){l++;};
for (i=0;i<l;i++) {
DispOneChar(x++,y,ptr[i]);
if ( x == 16 ){
x = 0; y ^= 1;
}
}
}

/*=======================================================
按指定位置顯示數出一個字符
=======================================================*/
void DispOneChar(uchar x,uchar y,uchar Wdata) {

LocateXY( x, y ); // 定位顯示地址
LcdWrite_D( Wdata ); // 寫字符
}

/*=======================================================
顯示光標定位
=======================================================*/
void LocateXY( char posx,char posy) {

uchar temp;

temp = posx & 0xf;
posy &= 0x1;
if ( posy )temp |= 0x40;
temp |= 0x80;
lcdwrite_c(temp,0);
}
//初始化
void lcdreset(void){
lcdwrite_c(0x38, 0); //顯示模式設置(不測試忙信號)共三次
delay5ms();
lcdwrite_c(0x38, 0);
delay5ms();
lcdwrite_c(0x38, 0);
delay5ms();

lcdwrite_c( 0x38, 1);
lcdwrite_c( 0x08, 1);
lcdwrite_c( 0x01, 1);
lcdwrite_c( 0x06, 1);
lcdwrite_c( 0x0c, 1);

}



/*=======================================================
寫控制字符子程序: E=1 RS=0 RW=0
=======================================================*/
void lcdwrite_c( uchar CMD,uchar AttribC ) {

if (AttribC) WaitForEnable(); // 檢測忙信號?

RS = 0; RW = 0; _nop_();

DATAPORT =CMD; _nop_(); // 送控制字子程序

Elcm = 1;_nop_();_nop_();Elcm = 0; // 操作允許脈沖信號 
}

/*=======================================================*/
/*=======================================================
當前位置寫字符子程序: E =1 RS=1 RW=0
=======================================================*/
void LcdWrite_D( char dataW ) {

WaitForEnable(); // 檢測忙信號

RS = 1; RW = 0; _nop_();

DATAPORT = dataW; _nop_();

Elcm = 1; _nop_(); _nop_(); Elcm = 0; // 操作允許脈沖信號 

}

/*=======================================================
正常讀寫操作之前必須檢測LCD控制器狀態: CS=1 RS=0 RW=1
DB7: 0 LCD控制器空閑; 1 LCD控制器忙
========================================================*/
void WaitForEnable( void ) {

DATAPORT = 0xff;

RS =0; RW = 1; _nop_(); Elcm = 1; _nop_(); _nop_();

while( DATAPORT & busy );

Elcm = 0;
} 






// 短延時
void delay5ms(void)
{
uint i = 5552;
while(i--);
}

//長延時
void delay400ms(void)
{
uchar i = 5;
uint j;
while(i--)
{
j=7269;
while(j--);
};
}


/*-------延時---------------*/
void delay(void){
int r;
int e;
for(r=0;r<500;r++){ /*外層循環*/
_nop_ (); /* delay for hardware */
_nop_ (); /* delay for hardware */
_nop_ (); /* delay for hardware */
for(e=0;e<3;e++){ /*內層循環*/
_nop_ (); /* delay for hardware */
_nop_ (); /* delay for hardware */
_nop_ (); /* delay for hardware */
_nop_ (); /* delay for hardware */
_nop_ (); /* delay for hardware */
}
}
}

/*----------功能鍵識別子程序--------------*/
void acct_1(void){

tf: _nop_();
if(menu){
menu=0;
conh++;
if(conh==3) conh=0;
}


if(conh==1){key_hit(min); //低位設置
conv();
disp1(3,0);
delay();
}
if(conh==2){key_hit(hour); //高位設置
conv();
disp1(3,0);
delay();

}
/* if(conh==3){key_hit(thtl) //顯示高位,低位
conv();


delay();
delay();
delay();
delay();
delay();
}
if(conh==4){key_hit(save); 
conv();
disp();
delay();

}*/
yk();
if(!conh==0) goto tf; /*功能設置完畢?未設置則繼續執行功能鍵處理*/
}


/*-----------加減鍵處理子程序-------------*/
/*按鍵處理*/
void key_hit(unsigned char add3)
{ 
if(dw){ 
dw=0; /*減鍵*/
add3--;
if(add3>=60) add3=0;
if(conh==1) min=add3;
if(conh==2) hour=add3;
conv();
disp1(3,0);
}

if(up){ /*加鍵*/
up=0; /*減鍵*/
add3++;
if(add3==60) add3=0;
if(conh==1) min=add3;
if(conh==2) hour=add3;
conv();
disp1(3,0);

}


if(conh==1) min=add3;
if(conh==2) hour=add3;

}


//遙控碼識別
void yk(void){
if(temp2==0xe2){
if(temp4==0xf1){
if(temp3==0x2c){
if(temp5==0x16){ //功能鍵
menu=1;
temp3=0;
temp5=0;
}

}
if(temp3==0x44){
if(temp5==0x22){ //加鍵
up=1;
temp3=0;
temp5=0;
}
}
if(temp3==0x54){
if(temp5==0x2a){ //減鍵
dw=1;
temp3=0;
temp5=0;
}

}
}


}
}



//遙控中斷除理

void int0a()interrupt 0 using 2
{
// TH1=TL1=0;

//TR0=1; //啟動定時器
yt++; //中斷次數
if(yt==1)
{
TH1=TL1=0;
TR1=1; //啟動定時器
}

if(yt==2)
{
temp1=TH1; //為起始
TH1=TL1=0;
if(temp1>=0x1f)
{ //大于8ms
start=1; //置起碼標志
}
else 
{
start=0;
yt=0;
TR1=0;
}
}


else
{
if(start==1)
{ //是起始才可以繼續接收
temp1=TH1; //裝入上次定時值
TH1=TL1=0; //重新計數
if(temp1>=0x05)
{ //大于1.2ms
h=1;
}
else if(temp1>=0x01)
{ //大于0.25ms

h=0;
}
da*=2;
if(h) da++;
gt++;
if(gt==8)
{ //讀8位
gt=0;gv++;
if(gv==1) temp2=da;
if(gv==2) temp3=da;
if(gv==3) temp4=da;
if(gv==4) 
{temp5=da;
gv=0;
start=0;
yt=0;
TR1=0;
}

da=0;
}

}



}
}
/*------------------------*/

void main(void)
{
init_timer();
led6[0]=0;
led6[1]=2;
led6[2]=2;
led6[3]=2;
led6[4]=2;
led6[5]=2;
lcdreset(); //初始化
delay400ms();
disp1(3,0);
disp(2,1,love); //顯示

delay400ms();

// DispOneChar(0,1,time[1]);
while(1)
{
delay400ms();
disp1(3,0);
acct_1();
yk();
}


}
各位見笑了.
工程下載
歡迎進入超前MCU技術論壇對液晶顯示1602與遙控程序演示!進行討論! 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜精品一区二区三区三上悠亚| 精品一二线国产| 麻豆精品国产91久久久久久| 国产一区二区0| 欧美人成免费网站| 久久久国产一区二区三区四区小说| 亚洲精品国产精品乱码不99 | 亚洲韩国精品一区| 国产一区二区三区黄视频 | 男人的j进女人的j一区| 色综合久久久久| 中文字幕高清一区| 六月婷婷色综合| 欧美疯狂做受xxxx富婆| 亚洲欧美激情视频在线观看一区二区三区 | 欧美日韩卡一卡二| 国产精品入口麻豆九色| 韩国av一区二区三区四区 | 欧美性xxxxxx少妇| 亚洲欧美综合在线精品| 国产成人在线色| 欧美精品一区二区高清在线观看| 亚洲成va人在线观看| 欧美最猛黑人xxxxx猛交| 亚洲啪啪综合av一区二区三区| 国产白丝精品91爽爽久久| 精品欧美一区二区久久| 麻豆高清免费国产一区| 日韩一区国产二区欧美三区| 日韩精品电影一区亚洲| 欧美一区二区免费视频| 日本va欧美va瓶| 日韩一区二区免费在线电影| 日韩av电影天堂| 日韩一区二区在线看片| 久久99久国产精品黄毛片色诱| 91精品国产综合久久久蜜臀粉嫩 | 老司机精品视频导航| 欧美福利一区二区| 日韩成人av影视| 日韩视频一区二区在线观看| 精品无人码麻豆乱码1区2区| 亚洲精品一线二线三线| 高清国产一区二区| 一区免费观看视频| 在线影院国内精品| 日韩电影在线免费观看| 2017欧美狠狠色| 成人福利视频网站| 亚洲精品日产精品乱码不卡| 欧美性一二三区| 久久精品国产一区二区三区免费看| 欧美精品一区男女天堂| 99re在线视频这里只有精品| 亚洲一区在线视频观看| 91精品国产综合久久福利软件| 国产在线精品免费| 亚洲嫩草精品久久| 日韩精品在线一区| 99热精品一区二区| 日韩国产精品久久久| 久久久综合视频| 色婷婷综合久久久久中文一区二区| 一区二区三区在线看| 日韩欧美国产综合在线一区二区三区| 国产在线视频一区二区| 亚洲欧美视频一区| 日韩一二三四区| 97精品久久久午夜一区二区三区| 日韩av不卡在线观看| 国产精品白丝在线| 欧美一卡在线观看| 一本久久综合亚洲鲁鲁五月天| 五月天精品一区二区三区| 国产午夜精品一区二区三区四区| 欧美性猛交一区二区三区精品| 国内久久精品视频| 亚洲不卡一区二区三区| 中文字幕第一区二区| 欧美日韩一区二区三区免费看| 国产精品一二一区| 日韩精品一区第一页| 成人欧美一区二区三区| 欧美成人一级视频| 欧美日韩国产一级| 成人国产精品免费网站| 精品中文av资源站在线观看| 午夜亚洲福利老司机| 亚洲人成网站精品片在线观看| 精品国产91洋老外米糕| 欧美精品一二三区| 91成人免费在线视频| thepron国产精品| 精品一区二区精品| 美国精品在线观看| 亚洲成国产人片在线观看| 18涩涩午夜精品.www| 中文字幕不卡在线观看| 久久久综合九色合综国产精品| 欧美久久一二区| 欧洲国产伦久久久久久久| 一本大道综合伊人精品热热 | 欧美高清视频不卡网| 色哟哟一区二区| 91在线视频在线| 成人午夜视频网站| 国产99久久精品| 国产成人午夜电影网| 激情综合色播激情啊| 另类小说视频一区二区| 蜜臀av性久久久久av蜜臀妖精 | 中文字幕亚洲综合久久菠萝蜜| 精品久久久久久久久久久久久久久久久 | 国产一区二区不卡在线| 日本不卡视频一二三区| 日本亚洲视频在线| 久久国产精品99精品国产| 青青草91视频| 蜜桃精品视频在线| 免费看欧美女人艹b| 久久激情综合网| 国产精品99久久久久久久vr| 国产一区二区在线看| 成人免费视频视频在线观看免费| 成人免费va视频| 91欧美一区二区| 欧美日产在线观看| 日韩精品一区国产麻豆| 国产欧美精品一区二区色综合| 国产精品视频一二三| 亚洲欧美一区二区三区极速播放| 亚洲六月丁香色婷婷综合久久| 亚洲一区二区三区自拍| 欧美a级一区二区| 成人免费看的视频| 欧美午夜电影一区| 精品久久久久久久一区二区蜜臀| 国产亚洲成年网址在线观看| 亚洲视频你懂的| 五月天久久比比资源色| 国产成人精品免费视频网站| 91蝌蚪porny| 日韩欧美你懂的| 亚洲欧美综合色| 免费高清成人在线| thepron国产精品| 欧美精品成人一区二区三区四区| 亚洲精品一区二区三区四区高清| 国产精品麻豆久久久| 久久成人麻豆午夜电影| 成人av电影观看| 91精品国产91久久综合桃花| 久久精品在线观看| 亚洲国产成人porn| 经典一区二区三区| 91九色最新地址| 精品国产成人系列| 亚洲男同1069视频| 麻豆极品一区二区三区| 色偷偷久久人人79超碰人人澡| 日韩一卡二卡三卡四卡| 亚洲精选在线视频| 国产在线精品国自产拍免费| 欧美三级乱人伦电影| 欧美国产精品一区| 免费不卡在线观看| 色综合久久久久综合99| 精品美女在线观看| 午夜精品久久久久久久久| 99久久99久久精品免费看蜜桃| 欧美一区二区三区色| 一区二区三区中文字幕| 成人深夜视频在线观看| 精品久久久久久无| 日韩国产精品91| 欧洲av一区二区嗯嗯嗯啊| 国产精品拍天天在线| 麻豆91在线播放| 欧美一区二区三区四区久久| 亚洲精品一卡二卡| 波多野结衣在线aⅴ中文字幕不卡| 欧美xxxx老人做受| 免费精品视频在线| 91精品一区二区三区久久久久久| 亚洲免费av高清| www..com久久爱| 国产精品每日更新在线播放网址| 国产精品乡下勾搭老头1| 欧美草草影院在线视频| 看电视剧不卡顿的网站| 日韩欧美中文字幕制服| 视频一区二区三区在线| 欧美精品色一区二区三区| 亚洲国产一区二区在线播放| 91传媒视频在线播放| 亚洲国产日韩综合久久精品| 欧美天堂一区二区三区| 亚洲国产精品久久人人爱蜜臀| 欧美自拍偷拍午夜视频| 亚洲第一二三四区|