欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
為什么下面的單片機代碼運行出來,P0口輸出的數據并不是0,1,2,3…這樣循序增加的?
[打印本頁]
作者:
1793332955
時間:
2021-3-18 18:45
標題:
為什么下面的單片機代碼運行出來,P0口輸出的數據并不是0,1,2,3…這樣循序增加的?
問:為什么下面的代碼運行出來 p0口輸出的數據并不是0,1,2,3……這樣循序增加的,而且我分明限制了c不會大于9,但是最后數碼管顯示出來的還有超過9的數,就像是A、E什么的。
單片機源程序如下:
#include <reg51.h>
void csh()
{
SM0=0;
SM1=1;
REN=1;
TI=0;
RI=0;
PCON=0;
TH1=0xF3;
TL1=0XF3;
TMOD=0X20;
EA=1;
ET1=0;
ES=1;
TR1=1;
}
void main()
{
int i,j;
char c=0;
csh();
while(1)
{
ES=0;
TI=0;
P0=c;
SBUF=c;
while(!TI)
;
TI=0;
ES=1;
for(j=0;j<50;j++)
for(i=0;i<5000;i++)
;
c++;
if (c>9)
c=0;
}
}
作者:
mengzhixinheng
時間:
2021-3-19 01:52
顯示程序在哪里?難道數碼管是靜態顯示!
作者:
1793332955
時間:
2021-3-19 06:46
動態,數碼管連在p0口
作者:
1793332955
時間:
2021-3-19 07:25
mengzhixinheng 發表于 2021-3-19 01:52
顯示程序在哪里?難道數碼管是靜態顯示!
動態;
p0口連接數碼管。
作者:
張天師
時間:
2021-3-19 08:43
看樓主程序應該是P0直接驅動共陰數碼管。而數碼管是要用顯示代碼來轉換顯示,如
/********************共陰數碼管代碼*******************/
u8 code tab[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7C,0x39,0x5E,0x79,0x71}; //0--F
要顯示就寫為:
P0=tab[c];
作者:
mengzhixinheng
時間:
2021-3-19 09:35
1793332955 發表于 2021-3-19 07:25
動態;
p0口連接數碼管。
段數據,位數據都不見
作者:
wulin
時間:
2021-3-19 13:39
P0=c;只能輸出二進制數,并不能通過數碼管顯示數字而是亂碼,需要把數轉換為筆段碼。
#include <reg51.h>
unsigned char code table[]={//共陰數碼管段碼"0~f-."
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71,0x40,0x80};
void csh()
{
SM0=0;
SM1=1;
// REN=1;
// TI=0;
// RI=0;
// PCON=0;
TH1=0xF3;
TL1=0XF3;
TMOD=0X20;
// EA=1;
// ET1=0;
// ES=1;
TR1=1;
}
void main()
{
int i,j;
char c=0;
csh();
while(1)
{
// ES=0;
// TI=0;
// P0=c;
P0=table[c];//在此插入數碼管段碼
SBUF=c;
while(!TI);
TI=0;
// ES=1;
for(j=0;j<50;j++)
for(i=0;i<5000;i++);
c++;
if (c>9)
c=0;
}
}
復制代碼
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1