|
實(shí)驗(yàn)二 GPIO口輸出實(shí)驗(yàn)②(數(shù)碼管顯示)
一、 實(shí)驗(yàn)?zāi)康?br />
學(xué)習(xí)單片機(jī)GPIO口(如P0、P2口)輸出功能和數(shù)碼管的使用方法(靜態(tài)掃描和動(dòng)態(tài)掃描)
二、 實(shí)驗(yàn)要求
利用8位數(shù)碼管顯示自己學(xué)號(hào)的后8位(P0為數(shù)碼管段碼值的輸出口、P2為數(shù)碼管位選值的輸出口)。
三、 實(shí)驗(yàn)原理圖
如下圖a1
四、 實(shí)驗(yàn)內(nèi)容:
1. 硬件連接
JP10<->J12、JP11<->J16
2. 實(shí)驗(yàn)代碼
//實(shí)驗(yàn)二實(shí)驗(yàn)要求:8位共陽(yáng)數(shù)碼管顯示學(xué)號(hào)后八位
#include"STC15.h"
typedef unsignedchar u8;
typedef unsignedint u16;
u8 codeSEG_Code[]=
{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff};
u8 codeBit_Code[]=
{0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
u8Student_number[]={6,0,1,5,4,0,2,4};
void Pin_Mode(void);
voidSEG7_1Bit_Display(u8 num,u8 Position);
voidDelay_nms(u16 nms);
void main(void)
{
u8 i=0;
Pin_Mode();
while(1)
{
SEG7_1Bit_Display(Student_number[i++],8-i);
Delay_nms(1);
i=i%8;
}
}
voidPin_Mode(void)
{
P0M1=0x00;P0M0=0x00;
P2M1=0x00;P2M0=0x00;
}
voidSEG7_1Bit_Display(u8 num,u8 Position)
{
P2=0xff;
P0=~SEG_Code[num];
P2=Bit_Code[Position];
}
voidDelay_nms(u16 nms) //??65535nms
{
u16 i,t;
for(i=0;i<nms;i++)
{
for(t=0;t<1080;t++);
}
}
2.實(shí)驗(yàn)現(xiàn)象:
8位數(shù)碼管顯示自己學(xué)號(hào)的后8位(P0為數(shù)碼管段碼值的輸出口、P2為數(shù)碼管位選值的輸出口)。
圖a2為實(shí)驗(yàn)現(xiàn)象。
|
評(píng)分
-
查看全部評(píng)分
|