標(biāo)題:
單片機(jī)數(shù)碼管當(dāng)百位小于3在數(shù)碼管上顯示正常,大于3就顯示錯(cuò)誤 急,明天考試了
[打印本頁]
作者:
達(dá)人知命
時(shí)間:
2018-1-17 18:38
標(biāo)題:
單片機(jī)數(shù)碼管當(dāng)百位小于3在數(shù)碼管上顯示正常,大于3就顯示錯(cuò)誤 急,明天考試了
求大神解釋一下為什么我這個(gè)數(shù)碼管程序,當(dāng)百位小于3在數(shù)碼管上顯示正常,大于3就顯示錯(cuò)誤
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={
0xc0,0xf9,0xa4,0xb0,
0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,
0xc6,0xa1,0x86,0x8e};
void delay(uint ms) ;
uchar x;
void main()
{
uchar bwei,swei,gwei,m;
x=345;
while(1)
{
bwei=x/100;swei=x/10%10;gwei=x%10;
for( m=0;m<20;m++)
P2=0X01; P0=tab[bwei]; delay(10); P0=0xff;
P2=0X02; P0=tab[swei]; delay(10); P0=0xff;
P2=0X04; P0=tab[gwei]; delay(10); P0=0xff; }
}
void delay(uint ms)
{uchar i,j;
for(i=0;i<ms;i++)
{
for(j=0;j<120;j++)
{;}
}
}
20180117183730.png
(13.7 KB, 下載次數(shù): 52)
下載附件
2018-1-17 18:37 上傳
這個(gè)是X輸入為345的情況
作者:
wulin
時(shí)間:
2018-1-18 06:43
變量x的數(shù)據(jù)類型錯(cuò)誤:大于255要用uint x;
作者:
ahshmj
時(shí)間:
2018-1-18 18:22
當(dāng)“uchar x”時(shí),x只能小于或等于0xff,用10進(jìn)制表示就是255 。十進(jìn)制的345=0x156,由于“uchar”是8位,所以就變成0x56了,0x56轉(zhuǎn)換成10進(jìn)制就是89 。
按樓上的說的“uint x;”就沒問題了。
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1