找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4575|回復(fù): 9
收起左側(cè)

新手學(xué)習(xí)C51單片機 第五章 數(shù)碼管 真值表疑問

[復(fù)制鏈接]
ID:421770 發(fā)表于 2018-11-21 10:47 | 顯示全部樓層 |閱讀模式
剛開始學(xué)習(xí)C51單片機,第五章里面數(shù)碼管顯示的一個疑問:
課件里面講解數(shù)碼管顯示“1”,應(yīng)該點亮數(shù)碼管b,c段,數(shù)碼管a~dp對應(yīng)P0那么b=P0.1,c=P0.2,共陽極數(shù)碼管,點亮b,c段,需要P0.1和P0.2輸出低電平
我的理解是,顯示“1”的話,P0應(yīng)該為 1001 1111,也就是0x9F
但是課件里面確說顯示“1”的話,P0為 1111 1001,對應(yīng)真值表為0xF9
我想不明白,請前輩幫忙解惑,謝謝!

回復(fù)

使用道具 舉報

ID:97554 發(fā)表于 2018-11-21 12:04 | 顯示全部樓層
這個涉及到共陰或者共陽的數(shù)碼管問題,你說的兩者都沒有問題,問題是數(shù)碼管是共用陰極還是共用陽極的問題,假如公用陰極,那么點亮某段則該段需要高電平在驅(qū)動方式才可以點亮,共用陽極的數(shù)碼管反之。兩者在程序上是那個表就不同了。
回復(fù)

使用道具 舉報

ID:213173 發(fā)表于 2018-11-21 12:23 | 顯示全部樓層
你說的這兩個段碼都是對的,是與P0與數(shù)碼管接法有關(guān):P0.0~7對應(yīng)a~dp或P0.0~7對應(yīng)dp~a。
//順序共陰極數(shù)碼管段碼表,段碼a-h順序接PX0-PX7
unsigned char code table[]={//共陰數(shù)碼管段碼"0~f-."
                0x3f,0x06,0x5b,0x4f,
                0x66,0x6d,0x7d,0x07,
                0x7f,0x6f,0x77,0x7c,
                0x39,0x5e,0x79,0x71,0x40,0x80};

//反序共陰極數(shù)碼管段碼表,段碼a-h順序接PX7-PX0
unsigned char code Table[]={//共陰數(shù)碼管段碼"0~f-."
                0xFC,0x60,0xDA,0xF2,
                0x66,0xB6,0xBE,0xE0,
                0xFE,0xF6,0xEE,0x3E,
                0x9C,0x7A,0x9E,0x8E,0x02,0x01};

//順序共陽極數(shù)碼管段碼表,段碼a-h順序接PX0-PX7
unsigned char code table[]={//共陽數(shù)碼管段碼"0~f-."
                0xc0,0xf9,0xa4,0xb0,
                0x99,0x92,0x82,0xf8,
                0x80,0x90,0x88,0x83,
                0xc6,0xa1,0x86,0x8e,0xbf,0x7f};

//反序共陽極數(shù)碼管段碼表,段碼a-h順序接PX7-PX0
unsigned char code Table[]={//共陰數(shù)碼管段碼"0~f-."
                0x03,0x9f,0x25,0x0d,
                0x99,0x49,0x41,0x1f,
                0x01,0x09,0x11,0xc1,
                0x63,0x85,0x61,0x71,0xfd,0xfe};
回復(fù)

使用道具 舉報

ID:421770 發(fā)表于 2018-11-21 13:34 | 顯示全部樓層
楊雪飛 發(fā)表于 2018-11-21 12:04
這個涉及到共陰或者共陽的數(shù)碼管問題,你說的兩者都沒有問題,問題是數(shù)碼管是共用陰極還是共用陽極的問題, ...

共陽極數(shù)碼管
回復(fù)

使用道具 舉報

ID:421770 發(fā)表于 2018-11-21 13:41 | 顯示全部樓層
楊雪飛 發(fā)表于 2018-11-21 12:04
這個涉及到共陰或者共陽的數(shù)碼管問題,你說的兩者都沒有問題,問題是數(shù)碼管是共用陰極還是共用陽極的問題, ...

是共陽極數(shù)碼管
即使是共陰極數(shù)碼管,那點亮b,c段,需要這兩段輸出高電平,P0應(yīng)該是0110 0000才對啊
課件里講的P0是 1111 1001也還是不明白
謝謝!!
回復(fù)

使用道具 舉報

ID:307591 發(fā)表于 2018-11-21 19:06 | 顯示全部樓層
yxj51 發(fā)表于 2018-11-21 13:41
是共陽極數(shù)碼管
即使是共陰極數(shù)碼管,那點亮b,c段,需要這兩段輸出高電平,P0應(yīng)該是0110 0000才對啊
課 ...

如果是共陰數(shù)碼管,點亮b,c段,那就使p0^1、p0^2為高電平,其余為低電平
b段——p0^1,c段——p0^2
p0是00000110(注意:最低位是p0^0,倒數(shù)第二位是p0^1,依次繼續(xù))
如果還不明白,建議用板子燒寫程序試試,多實踐幾次就明白了
回復(fù)

使用道具 舉報

ID:424073 發(fā)表于 2018-11-21 19:47 | 顯示全部樓層
這個問題應(yīng)該是數(shù)碼管8個段的順序不一樣    你自己理解的是a-g:1001 1111    而書上寫的是g-a:1111 1001  只是順序的問題   兩者其實是一樣的。
回復(fù)

使用道具 舉報

ID:428648 發(fā)表于 2018-11-22 22:30 來自觸屏版 | 顯示全部樓層
是共陽極數(shù)碼管
回復(fù)

使用道具 舉報

ID:421770 發(fā)表于 2018-11-23 08:37 | 顯示全部樓層
1034159374 發(fā)表于 2018-11-21 19:06
如果是共陰數(shù)碼管,點亮b,c段,那就使p0^1、p0^2為高電平,其余為低電平
b段——p0^1,c段——p0^2
p0 ...

謝謝,是我之前理解二進制數(shù)據(jù)順序錯了,最后一位應(yīng)該是低位,我之前把最后一位理解成了高位。
現(xiàn)在明白了,謝謝。
回復(fù)

使用道具 舉報

ID:431677 發(fā)表于 2018-11-23 11:06 | 顯示全部樓層
你順序搞反啦
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表