欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標(biāo)題:
數(shù)碼管單片機驅(qū)動程序
[打印本頁]
作者:
明明佐
時間:
2017-12-4 16:53
標(biāo)題:
數(shù)碼管單片機驅(qū)動程序
數(shù)碼管驅(qū)動
單片機源程序如下:
Main.c
#include "reg51.h"
#include "DisplayUnit.h"
void main(void)
{
DISP_Init();
DISP_Number(1234);
EA = 1;
while(1)
{
}
}
Display。C
#include "reg51.h"
char code cSegments[16] =
{
0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x40,0x08,0x00,0x5E,0x79,0x71
};
char code cBits[4] =
{
0xFE,0xFD,0xFB,0xF7
};
char vSegValue[4];
char vIndex;
void DISP_Init(void)
{
int i;
//初始化本單元的全局變量
for(i=0;i<4;i++)
{
vSegValue[i] = 0;
}
vIndex = 0;
//初始化定時器T0
TMOD = 0x01;
ET0 = 1 ;
EA = 1 ;
TR0 = 1 ;
TH0 = 0xEC;
TL0 = 0x78;
}
void DISP_T0_ISR(void) interrupt 1
{
//重新預(yù)置初值
TH0 = 0xEC;
TL0 = 0x78;
//根據(jù)索引的值,操作端口,顯示一位數(shù)字
P1 = cBits[vIndex];
P0 = vSegValue[vIndex];
//改變索引,當(dāng)前正在顯示的位的編號。0~4之間
vIndex++;
if( vIndex >= 4 )
vIndex = 0;
}
void DISP_BitNum(char WhichBit,char WhichNum)
{
//根據(jù)當(dāng)前位和數(shù)字的參數(shù)
//把該數(shù)字對應(yīng)的段的字模,存入指定位的數(shù)組中 vsegValue[0] = cSegments[1];
vSegValue[WhichBit] = cSegments[WhichNum];
}
void DISP_Number(int Value)
{
char Number;
//提取Vlue的個十百千位的數(shù)字
//調(diào)用 DISP_BitNum (調(diào)用4遍)函數(shù),把需要顯示的數(shù)字的字模,放入全局變量數(shù)組中
while (Value >= 1000)
{
Number++;
Value -= 1000;
}
DISP_BitNum(0,Number);
Number = 0;
while (Value >= 100)
{
Number++;
Value -= 100;
}
DISP_BitNum(1,Number);
Number = 0;
while (Value >= 10)
{
Number++;
Value -= 10;
}
DISP_BitNum(2,Number);
DISP_BitNum(3,Value);
}
void DISP_Low2(char Value)
{
//提取Value的個位十位
//調(diào)用 DISP_BitNum的函數(shù)兩遍
char Number=0;
while(Value >= 10)
{
Number++;
Value -= 10;
}
DISP_BitNum(2,Number);
DISP_BitNum(3,Value);
}
void DISP_High2(char Value)
{
//提取Value的個位十位
//調(diào)用 DISP_BitNum的函數(shù)兩遍
char Number=0;
while(Value >= 10)
{
Number++;
Value -= 10;
}
DISP_BitNum(0,Number);
DISP_BitNum(1,Value);
}
D.h
#ifndef __MY__Display__Unit_H___
#define __MY__Display__Unit_H___
void DISP_Init(void);
void DISP_BitNum(char WhichBit,char WhichNum);
void DISP_Number(int Value);
void DISP_Low2(char Value);
void DISP_High2(char Value);
#endif
復(fù)制代碼
所有資料51hei提供下載:
數(shù)碼管驅(qū)動.docx
(16.18 KB, 下載次數(shù): 4)
2017-12-4 16:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1