久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機秒表程序有點問題,不知道怎么改了,求助
[打印本頁]
作者:
太陽之子
時間:
2018-12-20 19:17
標題:
51單片機秒表程序有點問題,不知道怎么改了,求助
#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int
#define PIN0 P0; //數碼管段選端
#define PIN1 P1; //數碼管位選端
uint cnt=0; //1s的次數的計數值
uint num=0; //進入中斷次數的計數值(一次50ms)
uint num1=0; //0.001s的次數的計數值
uint haomiaou=0;
uchar code table[]={0x3f,0x06,0x5b,
0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f};
//不帶小數點的共陰極數碼管段碼0-9
uchar code table1[]={0xbf,0x86,
0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
//帶小數點的共陰極數碼管段碼0-9
char code table2[]={0xc0,0xf9,0xa4,
0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//不帶小數點的共陽極數碼管段碼0-9
uint a,b,c,d,e,f,g,w;
void Display(uint a,uint b,uint c,uint d,uint e,uint f,uint g,uint w); //聲明顯示函數
void InitTimer0(); //聲明定時器初始化函數
void Delayms(uint x); //聲明延時函數
void main ()
{
uint haomiao,haomiao1,haomiao2,s,s1,min,min1,minu=0,shi,shiu=0;
//分別是毫秒的個位,毫秒的十位,毫秒的百位,
//秒的個位,秒的十位,分的個位,分的十位,時的各位
InitTimer0(); //初始化定時器
while(1) //進入死循環
{
//Delayms(20); //延時消抖
num=0; //進入中斷次數的計數值(一次50ms)
num1=0; //進入中斷次數值清0
haomiaou=0; //毫秒的計數值清0
cnt=0; //秒的計數值清0
minu=0; //分的計數值清0
shiu=0; //時的計數值清0
}
if(num1>=200) //檢測是否達到0.1s,(兩百個50ms)
{
num1=0; //進入中斷次數值清零
haomiao++; //毫秒秒的個位的計數值加1
if(haomiao>=10) //若毫秒的個位計數值達到10
{
haomiao=0; //清零毫秒的個位的計數值
num1=0;//進入中斷次數值置0
}
}
if(num>=20) //判斷計時時間是否達到1s(20個50ms)
{
cnt++; //秒的計數值加1
if(cnt>=60) //判斷是否達到60s
{
cnt=0; //若達到60s,將秒的計數值置零
minu++; //分的計數值加1
TR0=!TR0; //達到60分鐘則關閉定時器并清零所有的計數值
num1=0;
num=0;
haomiao=0;
cnt=0;
minu=0;
}
}
haomiao=haomiaou%10; //從毫秒的計數值里面分離毫秒的個位
haomiao1=haomiaou/10; //從毫秒的計數值里面分離毫秒的十位
haomiao2=haomiaou/100; //從毫秒的計數值里面分離毫秒的百位
s=cnt%10; //從秒的計數值里面分離秒的個位
s1=cnt/10; //從秒的計數值里面分離秒的十位
min=minu%10; //從分的計數值里面分離分的個位
min1=minu/10; //從分的計數值里面分離分的十位
Display(haomiao,haomiao1,haomiao2,s,s1,min,min1,shi); //顯示這8個數
}
void InitTimer0() //定時器初始化函數
{
TMOD=0x10; //選擇定時器1的工作方式1
TH0=(65536-45872)/65536; //裝初值(定時50ms),晶振11.0592MHz
TL0=(65536-45872)%65536;
EA=1; //打開總中斷
ET0=1; //打開定時器中斷
TR0=0; //先不要啟動定時器
}
void TI_time()interrupt 1 //定時器中斷服務函數
{
TH0=(65536-45872)/65536; //重裝初值
TL0=(65536-45872)%65536;
num++; //讓進入中斷次數值加1,用于判斷是否達到1s
num1++; //讓進入中斷次數值加1,用于判斷是否達到0.1s
}
void Delayms(uint x) //延時xms
{
uint i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
void Display(uint a,uint b,uint c,uint d,uint e,uint f,uint g,uint w) //定義顯示函數
{
PIN0 = table[a]; //毫秒的個位的段選
PIN1 = 0x7f; //毫秒的個位的位選
Delayms(5);
PIN0=table1[b]; //毫秒的十位的段選
PIN1=0xbf; //毫秒的十位的位選
Delayms(5);
PIN0=table1[c]; //毫秒的百位的段選
PIN1=0xdf; //毫秒的百位的位選
Delayms(5);
PIN0=table[d]; //秒的個位的段選
PIN1=0xef; //秒的個位的位選
Delayms(5);
PIN0=table1[e]; //秒的十位的段選
PIN1=0xf7; //秒的十位的位選
Delayms(5);
PIN0=table[f]; //分的個位的段選(帶小數點)
PIN1=0xfb; //分的個位的位選
Delayms(5);
PIN0=table1[g]; //分的十位的段選
PIN1=0xfd; //分的十位的位選
Delayms(5);
PIN0=table[w]; //時的個位的段選
PIN1=0xfe; //時的個位的位選
Delayms(5);
}
復制代碼
作者:
admin
時間:
2018-12-20 22:06
您這個問題給的信息不全,估計是沒人能回答得了的,先轉移到冷門區了,自行點擊編輯按鈕補充一下吧,審核員會幫你重新轉到熱門問答區的
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
激情综合五月
|
亚洲成人精品一区
|
国产91精品久久久久久久网曝门
|
国产精品亚洲欧美日韩一区在线
|
九九视频在线观看视频6
|
中文天堂在线一区
|
久久久久久美女
|
日本免费黄色
|
国产成人精品a视频一区www
|
看黄在线
|
99综合在线
|
久久精品国产免费一区二区三区
|
日韩视频观看
|
久久成人国产
|
一级欧美视频
|
一级免费毛片
|
精品久久ai电影
|
亚洲国产一区二区三区在线观看
|
欧美久久免费观看
|
中文字幕一区二区在线观看
|
欧美一区二区三区在线观看
|
精精国产xxxx视频在线野外
|
国产不卡一区
|
日韩免费视频一区二区
|
久久国产精品免费一区二区三区
|
久久久久国产一区二区三区
|
在线欧美视频
|
一区二区三区国产视频
|
久久伊人影院
|
国产成人免费视频网站高清观看视频
|
又黑又粗又长的欧美一区
|
性xxxxx
|
欧美日韩国产在线观看
|
久久久精品一区二区三区
|
黄色网页在线观看
|
激情毛片
|
日日射影院
|
逼逼网
|
视频一区二区在线观看
|
久久精品性视频
|
亚洲国产高清高潮精品美女
|