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

📄 proj_4.c

📁 一位数码管计数器--74HC164编程学习 用74HC164驱动LED 此程序可以联系对74HC164的应用
💻 C
字号:
 
//ZC-51学习板实验源程序
//实验四 一位数码管计数器
//实验目的: 学习74HC164编程
//实验现象: 一位数码管计数显示
//http://www.ednchina.com/blog/zhichengdz/
//E-mail: zhicheng_dz@163.com

#include <reg52.h>			//包括一个标准的51头函数

#define uchar unsigned char			 //预定义
#define uint  unsigned int			 //预定义
#define ulong unsigned long			 //预定义

sbit SDA_164=P1^0;		  //74HC164端口定义
sbit SCLK_164=P1^1;
sbit DIG1=P1^2;			  //数码管位选端口
sbit DIG2=P1^3;			  //数码管位选端口
sbit DIG3=P1^4;			  //数码管位选端口
sbit DIG4=P1^5;			  //数码管位选端口

uchar code LedNumber[14]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x80,0x00,0x04,0x5c};

void delay(int i,int j)			  //延时函数
{
	int m;
	for(;i>0;i--)
	{
		m=j;
		for(;m>0;m--);
	}
}

void wirteByte_74164 (uchar ch)		//往74164中写一个字节
{	
	uchar i;
	SCLK_164 = 0;
	for (i=0;i<8;i++)
	{
		SDA_164 = ch&0x80;
		SCLK_164 = 1;
		ch = ch<<1;
		SCLK_164 = 0;
	}
}


void led_display (uchar ch)		 	  //一位数码管显示函数
{
	wirteByte_74164 (LedNumber[ch]);
	DIG4 = 0;
	delay(300,200);
	DIG4 = 1;
}

void main ()					//主函数
{
	uchar ch;
	while (1)				//死循环
	{
		led_display (ch);	 //显示数字
		ch++;				 //计数
		if (ch>9)
		{
			ch=0;
		}

	}	
}

⌨️ 快捷键说明

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