亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: P0=pt[look[0]]; 請問這個單片機代碼表示什么意思? [打印本頁]

作者: tanghao8887    時間: 2018-11-5 14:35
標(biāo)題: P0=pt[look[0]]; 請問這個單片機代碼表示什么意思?
兩個不一樣的數(shù)組。為什么可以重疊使用啊!
以下是程序:
#include <reg52.h> //包含寄存器的庫文件
#define u16 unsigned int
#define u8 unsigned char
sbit a = P1^0;
sbit b= P1^1;
sbit c = P1^2;
sbit d= P1^3;
sbit e = P1^4;
u8 pt[] = { //用數(shù)組來表示數(shù)碼管真值表
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8e,
};
void main()
{
u16 z= 0;
u8 j = 0;
unsigned long s =0;
u8 look[6]={0};
e= 0; d= 1;P0 = 0XFF; //74HC138和P0初始化部分
TMOD = 0x01; //設(shè)置定時器0為模式1
TH0 = 0xFC;
TL0 = 0x67; //定時值初值,定時1ms
TR0 = 1; //打開定時器0
while(1)
{
if(1 == TF0) //判斷定時器0是否溢出
{
TF0 = 0;
TH0 = 0xFC; //一旦溢出后,重新賦值
TL0 = 0x67;
z++;
if(1000 == z) //判斷定時器0溢出是否達到1000次
{
z= 0;
s++; //秒表數(shù)值一秒加1
look[0] = s%10; 余數(shù)為1
look[1] = s/10%10; 余數(shù)1
look[2] = s/100%10; 余數(shù)1
look[3] = s/1000%10; //數(shù)碼管顯示值計算
look[4] = s/10000%10;
look[5] = s/100000%10;
}
switch(j)
{
case 0: a=0; b=0; c=0; j++; P0=pt[look[0]];break;
case 1: a=1; b=0; c=0; j++; P0=pt[look[1]];break;
case 2: a=0; b=1; c=0; j++; P0=pt[look[2]];break;
case 3: a=1; b=1; c=0; j++; P0=pt[look[3]];break;
case 4: a=0; b=0; c=1; j++; P0=pt[look[4]];break;
case 5: a=1; b=0; c=1; j=0; P0=pt[look[5]];break;
default: break;
}
} //數(shù)碼管動態(tài)刷新部分
}
}

作者: wulin    時間: 2018-11-5 15:56
兩個不一樣的數(shù)組是可以嵌套使用的,但是樓主這個程序不可能正常運行。因為定時器0溢出周期是1ms,而執(zhí)行1次   if(1000 == z)花括號內(nèi)語句需要耗時超過3ms。主要是因為分解long大數(shù)據(jù)耗時長,定時器溢出標(biāo)志TF0信號大部分丟失,甚至數(shù)碼管動態(tài)刷新速度過慢而閃爍。
作者: whwj    時間: 2018-11-5 16:06
我的理解,使用pt[look[0]]相當(dāng)于pt[s%10],以此類推。p0de你把look[0]-look[5]看做普通的整形變量,好理解。供參考
作者: cuihaodianzi    時間: 2018-11-5 16:06
u8 pt[] = { //用數(shù)組來表示數(shù)碼管真值表
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8e,
};
上面的是數(shù)碼管的 0 1 2 3 4 5 6 7 8 9 A B C D E F   是共陽的管子

look[0] = s%10; 就是數(shù)碼管的 個位 假如這時候 s = 58, look[0] = 8,他應(yīng)該不會大于 9  ,  0---9

這個時候 P0=pt[look[0]]; 相當(dāng)于 P0=pt[ 8 ]; 也就是 P0 = 0x80; 這個數(shù)碼管就顯示 8
[ 8 ]表示數(shù)組里的第九個數(shù)據(jù),[ 0 ]表示 第一個

作者: whwj    時間: 2018-11-5 16:13
look[0] = s%10; P0=pt[look[0]]即P0=pt[s%10]。例s為4,s%10為4,pt[4]為0x99,P0=pt[s%10]=pt[4]=0x99;按硬件P0口外接數(shù)據(jù)管,顯示相應(yīng)的值
作者: xuyaqi    時間: 2018-11-5 16:30
先計算要顯示的數(shù)值(look[0]),再在pt數(shù)組里找出相應(yīng)的碼值輸出到段碼用來顯示。
作者: Colin_zhai    時間: 2018-11-5 16:55
P0=pt[look[0]]; 意思是將pt[]數(shù)組的第look[0]位賦給P0口.
1.look[]數(shù)組是計算存儲秒(s)的個位到十萬位的值(0~9).
2.pt[] 數(shù)組是數(shù)碼管的段碼,用來顯示數(shù)值的.




歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1