C语言:51单片机实现数码管依次循环显示【1~F】课堂练习

在51单片机上实现数码管依次循环显示【1~F】的功能,可以通过以下步骤完成。假设使用的是共阴极数码管,并且数码管的段选和位选分别连接到单片机的P0口和P2口。

硬件连接

  • 数码管的段选(a, b, c, d, e, f, g, dp)连接到P0口。
  • 数码管的位选(选择哪个数码管显示)连接到P2口。

以下编程都是基于C语言的模块化编程实现的,1秒钟依次循环显示【1~F】课堂练习

步骤:

1,首先先定义一个用于存储段码的数组

2,然后定义一个用于控制灯变动的位码

3,初始化定时中断函数

4,定义定时中断服务函数为1秒

具体代码如下:

main.c

cpp 复制代码
#include <REGX52.H>
#include <timer.h>
unsigned int count = 0;

unsigned char NixieTable[]={ 
 
0x3f,0x06,0x5b,0x4f,
 
0x66,0x6d,0x7d,0x07,
 
0x7f,0x6f,0x77,0x7c,
 
0x39,0x5e,0x79,0x71, 0x00};  //首先先用数组定义一个段码
 
 
void seg_dis(unsigned char Location,Number)
{
	switch(Location)
	{
		case 1:
			P2_4=1;P2_3=1;P2_2=1;break;
		case 2:
			P2_4=1;P2_3=1;P2_2=0;break;
		case 3:
			P2_4=1;P2_3=0;P2_2=1;break;
		case 4:
			P2_4=1;P2_3=0;P2_2=0;break;
		case 5:
			P2_4=0;P2_3=1;P2_2=1;break;
		case 6:
			P2_4=0;P2_3=1;P2_2=0;break;
		case 7:
			P2_4=0;P2_3=0;P2_2=1;break;
		case 8:
			P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=NixieTable[Number];
}
 

	
void main()
{
	Time0_Init();
    while(1){
			
		}
   
	
}
unsigned int number = 1;
unsigned int i = 0;



//Ö´ÐÐÖжϵÄÖжϳÌÐò
void Timer0_ISR() interrupt 1
{
	 TL0 = 0xCD;		//ÖØÐ¼ÓÔØ³õÖµ	
	 TH0 = 0xD4;	
 
	if(++count == 100){
		seg_dis(number,i);
		i+=1;
		count = 0;
		if(i == 16){  //ÀÛ¼Ó1ÂÖºóÍùÓÒÒÆ¶¯Ò>>Î>>
			number+=1;
			i = 0;
	}
}
	if(number == 8){
			number = 0;
			
	}

}

tiemr.c (初始化定时器)

cpp 复制代码
#include <REGX51.H>
void Time0_Init()
{   



	TMOD &= 0xF0;			
	TMOD |= 0x01;			
	TL0 = 0xCD;			
	TH0 = 0xD4;				
	TF0 = 0;				
	TR0 = 1;				


	  //Æô¶¯ÖÐ¶Ï  
	 EA = 1 ;  //×Ü¿ª¹Ø
	 ET0 = 1;
	

	

}
	

timer.h

cpp 复制代码
#ifndef _TIMER_H_
#define _TIMER_H_


void Time0_Init();

#endif
相关推荐
军训猫猫头8 分钟前
96.如何使用C#实现串口发送? C#例子
开发语言·c#
liuyang-neu23 分钟前
java内存模型JMM
java·开发语言
int型码农31 分钟前
数据结构第八章(一) 插入排序
c语言·数据结构·算法·排序算法·希尔排序
我很好我还能学2 小时前
【面试篇 9】c++生成可执行文件的四个步骤、悬挂指针、define和const区别、c++定义和声明、将引用作为返回值的好处、类的四个缺省函数
开发语言·c++
蓝婷儿2 小时前
6个月Python学习计划 Day 16 - 面向对象编程(OOP)基础
开发语言·python·学习
渣渣盟3 小时前
基于Scala实现Flink的三种基本时间窗口操作
开发语言·flink·scala
学习噢学个屁3 小时前
基于STM32语音识别柔光台灯
c语言·stm32·单片机·嵌入式硬件·语音识别
糯米导航3 小时前
Java毕业设计:办公自动化系统的设计与实现
java·开发语言·课程设计
糯米导航3 小时前
Java毕业设计:WML信息查询与后端信息发布系统开发
java·开发语言·课程设计
MessiGo3 小时前
Javascript 编程基础(5)面向对象 | 5.1、构造函数实例化对象
开发语言·javascript·原型模式