日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 單片機(jī) > 單片機(jī)
[導(dǎo)讀]作業(yè)1:數(shù)碼管前三位數(shù)顯示一個(gè)跑表,從000到999,之間以百分之一秒的速度運(yùn)行,當(dāng)按下key1時(shí)跑表停止,再次按下時(shí)跑表開(kāi)始#include#define uint unsigned int#define uchar unsigned charsbit dula =P2^6;sbit wela

作業(yè)1:數(shù)碼管前三位數(shù)顯示一個(gè)跑表,從000到999,之間以百分之一秒的速度運(yùn)行,當(dāng)按下key1時(shí)跑表停止,再次按下時(shí)跑表開(kāi)始


#include

#define uint unsigned int

#define uchar unsigned char

sbit dula =P2^6;

sbit wela = P2^7;

sbit key1 = P3^7;

uchar aa,flag,bai,shi,ge,tt;

uint num,bb;

void init();

void keyscan();

void delay(uint z);

void display(uchar bai,uchar shi,uchar ge);

uchar code table[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

main()

{

init();

P3 = 0xff;

while(1)

{

display(bai,shi,ge);

if(key1==0)//檢測(cè)是否按下

{

delay(10);

if(key1==0)//確實(shí)按下了

{

TR0 = 0;//定時(shí)器停止

bb ++;//計(jì)算按下的次數(shù)

while(!key1)

display(bai,shi,ge);

if(bb %2==0)

{

TH0 =(65536-50000)/256;//裝初值

TL0 =(65536-50000)%256;

TR0 = 1;//重啟定時(shí)器

}

}

}

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void init()

{

TMOD = 0x01;

TH0 =(65536-50000)/256;

TL0 =(65536-50000)%256;

EA = 1;

ET0 = 1;

TR0 = 1;

}

void time0()interrupt 1

{

TH0 =(65536-50000)/256;

TL0 =(65536-50000)%256;

aa++;

if(aa==2)

{

aa = 0;

num ++;

if(num==1000)

num=0;

}

bai = num/100;

shi = num/10%10;

ge = num%10;

}

void display(uchar bai,uchar shi,uchar ge)

{

wela = 1;

P0 = 0xfe;

wela = 0;

P0 = 0x0;//消影操作

dula = 1;

P0 = table[bai];

dula = 0;

tt = 25;

while(tt--);

dula = 1;//關(guān)燈操作,高速度掃描時(shí)必備

P0 = 0;

dula = 0;

wela = 1 ;

P0 = 0xfd;

wela = 0;

P0= 0x0;//消影操作

dula = 1;

P0 = table[shi];

dula = 0;

tt = 25;

while(tt--);

dula = 1;//關(guān)燈操作,高速度掃描時(shí)必備

P0 = 0;

dula = 0;

wela = 1;

P0 = 0xfb;

wela = 0;

P0 = 0x0;//消影操作

dula = 1;

P0 = table[ge];

dula =0;

tt=25;

while(tt --);

dula = 1;//關(guān)燈操作,高速度掃描時(shí)必備

P0 = 0;

dula = 0;

}

在上題目的基礎(chǔ)上,用另外三個(gè)獨(dú)立鍵盤實(shí)現(xiàn)按下第一個(gè)時(shí)計(jì)數(shù)停止,按下第二個(gè)時(shí)計(jì)數(shù)開(kāi)始,按下第三個(gè)時(shí)計(jì)數(shù)清零重新開(kāi)始


#include

#define uint unsigned int

#define uchar unsigned char

sbit dula =P2^6;

sbit wela = P2^7;

sbit key1 = P3^3;

sbit key2 = P3^4;

sbit key3 = P3^5;

sbit key4 = P3^6;

uchar aa,flag,bai,shi,ge,tt;

uint num,bb;

void init();

void keyscan();

void delay(uint z);

void display(uchar bai,uchar shi,uchar ge);

uchar code table[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71};

main()

{

init();

P3 = 0xff;

while(1)

{

display(bai,shi,ge);

if(key1==0)//檢測(cè)是否按下

{

delay(10);

if(key1==0)//確實(shí)按下了

{

TR0 = 0;//定時(shí)器停止

while(!key1)

display(bai,shi,ge);

TR0 = 1;//重啟定時(shí)器

}

}

if(key2==0)

{

delay(10);

if(key2==0)

{

TR0 = 0;//定時(shí)器停止

while(!key2)

display(bai,shi,ge);

}

}

if(key3==0)

{

delay(10);

if(key3==0)

{

TH0=(65536-50000)/256;

TL0 = (65536-50000)%256;

TR0 = 1;//重啟定時(shí)器

while(!key3)

display(bai,shi,ge);//不加入這句話有很大的bug

}

}

if(key4==0)

{

delay(10);

if(key4==0)

{

num = 0;//重新開(kāi)始計(jì)數(shù)

while(!key4)

display(bai,shi,ge);

}

}

}

}

void delay(uint z)

{

uint x,y;

for(x=z;x>0;x--)

for(y=110;y>0;y--);

}

void init()

{

TMOD = 0x01;

TH0 =(65536-50000)/256;

TL0 =(65536-50000)%256;

EA = 1;

ET0 = 1;

TR0 = 1;

}

void time0()interrupt 1

{

TH0 =(65536-50000)/256;

TL0 =(65536-50000)%256;

aa++;

if(aa==2)

{

aa = 0;

num ++;

if(num==1000)

num=0;

}

bai = num/100;

shi = num/10%10;

ge = num%10;

}

void display(uchar bai,uchar shi,uchar ge)

{

wela = 1;

P0 = 0xfe;

wela = 0;

P0 = 0x0;//消影操作

dula = 1;

P0 = table[bai];

dula = 0;

tt = 25;

while(tt--);

dula = 1;//關(guān)燈操作,高速度掃描時(shí)必備

P0 = 0;

dula = 0;

wela = 1 ;

P0 = 0xfd;

wela = 0;

P0= 0x0;//消影操作

dula = 1;

P0 = table[shi];

dula = 0;

tt = 25;

while(tt--);

dula = 1;//關(guān)燈操作,高速度掃描時(shí)必備

P0 = 0;

dula = 0;

wela = 1;

P0 = 0xfb;

wela = 0;

P0 = 0x0;//消影操作

dula = 1;

P0 = table[ge];

dula =0;

tt=25;

while(tt --);

dula = 1;//關(guān)燈操作,高速度掃描時(shí)必備

P0 = 0;

dula = 0;

}

作業(yè)3:按下16個(gè)矩陣鍵盤依次在數(shù)碼管上顯示1到16的平方


#in

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除( 郵箱:macysun@21ic.com )。
換一批
延伸閱讀
關(guān)閉