欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
51單片機(jī)數(shù)字頻率計(jì)仿真程序 lcd1602顯示
[打印本頁(yè)]
作者:
878265042
時(shí)間:
2019-5-28 15:03
標(biāo)題:
51單片機(jī)數(shù)字頻率計(jì)仿真程序 lcd1602顯示
仿真文件圖片
LAQ3O9L0E}7AG)NF44}$S4T.png
(48.38 KB, 下載次數(shù): 58)
下載附件
2019-5-28 15:01 上傳
附上源代碼:
#include <AT89C51.H>
unsigned char codedispbit[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
unsigned char codedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
unsigned chardispbuf[8]={0,0,0,0,0,0,10,10};
unsigned char temp[8];
unsigned chardispcount;
unsigned charT0count;
unsigned chartimecount;
bit flag;
unsigned longx;
voidmain(void) //主函數(shù)
{
unsigned char i;
TMOD=0x15;
TH0=0;
TL0=0;
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;
TR1=1;
TR0=1;
ET0=1;
ET1=1;
EA=1;
while(1)
{
if(flag==1)
{
flag=0;
x=T0count*65536+TH0*256+TL0;
for(i=0;i<8;i++)
{
temp[ i]=0;
}
i=0;
while(x/10)
{
temp[ i]=x%10;
x=x/10;
i++;
}
temp[ i]=x;
for(i=0;i<6;i++)
{
dispbuf=temp[ i];
}
timecount=0;
T0count=0;
TH0=0;
TL0=0;
TR0=1;
}
}
}
void t0(void)interrupt 1 using 0 //中斷1模塊的函數(shù)編寫
{
T0count++;
}
void t1(void)interrupt 3 using 0 //中斷3模塊的函數(shù)編寫
{
TH1=(65536-5000)/256;
TL1=(65536-5000)%256;
timecount++;
if(timecount==200)
{
TR0=0;
timecount=0;
flag=1;
}
P2=0xff;
P0=dispcode[dispbuf[dispcount]];
P2=dispbit[dispcount];
dispcount++;
if(dispcount==8)
{
dispcount=0;
}
}
復(fù)制代碼
全部資料51hei下載地址:
新建文件夾.rar
(15.49 KB, 下載次數(shù): 125)
2019-5-28 15:03 上傳
點(diǎn)擊文件名下載附件
protues文件
下載積分: 黑幣 -5
作者:
zhaobolove
時(shí)間:
2020-10-4 21:08
這個(gè)51單片機(jī)中C語(yǔ)言, 里面會(huì)用到int能轉(zhuǎn)換為字符串類型嗎?怎么轉(zhuǎn)換?
因?yàn)槭荂51, 所以不能用 VC++里面的C語(yǔ)言代碼 eg: itoa, 也不要用打印的 eg: sprintf 這些函數(shù).
為什么? 因?yàn)镃51的內(nèi)存太小 ,如果這樣用非常占用資源. 有些朋友 這樣使用就 顯得不夠?qū)I(yè)了.
所以, 一般我們是這樣自己寫代碼使用實(shí)現(xiàn)的: 字符串改為數(shù)組的形式.
unsigned char dat[5];
dat[4]=Num/10000+'0';
dat[3]=Num%10000/1000+'0';
dat[2]=Num%1000/100+'0';
dat[1]=Num%100/10+'0';
dat[0]=Num%10+'0'
作者:
zhaobolove
時(shí)間:
2020-10-9 08:30
unsigned char dat[5];
dat[4]=Num/10000+'0';
dat[3]=Num%10000/1000+'0';
dat[2]=Num%1000/100+'0';
dat[1]=Num%100/10+'0';
dat[0]=Num%10+'0'
上次發(fā)送的這些代碼 可以很好的運(yùn)用在 樓主的 計(jì)數(shù)后 在LCD上顯示使用.
因?yàn)長(zhǎng)CD1602只能顯示字符的, 所以要把數(shù)字 0 轉(zhuǎn)換為'0' , ...... 以上值得的大家學(xué)習(xí)!
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1