⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 164.c

📁 凌阳单片机的数码管显示程序
💻 C
字号:
//-----------------------
#define uint unsigned int
#define ulong unsigned long
//-----------------------
#include"hardware.h"
#include"SPCE061V004.h"
//----------------
#define b15 0x8000
#define b14 0x4000
#define b13 0x2000
#define b12 0x1000
#define b11 0x800
#define b10 0x400
#define b9  0x200
#define b8  0x100
#define b7  0x80
#define b6  0x40
#define b5  0x20
#define b4  0x10
#define b3  0x8
#define b2  0x4
#define b1  0x2
#define b0  0x1
//-------------------------------
#define sda b15   //sda--A15
#define scl b14   //scl--A14
//----------------------------
void set_a(uint b){*P_IOA_Data |=b;}
void clr_a(uint b){*P_IOA_Data &=~b;}
void set_b(uint b){*P_IOB_Data |=b;}
void clr_b(uint b){*P_IOB_Data &=~b;}
//----------------------
void uint_164(uint b)
{
	shift(b%10);
	if(b>=10)shift(b/10%10);
	if(b>=100)shift(b/100%10);
	if(b>=1000)shift(b/1000%10);
	if(b>=10000)shift(b/10000%10);
}
//----------------------
void ulong_164(ulong b)
{
	shift(b%10);
	if(b>=10)shift(b/10%10);
	if(b>=100)shift(b/100%10);
	if(b>=1000)shift(b/1000%10);
	if(b>=10000)shift(b/10000%10);
	if(b>=100000)shift(b/100000%10);
	if(b>=1000000)shift(b/1000000%10);
	if(b>=10000000)shift(b/10000000%10);	
	if(b>=100000000)shift(b/100000000%10);
	if(b>=1000000000)shift(b/1000000000%10);
}
////////////////
void shift(int b)
{
	uint i;
	uint led[17]={0x11,0xD7,0x32,0x92, // 0 1 2 3 4 //
					0xD4,0x98,0x18,0xD3,0x10,0x90, // 5 6 7 8 9 //
					0x50,0x1C,0x39,0x16,0x38,0x78,0xff};// A B C D E F 灭//
	b=led[b];
	clr_a(sda);
	for(i=0;i<8;i++)
	{
		if((b<<i) & 0x80)set_a(sda);
		else  clr_a(sda);
		set_a(scl);
		clr_a(scl);
	}
}
//--------------------
dis_164(ulong b)
{
  //uint_164(b);
  ulong_164(b);
}
//-----------------
void clear_164()
{
  uint i;
  for(i=0;i<8;i++)shift(16);
}

⌨️ 快捷键说明

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