久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
單按鍵定時程序
[打印本頁]
作者:
williamyao
時間:
2014-4-28 19:56
標題:
單按鍵定時程序
用了一天時間,終于修改完了這個程序,請大神看看那些地方需要優化的。
#include <reg52.h> //52系列頭文件
#define uchar unsigned char //宏定義
#define uint unsigned int //宏定義
sbit key=P1^4; //聲明P1口的第5位是按鍵引腳
sbit tt=P2^6; //聲明P2口按鍵十位數是數碼管位選引腳
sbit st=P2^7; //聲明P2口按鍵個位數是數碼管位選引腳
sbit thdis=P2^0; //
sbit ttdis=P2^1; //
sbit tsdis=P2^2; //
sbit oput1=P1^0; //聲明P1.0為輸出引腳
uchar code table[]={ //編碼定義
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90};
void delayms(uint); //聲明子函數
uchar num0,num1,hendreds,tens,single; //聲明顯示變量的數據類型
uint time0; //聲明計時變量的數據類型
/**************************************************
初始化函數
***************************************************/
void init()
{
oput1=0;
TMOD=0x01; //設置定時器0為工作方式1(0000 0001)
TH0=(65536-45827)/256; //裝初值50ms一次中斷
TL0=(65536-45827)%256; //
IE=0x82; //開總中斷,開定時器0中斷
}
/**************************************************
按鍵顯示函數
***************************************************/
void display(uchar numdis) //
{
tens=numdis/10; //
single=numdis%10; //
tt=0; //十位數顯示
P0=table[tens]; //
delayms(5);
tt=1;
P0=0xff;
st=0; //個位數顯示
P0=table[single]; //
delayms(5);
st=1;
P0=0xfff;
}
/**************************************************
倒數顯示函數
***************************************************/
void tdisplay(uint tdis)
{
hendreds=tdis/100;
tens=tdis%100/10;
single=tdis%10;
thdis=0;
P0=table[hendreds];
delayms(5);
thdis=1;
P0=0xff;
ttdis=0;
P0=table[tens];
delayms(5);
ttdis=1;
P0=0xff;
tsdis=0;
P0=table[single];
delayms(5);
tsdis=1;
P0=0xff;
}
/**************************************************
鍵盤掃描函數
***************************************************/
void keyscan()
{
if(key==0)
{
delayms(10);
if(key==0)
{
num1++; //顯示變量num自增1
time0=num1*60; //輸出變量時間
if(num1>5) //如果顯示到5就清0
num1=0;
while(!key);
}
}
}
/**************************************************
P1.0輸出的時間
***************************************************/
void oput()
{
if((num1>0)&&(time0>0))
{
oput1=1;
TR0=1;
}
else
{
oput1=0;
TR0=0;
num1=0;
time0=0;
}
}
/**************************************************
延時函數
***************************************************/
void delayms(uint xms)
{
uchar i,j;
for (i=xms;i>0;i--) //i=xms 即延時約xms毫秒
for(j=110;j>0;j--);
}
/**************************************************
主函數
***************************************************/
void main() //
{
init();
while(1) //大循環
{
keyscan();
display(num1);
tdisplay(time0);
oput();
}
}
/**************************************************
中斷函數
***************************************************/
void T0_time() interrupt 1 //
{
TH0=(65536-45872)/256; //
TL0=(65536-45872)%256;
num0++;
if(num0==20) //如果到時了20次,說明一秒時間到
{
num0=0;
time0--;
}
}
作者:
admin
時間:
2014-4-28 21:28
現在這個程序有什么問題嗎?
作者:
williamyao
時間:
2014-4-28 22:59
admin 發表于 2014-4-28 21:28
現在這個程序有什么問題嗎?
這個程序沒有什么問題,請大家討論討論有沒有優化得更好一點。
作者:
whengfu
時間:
2015-11-6 14:30
編譯時,time0=0;出現錯誤,沒有通過
作者:
whengfu
時間:
2015-11-6 14:30
編譯時,time0=0;出現錯誤,沒有通過
作者:
QQQQ987
時間:
2023-11-30 14:43
我的編譯通過,,,,
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
日操操
|
久久精品久久久久久
|
日韩一区中文字幕
|
欧美专区在线
|
欧美在线综合
|
成人日韩
|
精品久久久一区
|
亚洲精品久久久久avwww潮水
|
欧美男人天堂
|
国产高清在线精品一区二区三区
|
国产精品久久久久久福利一牛影视
|
亚洲欧洲一区二区
|
日韩欧美不卡
|
国产精品国产a级
|
欧美日韩不卡
|
国产高清在线观看
|
精品久久99
|
欧美一区免费
|
91久久夜色精品国产网站
|
亚洲国内精品
|
羞羞的视频网站
|
亚洲午夜视频
|
噜噜噜噜狠狠狠7777视频
|
国产高清精品一区二区三区
|
范冰冰一级做a爰片久久毛片
|
日韩电影一区二区三区
|
www4虎
|
精品欧美黑人一区二区三区
|
啪视频在线
|
色偷偷888欧美精品久久久
|
免费成人在线网站
|
999精品视频
|
欧美一级二级在线观看
|
伊色综合久久之综合久久
|
午夜精品一区二区三区在线播放
|
国产精品视频在线免费观看
|
一本久久a久久精品亚洲
|
天天射网站
|
九九久久精品
|
国产精品网址
|
免费观看国产视频在线
|