|
數(shù)碼管的靜態(tài)顯示實(shí)驗(yàn)報(bào)告
Ø 數(shù)碼管的原理
l 數(shù)碼管的構(gòu)造
數(shù)碼管實(shí)際是由LED構(gòu)成用高低電平控制。
有七段數(shù)碼管和八段數(shù)碼管之分,也有共陰和共陽之分。
七段數(shù)碼管是沒有第八段即小數(shù)點(diǎn)這一段則八段數(shù)碼管有小數(shù)點(diǎn)。
共陰數(shù)碼管則是把所有陰極相連,共陽則是把所有陽極相連。
此為原理圖。
l 數(shù)碼管的邏輯電平
數(shù)碼管的顯示是用CPU控制的CPU共給數(shù)碼管的高低電平?jīng)Q定了它段位的亮滅,
而51單片機(jī)中運(yùn)用正邏輯即高電平為1,低電平為0.。
Ø 數(shù)碼管的靜態(tài)顯示具體操作
一
打開原理圖
1.用P0的8個(gè)端口控制JP3的端口
2.寫出共陰極字段碼(共陽極直接去反就行,大部分都是用共陰極數(shù)碼管)
二
按照接線圖在單片機(jī)上接線
三
在Keil中新建項(xiàng)目并加入main.c
在main.c中寫程序
如下:
/**************************************************************************************
*
* 靜態(tài)數(shù)碼管顯示實(shí)驗(yàn)
***************************************************************************************/
#include "reg52.h" //´定義單片機(jī)一些特殊功能
typedef unsigned int u16; //對(duì)數(shù)據(jù)類型定義
typedef unsigned char u8;
u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//顯示0~F的值
void delay(u16 i)//延時(shí)函數(shù)
{
while(i--);
}
/*******************************************************************************
* 函數(shù)名 : main
* 函數(shù)功能 : 主函數(shù)
* 輸 入 : 無
* 輸 出 : 無
*******************************************************************************/
void main()
{
u16 i;
while(1)
{
for(i = 0; i <= 15 ; i++)//循環(huán)顯示0~F
{
P0=~smgduan;//對(duì)共陰極字段碼去反
delay(60000);//等待1S
P0=0x00;
}
for(i = 15; i >= 0; i--)//循環(huán)顯示F~0
{
P0=~smgduan[ i];
delay(60000);
P0=0x00;
}
}
}
Ø KEIL開發(fā)環(huán)境的調(diào)試
CPU中I/O口的高低電平可以通過KEIL的開發(fā)環(huán)境來調(diào)試。
可以具體的觀察高低電平。
|
|