亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码
標(biāo)題:
單片機數(shù)碼管分兩組顯示,第一屏日期,第二屏?xí)r間,并且可調(diào)。每隔5s變化一次
[打印本頁]
作者:
172229507
時間:
2017-9-1 10:06
標(biāo)題:
單片機數(shù)碼管分兩組顯示,第一屏日期,第二屏?xí)r間,并且可調(diào)。每隔5s變化一次
想要的結(jié)果是:如果按starts1 鍵,顯示停止刷新進(jìn)入調(diào)節(jié)時間和日期模式。(如果顯示的是日期就調(diào)節(jié)日期,如果顯示的是時間就調(diào)節(jié)時間),調(diào)節(jié)完后再按starts1鍵計時開始。
現(xiàn)在的問題是:進(jìn)入keysanc函數(shù)后還是每隔5s變換顯示。
幫助:我是初學(xué)者程序有好多比較啰嗦,還請幫忙修改指正,并能達(dá)到效果,172229507 謝謝謝!
/*#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit starts1=P3^4;
sbit miaos2=P3^5;
sbit fens3=P3^6;
sbit shis4=P3^7;
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table1[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar t,num,num1,nian ,yue ,ri,flag ,s6,s7,s8;
char shi,fen,miao;
void delay(uint x) //延時函數(shù)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void display_seg(uchar num1,uchar num) //顯示函數(shù)
{
dula=1;
P0=table[num];
dula=0;
P0=0xff; //消隱
wela=1;
P0=table1[num1];
wela=0;
delay(1);
}
void display1(uchar x,uchar y) //分離函數(shù)
{
uint shi,ge; //定義變量
shi=y/10;
ge=y%10;
if(x==1) //x=1 表示年,
{
display_seg(5,shi); //小時的十位
delay(2);
display_seg(4,ge); //小時的個位
delay(2);
}
if(x==2) //x=2 表示月
{
display_seg(3,shi); //分鐘的十位
delay(2);
display_seg(2,ge); //分鐘的個位
delay(2);
}
if(x==3) //x=3 表示日
{
display_seg(1,shi); //秒的十位
delay(2);
display_seg(0,ge); //秒的個位
delay(2);
}
}
void reflash1() //刷新函數(shù)
{
display1(1,nian);
display1(2,yue);
display1(3,ri);
}
void display2(uchar x,uchar y) //分離函數(shù)
{
uint shi,ge; //定義變量
shi=y/10;
ge=y%10;
if(x==1) //x=1 表示小時,
{
display_seg(5,shi); //小時的十位
delay(2);
display_seg(4,ge); //小時的個位
delay(2);
}
if(x==2) //x=2 表示分鐘
{
display_seg(3,shi); //分鐘的十位
delay(2);
display_seg(2,ge); //分鐘的個位
delay(2);
}
if(x==3) //x=3 表示秒
{
display_seg(1,shi); //秒的十位
delay(2);
display_seg(0,ge); //秒的個位
delay(2);
}
}
void reflash2() //刷新函數(shù)
{
display2(1,nian);
display2(2,yue);
display2(3,ri);
}
void init() //初始化 中斷
{
TMOD=0X01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void keyscan1() //按鍵加程序
{
if(starts1==0) //功能鍵,如果有按鍵按下記時停止,開始調(diào)節(jié)時間
{
delay(5);
if(starts1==0)
{
TR0=~TR0; //按鍵一次停止計數(shù)第二次案件開始計數(shù)
}while(!starts1);
}
if(miaos2==0) //秒調(diào)節(jié)
{
TR0=0; //關(guān)閉定時器
delay(5);
if(miaos2==0)
{
miao++;
if(miao==60)
miao=0;
} while(!miaos2); //去抖
}
if(fens3==0) //調(diào)節(jié)分鐘
{
delay(5);
if(fens3==0)
{
fen++;
if(fen==60)
fen=0;
}while(!fens3);
}
if(shis4==0) //調(diào)節(jié)時
{
delay(5);
if(shis4==0)
{
shi++;
if(shi==24)
shi=0;
}while(!shis4);
}
}
void main()
{
uint x,y;
init();
while(1)
{
for(x=0;x<300;x++)
{
reflash1();
}
for(y=0;y<300;y++)
{
reflash2();
}
}
}
void time0() interrupt 1 //定時器/ 計數(shù)器0工作方式1
{
TH0=(65536-9216)/256; //初值的計算=65536-定時時間(s)/機器周期=65536-定時時間*晶振頻率/12
TL0=(65536-9216)%256; //設(shè)定的是10ms
t++;
if(t==100) //循環(huán)100次 10ms*100=1000ms=1s
{
t=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
shi=0;
}
}
}
}
復(fù)制代碼
作者:
zl2168
時間:
2017-9-1 19:13
秒時間也每隔5s變換顯示?
作者:
cjjcjj1
時間:
2017-9-2 09:03
提示:
作者被禁止或刪除 內(nèi)容自動屏蔽
作者:
lids
時間:
2017-9-28 16:29
鍵盤掃描函數(shù)沒調(diào)用,你按鍵肯定沒用
作者:
dzbj
時間:
2017-9-28 23:29
cjjcjj1 發(fā)表于 2017-9-2 09:03
你好!對你的要求沒有完全看明白
他就是想每屏顯示的內(nèi)容不一樣 每隔5s切換一個屏 任意屏內(nèi) 按下按鍵調(diào)節(jié)當(dāng)前屏的內(nèi)容
它遇到的問題是 切換可以了 但按下后還是過5s就切換 停不下來 不能調(diào)節(jié)當(dāng)前屏的東西
作者:
lids
時間:
2017-9-29 09:24
給你改了一下,實現(xiàn)了你想要的功能,年月日顯示的一個固定的數(shù)字,要使年月日跑起來,你自己在中斷里面寫
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit starts1=P3^0;
sbit miaos2=P3^1;
sbit fens3=P3^2;
sbit shis4=P3^3;
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
uchar code table1[]={0xdf,0xef,0xf7,0xfb,0xfd,0xfe};
uchar t,num,num1,nian=17 ,yue=9 ,ri=29,s6,s7,s8;
char shi=8,fen=15,miao;
uint cnt;//顯示切換計時
bit flag;
void delay(uint x) //延時函數(shù)
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void display_seg(uchar num1,uchar num) //顯示函數(shù)
{
dula=1;
P0=table[num];
dula=0;
P0=0xff; //消隱
wela=1;
P0=table1[num1];
wela=0;
delay(1);
}
void display1(uchar x,uchar y) //分離函數(shù)
{
uint shi,ge; //定義變量
shi=y/10;
ge=y%10;
if(x==1) //x=1 表示年,
{
display_seg(5,shi); //小時的十位
delay(2);
display_seg(4,ge); //小時的個位
delay(2);
}
if(x==2) //x=2 表示月
{
display_seg(3,shi); //分鐘的十位
delay(2);
display_seg(2,ge); //分鐘的個位
delay(2);
}
if(x==3) //x=3 表示日
{
display_seg(1,shi); //秒的十位
delay(2);
display_seg(0,ge); //秒的個位
delay(2);
}
}
void reflash1() //刷新函數(shù)
{
display1(1,shi);
display1(2,fen);
display1(3,miao);
}
void display2(uchar x,uchar y) //分離函數(shù)
{
uint shi,ge; //定義變量
shi=y/10;
ge=y%10;
if(x==1) //x=1 表示小時,
{
display_seg(5,shi); //小時的十位
delay(2);
display_seg(4,ge); //小時的個位
delay(2);
}
if(x==2) //x=2 表示分鐘
{
display_seg(3,shi); //分鐘的十位
delay(2);
display_seg(2,ge); //分鐘的個位
delay(2);
}
if(x==3) //x=3 表示秒
{
display_seg(1,shi); //秒的十位
delay(2);
display_seg(0,ge); //秒的個位
delay(2);
}
}
void reflash2() //刷新函數(shù)
{
display2(1,nian);
display2(2,yue);
display2(3,ri);
}
void init() //初始化 中斷
{
TMOD=0X01;
TH0=(65536-9216)/256;
TL0=(65536-9216)%256;
EA=1;
ET0=1;
TR0=1;
}
void keyscan1() //按鍵加程序
{
if(starts1==0) //功能鍵,如果有按鍵按下記時停止,開始調(diào)節(jié)時間
{
delay(10);
if(starts1==0)
{
TR0 =! TR0; //按鍵一次停止計數(shù)第二次案件開始計數(shù)
}while(!starts1);
}
if(miaos2==0) //秒調(diào)節(jié)
{
delay(10);
if(miaos2==0)
{
miao++;
if(miao>=60)
miao=0;
} while(!miaos2);
}
if(fens3==0) //調(diào)節(jié)分鐘
{
delay(10);
if(fens3==0)
{
fen++;
if(fen==60)
fen=0;
}while(!fens3);
}
if(shis4==0) //調(diào)節(jié)時
{
delay(10);
if(shis4==0)
{
shi++;
if(shi==24)
shi=0;
}while(!shis4);
}
}
void main()
{
init();
while(1)
{
keyscan1();
if(flag==0)
{
reflash1();
}
else
{
reflash2();
}
}
}
void time0() interrupt 1 //定時器/ 計數(shù)器0工作方式1
{
TH0=(65536-9216)/256; //初值的計算=65536-定時時間(s)/機器周期=65536-定時時間*晶振頻率/12
TL0=(65536-9216)%256; //設(shè)定的是10ms
cnt++;
t++;
if(t==100) //循環(huán)100次 10ms*100=1000ms=1s
{
t=0;
miao++;
if(miao==60)
{
miao=0;
fen++;
if(fen==60)
{
fen=0;
shi++;
if(shi==24)
shi=0;
}
}
}
if(cnt==500) //5s切換顯示
{
cnt=0;
flag =! flag;
}
}
復(fù)制代碼
歡迎光臨 (http://www.denmoz.com/bbs/)
Powered by Discuz! X3.1