欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2740|回復: 4
收起左側

0到9999計數器單片機C程序,不知那錯了。

[復制鏈接]
ID:420608 發表于 2018-11-5 15:21 | 顯示全部樓層 |閱讀模式
#include <reg52.h>
#define u8 unsigned char
#define u16 unsigned int
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
u8 ge,shi,bai,qian,jishu=0;
u8 code biaoge[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
void delayms(u16 t);
void display(u16 d);
void main()
{
u8 i=0;
u16 shuju=0;
while(i<50)
{
  i++;
  display(2345);
}
while(1)
{
  display(shuju);
  jishu++;
  if(jishu>5)
  {
  jishu=0;
  shuju++;
  if(shuju>10000);
  shuju=0;
  }
  }
}
void delayms(u16 t)
{
u16 i,j;
for(i=0;i<t;i++)
  for(j=0;j<114;j++);
}
void display(u16 d)
{
qian=(u8)d/1000;
bai=(u8)d%1000/100;
shi=(u8)d%100/10;
ge=(u8)d%10;
P13=0;
P0=biaoge[ge];
delayms(500);
P13=1;
P0=0xff;
P12=0;
P0=biaoge[shi];
delayms(500);
P12=1;
P0=0xff;

P11=0;
P0=biaoge[bai];
delayms(500);
P11=1;
P0=0xff;
P10=0;
P0=biaoge[qian];
delayms(500);
P10=1;
P0=0xff;
}                           



回復

使用道具 舉報

ID:413475 發表于 2018-11-5 17:20 | 顯示全部樓層
1.這個位置是不是有問題,qian=(u8)d/1000;,直接從u16轉成u8會把數據已255方式分割,比如256轉成u8就變成1了.
2.建議用直接寫成:qian=d/1000;
bai=d%1000/100;
shi=d%100/10;
ge=d%10;
回復

使用道具 舉報

ID:100391 發表于 2018-11-5 17:28 | 顯示全部樓層
說真的,你這樣寫程序感覺不規范,建議你盡量選擇一些正規的視頻教程來學習(最起碼在程序變量以及引腳定義要規范點吧),不要因為看到視頻教程里面的變量名字長而不按教程的定義來寫,在剛剛入門的時候就應該養成寫規范程序的習慣,這樣也方便程序的閱讀及維護。(來自一個正在學51單片機的人的建議)
回復

使用道具 舉報

ID:7485 發表于 2018-11-5 18:31 | 顯示全部樓層
遇到什么問題了?
回復

使用道具 舉報

ID:421247 發表于 2018-11-5 18:44 | 顯示全部樓層
有點亂說實在
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表