日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 技術(shù)學(xué)院 > 熱搜器件
[導(dǎo)讀]8位數(shù)碼管顯示函數(shù)(使用74hc573鎖存器)。

仿真效果截圖:

部分源代碼:

/************************************************\

* 8位共陽(yáng)數(shù)碼管顯示函數(shù)(使用74hc573鎖存器) *

* 力求程序高效,簡(jiǎn)潔 *

\************************************************/

/************************************************\

* 分多個(gè)函數(shù)的原因: *

* 顯示要求不同,函數(shù)的執(zhí)行效率不同 *

* 為了實(shí)現(xiàn)程序的高效性,顯示要求不同調(diào)用不同的函數(shù)*

\************************************************/

#include

#define DISPLAY_IO P2

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

sbit duan=P3^0; //定義段

sbit wei=P3^1; //定義位

unsigned char code w[]={ //共陰

//0-F無(wú)小數(shù)點(diǎn)

0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f,0x77,0x7c,

0x39,0x5e,0x79,0x71,

//0-F帶小數(shù)點(diǎn)

0xbf,0x86,0xdb,0xcf,

0xe6,0xed,0xfd,0x87,

0xff,0xef,0xf7,0xfc,

0xb9,0xde,0xf9,0xf1,

//小數(shù)點(diǎn) 負(fù)號(hào)

0x80, 0x40};

/************************************************\

* 顯示任意內(nèi)容 *

* n[0-7]數(shù)組的值表示數(shù)碼管位置從左至右的內(nèi)容 *

\************************************************/

void display_any(uchar n[8])

{

uchar i,delay=0;

for(i=0;i<8;i++)

{

//清除段鎖存器內(nèi)容

DISPLAY_IO=0xff;

duan=1;

duan=0;

//位值送入位鎖存器

DISPLAY_IO=0x01<

wei=1;

wei=0;

//段值送入段鎖存器

DISPLAY_IO=0xff-n[i];

duan=1;

duan=0;

//延時(shí)0-255(越長(zhǎng)越亮,但太長(zhǎng)會(huì)閃)

delay=100;

while(delay--);

}

//清除段鎖存器內(nèi)容 不讓第一個(gè)數(shù)最亮

DISPLAY_IO=0xff;

duan=1;

duan=0;

}

/************************************************\

* 10進(jìn)制無(wú)符號(hào)整數(shù)顯示 *

* 傳入n為0到9999 9999 *

* 傳入浮點(diǎn)型小數(shù)點(diǎn)后忽略,范圍不正確顯示不正確 *

* 右對(duì)齊,左邊無(wú)多余0 *

\************************************************/

void display_ulong(ulong n)

{

uchar i=8,delay=0;

do

{

//清除段鎖存器內(nèi)容

DISPLAY_IO=0xff;

duan=1;

duan=0;

//位值送入位鎖存器

DISPLAY_IO=0x01<<(--i);

wei=1;

wei=0;

//段值送入段鎖存器

DISPLAY_IO=0xff-w[n%10];

duan=1;

duan=0;

n/=10;

//延時(shí)0-255(越長(zhǎng)越亮,但太長(zhǎng)會(huì)閃)

delay=100;

while(delay--);

}while(n>0);

//清除段鎖存器內(nèi)容 不讓第一個(gè)數(shù)最亮

DISPLAY_IO=0xff;

duan=1;

duan=0;

}

/************************************************\

* 10進(jìn)制有符號(hào)整數(shù)顯示 *

* 傳入n為-999 9999到9999 9999 *

* 傳入浮點(diǎn)型小數(shù)點(diǎn)后忽略,范圍不正確顯示不正確 *

* 右對(duì)齊,左邊無(wú)多余0 *

\************************************************/

void display_long(long n)

{

uchar i=8,delay=0;

bit flag=0;

if(n<0)

{

flag=1;

n=-n;

}

do

{

//清除段鎖存器內(nèi)容

DISPLAY_IO=0xff;

duan=1;

duan=0;

//位值送入位鎖存器

DISPLAY_IO=0x01<<(--i);

wei=1;

wei=0;

//段值送入段鎖存器

DISPLAY_IO=0xff-w[(n==100000000?33:n%10)];

duan=1;

duan=0;

n/=10;

if(n==10000000)

n=-1;

if(n==0&&flag==1)

n=100000000;

//延時(shí)0-255(越長(zhǎng)越亮,但太長(zhǎng)會(huì)閃)

delay=100;

while(delay--);

}while(n>0);

//清除段鎖存器內(nèi)容 不讓第一個(gè)數(shù)最亮

DISPLAY_IO=0xff;

duan=1;

duan=0;

}

