『壹』 我用lpc900系列的單片機,怎麼用一組如八位p0口,加2個位選,來控制兩個共陽極的七段led,是從00-90來回顯
p0做數據用,cs_1和cs_2做led的選擇。共陽的就是輸出低電平有效。然後,在程序里邊做個計數器count,count從00-->90-->00循環加,每加到一個數,分別用count/10和count%10得到個位和十位的數字,比如count=90,那麼個位就是0,十位就是9。然後就是分別先後把cs_1=0,p0的值為要顯示的數的段碼,然後cs_1=1;接著cs_2=0,p0的值為要顯示的數的段碼,然後cs_2=1;計數周期和兩個數碼管顯示的時間間隔可以添加適當的延時。大概思路就是這樣
『貳』 共陽極數碼管顯示0~9對應的段碼
共陽極數碼管顯示0~9對應的段碼。
#include
#include
#defineucharunsignedchar//宏定義以後用uchar替代unsignedchar
#defineuintunsignedint//宏定義作用同上ucharcodeDSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};//數碼管0-9的段碼值//延時
voidDelayMS(uintx)//延時函數
{
uchart;//定義變數數值范圍0-255
while(x--)for(t=0;t<120;t++);
}//主程序
voidmain()//主函數
{uchari=0;//定義變數i並且i=0P0=0x00;//P0口=0x00P0口全部為低電平
while(1)//主循環
{
P0=~DSY_CODE[i];//P0=取反的數碼管段碼值
i=(i+1)%10;//i=i自加1個位的數
DelayMS(300);//延時}}/
『叄』 單片機匯編:LED數碼管從0---9之間,依次每按一下亮一位數字,並循環!
START: MOV P3, #0FFH MOV DPTR, #SEGPT MOV A, #0 LOOP: MOVC A, @A+DPTR MOV P1, A KEY: JB P3.2, KEY INC A CJNE A, #10, LOOP MOV A, #0 SJMP LOOP SEGPT: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H ;共陽極 ABCDEFGH對應x.01234567