久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單片機按鍵按著沒反應,各位大神來幫看看
[打印本頁]
作者:
風案件快遞
時間:
2017-12-10 22:39
標題:
單片機按鍵按著沒反應,各位大神來幫看看
代碼如下
實現功能:
上電自檢,數碼管 LED 全亮, 3 秒鐘后黑屏,然后蜂鳴器響 200mS;
(25 分)
2 按鍵 S4,顯示學號后四位;(15 分)
3 按下 S5, 測溫,即顯示當前溫度;
再次按下 S5,將溫度顯示為華氏溫度。(25 分)
4 按下 S6,存儲當前溫度;(15 分)
5 按下 S7,顯示存儲溫度;再次按下 S7,將溫度顯示為華氏溫度。
卡在寫按鍵很久了,不知道哪有邏輯問題,大神幫忙看看
單片機源程序如下:
#include<STC15F2K60S2.H>
#include<onewire.h>
#define uchar unsigned char
#define uint unsigned int
// 0 1 2 3 4 5 6 7 8 9 . a b c d e f 熄滅
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x7f,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xFF};
uchar yi,er,san,si,wu ,liu,qi,ba,temp,b;
int num=600;int nun=640;
int ducunwendu[];
void delayms(int ms);
void allinit();
int keycan();
void Timer0Init(void);
void display1(uchar yi,uchar er);
void display2(uchar san,uchar si);
void display3(uchar wu,uchar liu);
void display4(uchar qi,uchar ba);
void main()
{float wendu;float huashi;int x;
allinit();
P0=0X00;
P2=0X80;
P0=0X00;
Timer0Init();
while(1)
{
keycan();
x=keycan();
if(x==1)
{
}
else if(x==2)
{
}
else if(x==3)
{
b++;
if(b==1)
{yi=17;er=17;san=17;si=17;wu=17;
wendu=rd_temperature_f();
wu=(int)(wendu/10)%10;
liu=(int)wendu%10;
P2=0XFF;
qi=(int)(wendu*10)%10;
ba= 13;
display1(yi,er);
display2(san,si);
display3(wu,liu);
display3(wu,10);
display4(qi,ba);}
if(b==2)
{
yi=17;er=17;san=17;si=17;wu=17;
wendu=rd_temperature_f();
huashi=wendu*1.8+32;
wu=(int)(huashi/10)%10;
liu=(int)huashi%10;
P2=0XFF;
qi=(int)(huashi*10)%10;
ba= 13;
display1(yi,er);
display2(san,si);
display3(wu,liu);
display3(wu,10);
display4(qi,ba);
b=0;
}
}
else if(x==4)
{yi=17;er=17;san=17;si=17;
wu=8;liu=0;qi=3;ba=4;
display1(yi,er);
display2(san,si);
display3(wu,liu);
display4(qi,ba);
}
}
}
void delayms(int ms)
{
int i,j;
for(i=ms;i>0;i--)
for(j=845;j>0;j--);
}
void allinit()
{
P2=0XA0;
P0=0X00;//關閉蜂鳴器,繼電器
P2=0X80;
P0=0XFF;//關閉LED燈
P2=0XC0;
P0=0XFF;//選擇所有數碼管
P2=0XFF;
P0=0XFF;//關閉所有數碼管
}
void display1(uchar yi,uchar er)
{
P2=0XC0;//打開位選573 U8
P0=0X01;//選擇第一個數碼管
P2=0XFF;//打開段選573 U7
P0=tab[yi];
delayms(1);
P2=0XC0;//打開位選573 U8
P0=0X02;//選擇第二個數碼管
P2=0XFF;//打開段選573 U7
P0=tab[er];
delayms(1);
}
void display2(uchar san,uchar si)
{
P2=0XC0;//打開位選573 U8
P0=0X04;//選擇第三個數碼管
P2=0XFF;//打開段選573 U7
P0=tab[san];
delayms(1);
P2=0XC0;//打開位選573 U8
P0=0X08;//選擇第四個數碼管
P2=0XFF;//打開段選573 U7
P0=tab[si];
delayms(1);
}
void display3(uchar wu,uchar liu)
{
P2=0XC0;//打開位選573 U8
P0=0X10;//選擇第一個數碼管
P2=0XFF;//打開段選573 U7
P0=tab[wu];
delayms(1);
P2=0XC0;//打開位選573 U8
P0=0X20;//選擇第一個數碼管
P2=0XFF;//打開段選573 U7
P0=tab[liu];
delayms(1);
}
void display4(uchar qi,uchar ba)
{
P2=0XC0;//打開位選573 U8
P0=0X40;//選擇第一個數碼管
P2=0XFF;//打開段選573 U7
P0=tab[qi];
delayms(1);
P2=0XC0;//打開位選573 U8
P0=0X80;//選擇第一個數碼管
P2=0XFF;//打開段選573 U7
P0=tab[ba];
delayms(1);
}
void Timer0Init(void) //5毫秒@11.0592MHz
{
AUXR |= 0x80; //定時器時鐘1T模式
TMOD &= 0xF0; //設置定時器模式
TL0 = 0x00; //設置定時初值
TH0 = 0x28; //設置定時初值
TF0 = 0; //清除TF0標志
TR0 = 1;
EA=1;
ET0=1; //定時器0開始計時
}
void Timer0() interrupt 1
{
num--;
nun--;
if(num==0)
{
P0=0XFF;
P2=0XFF;
P0=0XFF;
P2=0XA0;
P0=0X40;
}
if(nun==0)
{P0=0X00;}
}
int keycan()
{int s1=0;
P3=0x7f;P4=0xef;
temp=P3;
if(P3!=0x7f)
{
delayms(5);
temp=P3;
if(P3!=0x7f)
{
switch(temp)
{
case 0x7e : s1=1; break;
case 0x7d : s1=2; break;
case 0x7b : s1=3; break;
case 0x77 : s1=4; break;
}
while(temp!=0x7f)
{
temp=P3;
delayms(5);
}
}
}
return s1;
}
復制代碼
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
中文字幕日韩欧美
|
亚洲成人免费视频
|
国产九九精品视频
|
成人一区二区三区
|
欧美一级大片
|
精品免费视频一区二区
|
亚洲精久
|
最新中文字幕在线
|
日韩一级黄色毛片
|
日韩精品一区二区三区在线观看
|
日韩在线免费电影
|
91福利电影在线观看
|
a级毛片国产
|
国产一区二区三区久久久久久久久
|
精品国产一区二区三区观看不卡
|
在线观看成年视频
|
久久九九99
|
国产精品视频久久久久
|
在线免费观看毛片
|
亚洲国产在
|
亚洲天堂二区
|
色视频免费
|
伊人久久综合影院
|
婷婷色在线播放
|
亚洲视频www
|
久久一区二区免费视频
|
亚洲在线中文字幕
|
久久久久国产一区二区三区四区
|
一区二区三区四区在线
|
国产电影精品久久
|
免费激情网站
|
日韩在线视频免费观看
|
蜜桃五月天
|
www久久国产
|
9久久婷婷国产综合精品性色
|
亚洲成人精品久久
|
乳色吐息在线观看
|
国产精品一区二区三区四区五区
|
色偷偷噜噜噜亚洲男人
|
精品一区二区电影
|
亚洲中字在线
|