/************************************************\

* 10進(jìn)制無(wú)符號(hào)實(shí)型顯示 *

* 傳入n為0到9999 9800 *

* 傳入范圍不正確顯示不正確 *

* 右對(duì)齊,左邊無(wú)多余0,右邊小數(shù)點(diǎn)后無(wú)多余0 *

\************************************************/

void display_udouble(double n)

{

uchar i=8,delay=0,point_position=0;

ulong n_long=n; //將n賦值給整形變量

while(n_long!=n) //此循環(huán)的功能:使n變?yōu)?位整數(shù),并記下小數(shù)點(diǎn)位置

{

n*=10;

n_long=n;

point_position++;//每乘一次,小數(shù)點(diǎn)左移一位

}

do

{

//清除段鎖存器內(nèi)容

DISPLAY_IO=0xff;

duan=1;

duan=0;

//位值送入位鎖存器

DISPLAY_IO=0x01<<(--i);

wei=1;

wei=0;

//段值送入段鎖存器

DISPLAY_IO=0xff-w[n_long%10+((7-i)==point_position?16:0)];

duan=1;

duan=0;

n_long/=10;

//延時(shí)0-255(越長(zhǎng)越亮,但太長(zhǎng)會(huì)閃)

delay=100;

while(delay--);

}while(n_long>0);

//清除段鎖存器內(nèi)容 不讓第一個(gè)數(shù)最亮

DISPLAY_IO=0xff;

duan=1;

duan=0;

}

/************************************************\

* 10進(jìn)制有符號(hào)實(shí)型顯示 *

* 傳入n為-999 999到9999 9800 *

* 傳入范圍不正確顯示不正確 *

* 右對(duì)齊,左邊無(wú)多余0,右邊小數(shù)點(diǎn)后無(wú)多余0 *

\************************************************/

void display_double(double n)

{

uchar i=8,delay=0,point_position=0;

bit flag=0;

long n_long=n; //將n賦值給整形變量

while(n_long!=n) //此循環(huán)的功能:使n變?yōu)?位整數(shù),并記下小數(shù)點(diǎn)位置

{

n*=10;

n_long=n;

point_position++;//每乘一次,小數(shù)點(diǎn)左移一位

}

if(n_long<0)

{

flag=1;

n_long=-n_long;

}

do

{

//清除段鎖存器內(nèi)容

DISPLAY_IO=0xff;

duan=1;

duan=0;

//位值送入位鎖存器

DISPLAY_IO=0x01<<(--i);

wei=1;

wei=0;

//段值送入段鎖存器

DISPLAY_IO=0xff-w[(n_long==100000000?33:(n_long%10+((7-i)==point_position?16:0)))];

duan=1;

duan=0;

n_long/=10;

if(n_long==10000000)

n_long=-1;

if(n_long==0&&flag==1)

n_long=100000000;

//延時(shí)0-255(越長(zhǎng)越亮,但太長(zhǎng)會(huì)閃)

delay=100;

while(delay--);

}while(n_long>0);

//清除段鎖存器內(nèi)容 不讓第一個(gè)數(shù)最亮

DISPLAY_IO=0xff;

duan=1;

duan=0;

}

/************************************************\

* 2-16任意進(jìn)制無(wú)符號(hào)不去零整數(shù)顯示 *

* 傳入n為0到X,X=((進(jìn)制)^8)-1 *

* 傳入范圍不正確顯示不正確 *

* 不自動(dòng)去0 *

\************************************************/

void display_number(ulong n,uchar jin_zhi)

{

uchar i,delay=0;

for(i=0;i<8;i++)

{

//清除段鎖存器內(nèi)容

DISPLAY_IO=0xff;

duan=1;

duan=0;

//位值送入位鎖存器

DISPLAY_IO=0x01<<(7-i);

wei=1;

wei=0;

//段值送入段鎖存器

DISPLAY_IO=0xff-w[n%jin_zhi];

duan=1;

duan=0;

n/=jin_zhi;

//延時(shí)0-255(越長(zhǎng)越亮,但太長(zhǎng)會(huì)閃)

delay=100;

while(delay--);

}

//清除段鎖存器內(nèi)容 不讓第一個(gè)數(shù)最亮

DISPLAY_IO=0xff;

duan=1;

duan=0;

}

/************************\

* 8位數(shù)碼管測(cè)試程序 *

\************************/

void main(void)

