seg.c

来自「实现51单片机的日历功能 用T2定时器作为基本时钟中断」· C语言 代码 · 共 53 行

C
53
字号
#include "seg.h"

unsigned char code segcode[] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
unsigned char code segselect[] = {0xFE,0xFD,0xFB,0xF7,0xFF};
/****************************************
	写段码数据
	 seg为显示数据
**************************************/
void WriteSegData(unsigned char seg)
{
	if(seg>9) seg=0;			//越界处理
	seg=segcode[seg];
	P0=seg;
		_nop_();
		_nop_();
	P2&=0x1f;						//P2.5-p2.7=000		CS0=0;
		_nop_();
		_nop_();
	P2|=0xe0;						//P2.5-P2.7=111		CS0=1;		数据锁存
}


/********************************************
	写位选数据
*************************************/
void WriteCsData(unsigned char cs)
{
	if(cs>4)cs=0;			//越界处理
	cs=segselect[cs];
	P0=cs;
		_nop_();
		_nop_();
	P2&=0x3f;				//P2.5-P2.7=100		CS1=0
		_nop_();
		_nop_();
	P2|=0xe0;				//数据锁存
}

/*******************************************
	写小数点
*****************************************/
void WritePoint(unsigned char i)
{
	if(i > 4)	i = 0;
	P0 = 0x80;
		_nop_();
		_nop_();
	P2&=0x1f;
		_nop_();
		_nop_();
	P2|=0xe0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?