找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2446|回復(fù): 4
打印 上一主題 下一主題
收起左側(cè)

請教那位老師幫忙修重新改按鍵定義!!

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:154576 發(fā)表于 2017-5-25 19:36 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
請教那位老師幫忙修重新改按鍵定義
我這個是一個加減計數(shù)器程序,現(xiàn)在是按jia=P3^1加一,按jian=P3^0減一, 麻煩老師幫忙修改成P3^0 加一個高電平時,按P3^1加,P3^0加低電平時,按P3^1減,萬分感謝!!!!小弟在這先謝了!!!
#include<reg51.h>
#define leddata P1 //數(shù)碼管的段碼輸出
#define uchar unsigned char
#define uint unsigned int
float shu;

sbit jia=P3^1; //加一按鍵
sbit jian=P3^0; //減一按鍵
sbit qw=P3^2; //數(shù)碼管的千位
sbit bw=P3^3; //數(shù)碼管的百位
sbit sw=P3^4; //數(shù)碼管的十位
sbit gw=P3^5; //數(shù)碼管的個位
uchar code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
uchar code distab[16]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e};
void desplay();
void delay(uchar a) //延時函數(shù)
{
uchar x,y;
for(x=0;x<a;x++)
for(y=0;y<120;y++);
}
void key() //按鍵掃描函數(shù)
{
if(jia==0)
{
delay(50);
if(jia==0)
{
while(!jia)desplay();
if(shu>=9999)shu=0;
else shu=++;
}
}
if(jian==0)
{
delay(50);
if(jian==0)
{
while(!jian)desplay();
if(shu<=0)shu=9999;
else shu=--;
}
}
}
void desplay() //顯示函數(shù)
{sw=qw=bw=gw=0;
qw=1;
leddata=tab[(int)shu/1000];delay(6);qw=0;
P1=0xff;
bw=1;leddata=distab[(int)shu%1000/100];delay(6);bw=0;
P1=0xff;
sw=1;leddata=tab[(int)shu%100/10];delay(6);sw=0;
P1=0xff;
gw=1;leddata=tab[(int)shu%10];delay(6);gw=0;
P1=0xff;
}
void main() //主函數(shù)
{
while(1)
{
key();
desplay();
}
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:123289 發(fā)表于 2017-5-26 00:01 | 只看該作者
判斷語句的參數(shù),不是單一參數(shù),是可以多少參數(shù)一起進(jìn)行邏輯運算的,再對其結(jié)果進(jìn)行判斷。
回復(fù)

使用道具 舉報

板凳
ID:146949 發(fā)表于 2017-5-26 00:41 | 只看該作者
if(jia==0 && P30==1)//加多一個P3.0的IO口判斷就可以了
{
delay(50);
if(jia==0 && P30==1)//加多一個P3.0的IO口判斷就可以了
{
while(!jia)desplay();
if(shu>=9999)shu=0;
else shu=++;
}
}
回復(fù)

使用道具 舉報

地板
ID:154576 發(fā)表于 2017-5-26 06:51 | 只看該作者
yzwzfyz 發(fā)表于 2017-5-26 00:01
判斷語句的參數(shù),不是單一參數(shù),是可以多少參數(shù)一起進(jìn)行邏輯運算的,再對其結(jié)果進(jìn)行判斷。

非常感謝!!我剛剛接觸單片機(jī),都不知道具體怎么修改這程序
回復(fù)

使用道具 舉報

5#
ID:154576 發(fā)表于 2017-5-26 06:52 | 只看該作者
wosiyabo 發(fā)表于 2017-5-26 00:41
if(jia==0 && P30==1)//加多一個P3.0的IO口判斷就可以了
{
delay(50);

非常感謝��!我試試看看!!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表