{

uint i,t=200;

char n[8]={1,2,4,8,16,32,64,128};

while(1)

{

i=t;

while(i--)

{

display_any(n);

}

i=t;

while(i--)

{

display_ulong(123);

}

i=t;

while(i--)

{

display_long(-123);

}

i=t;

while(i--)

{

display_udouble(123.45);

}

i=t;

while(i--)

{

display_double(-123.45);

}

i=t;

while(i--)

{

display_number(0x123abc,16);

}

}

}

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

Sept. 10, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《全球電動(dòng)車逆變器市場(chǎng)數(shù)據(jù)》,2025年第二季受惠純電動(dòng)車(BEV)銷售成長(zhǎng),全球電動(dòng)車(注1)牽引逆變器裝機(jī)量達(dá)766萬(wàn)臺(tái),年增19%。...

關(guān)鍵字: 增程式電動(dòng)車 SiC 牽引逆變器

Sept. 8, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NVIDIA(英偉達(dá)) Blackwell平臺(tái)規(guī)?;鲐?,以及北美CSP業(yè)者持續(xù)擴(kuò)大布局General Server(通用型...

關(guān)鍵字: SSD DDR4 服務(wù)器

Sept. 4, 2025 ---- Apple(蘋果)即將發(fā)布iPhone 17、iPhone 17 Air(暫名)、iPhone 17 Pro及Pro Max四款旗艦新機(jī),除了外觀辨識(shí)度升級(jí),處理器性能、散熱和拍攝功...

關(guān)鍵字: iPhone 16 A19處理器 折疊機(jī)

Sept. 3, 2025 ---- 根據(jù)TrendForce集邦咨詢最新發(fā)布的《2025近眼顯示市場(chǎng)趨勢(shì)與技術(shù)分析》報(bào)告,2025年隨著國(guó)際品牌陸續(xù)推出AR眼鏡原型,以及Meta預(yù)計(jì)在近期發(fā)布AR眼鏡Celeste,市...

關(guān)鍵字: AR眼鏡 OLED

Sept. 2, 2025 ---- TrendForce集邦咨詢表示,2025年第二季DRAM產(chǎn)業(yè)因一般型DRAM (Conventional DRAM)合約價(jià)上漲、出貨量顯著增長(zhǎng),加上HBM出貨規(guī)模擴(kuò)張,整體營(yíng)收為3...

關(guān)鍵字: DRAM 智能手機(jī) ASP

Sept. 1, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季因中國(guó)市場(chǎng)消費(fèi)補(bǔ)貼引發(fā)的提前備貨效應(yīng),以及下半年智能手機(jī)、筆電/PC、Server新品所需帶動(dòng),整體晶圓代工產(chǎn)能利用率與出貨...

關(guān)鍵字: 晶圓代工 智能手機(jī) 筆電

Aug. 28, 2025 ---- 根據(jù)TrendForce集邦咨詢最新調(diào)查,2025年第二季NAND Flash產(chǎn)業(yè)雖面臨平均銷售價(jià)格(ASP)小幅下滑,所幸原廠減產(chǎn)策略緩解供需失衡,疊加中、美兩大市場(chǎng)政策推動(dòng),整體...

關(guān)鍵字: NAND Flash SSD AI

Aug. 26, 2025 ---- NVIDIA(英偉達(dá))近日推出的Jetson Thor被視為機(jī)器人的物理智慧核心,以Blackwell GPU、128 GB記憶體堆疊出2070 FP4 TFLOPS AI算力,是前...

關(guān)鍵字: 機(jī)器人 大型語(yǔ)言模型 AI算力

Aug. 21, 2025 ---- 根據(jù)TrendForce集邦咨詢最新液冷產(chǎn)業(yè)研究,隨著NVIDIA GB200 NVL72機(jī)柜式服務(wù)器于2025年放量出貨,云端業(yè)者加速升級(jí)AI數(shù)據(jù)中心架構(gòu),促使液冷技術(shù)從早期試點(diǎn)邁...

關(guān)鍵字: AI 數(shù)據(jù)中心 服務(wù)器

除了充電電路外,鋰電池的放電過(guò)程也需要保護(hù)。鋰電池的放電電壓不能低于3.0V,否則電池壽命會(huì)大幅縮短。為了實(shí)現(xiàn)這一保護(hù),工程師們?cè)O(shè)計(jì)了DW01芯片與8205 MOS管的電路組合。DW01芯片能夠監(jiān)控鋰電池的放電電壓和電流...

關(guān)鍵字: 鋰電池 電池
關(guān)閉