?? displed.c
字號:
#include <intrins.h>
//#include "me.h"
#include <regx52.h>
#include "disp.h"
//此處定義數(shù)碼管各段位置
#define a 0x01 //D7
#define b 0x02 //D6
#define c 0x04 //D4
#define d 0x08 //D3
#define e 0x10 //D2
#define f 0x20 //D0
#define g 0x40 //D1
#define dot 0x80 //D5
extern unsigned char code seg[];
//////////////////////////////
// ~(a+b+c+d+e+f), // 共陽極
// (a+b+c+d+e+f), // 共陰極
//定義特殊符號
//數(shù)碼管顯示時用的編碼
unsigned char code seg[] =
{
~(a+b+c+d+e+f), // 0
~(b+c), // 1
~(a+b+d+e+g), // 2
~(a+b+c+d+g), // 3
~(b+c+f+g), // 4
~(a+c+d+f+g), // 5
~(a+c+d+e+f+g), // 6
~(a+b+c), // 7
~(a+b+c+d+e+f+g), // 8
~(a+b+c+d+f+g), // 9
~(a+b+c+e+f+g), //A
~(c+d+e+f+g), //b
~(a+d+e+f), //C
~(b+c+d+e+g), //d
~(a+d+e+f+g), //E
~(a+e+f+g) //F
};
unsigned char stacode=0;
char dispbuf[6];
char low[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf};
void put_num(char cnum)
{
P0=seg[ cnum & 0x0f];
}
void disp_ascii(void)
{
static char disppoint;
P2=P2|0x3f;
put_num(dispbuf[disppoint]);
//P0=seg[ dispbuf[disppoint] & 0x0f];
if(disppoint==2 && stacode==1) P0&=~dot; /* 小數(shù)點*/
P2=P2 & low[disppoint];
if (disppoint++>=5) disppoint=0;
}
void disp_(void)
{
static char disppoint;
P2=P2|0x3f;
//put_num(dispbuf[disppoint]);
P0= dispbuf[disppoint];
if(disppoint==2 && stacode==1) P0&=~dot; /* 小數(shù)點*/
P2=P2 & low[disppoint];
if (disppoint++>=5) disppoint=0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -