前言:
当前兄弟们对“c语言编程单片机数码管”大致比较注意,大家都想要了解一些“c语言编程单片机数码管”的相关内容。那么小编在网上汇集了一些关于“c语言编程单片机数码管””的相关知识,希望各位老铁们能喜欢,大家快快来了解一下吧!数码管在生活中的使用十分常见,主要提供数字的显示,如时钟显示,计数,家用电磁炉,电饭煲等等设备上都有其身影。数码管由7个LED发光二极管组合而成,7个发光二极管的负极相连在一起称为共阴,正极相连在一起称为共阳。
从上图来看,要想使数码管显示相应的数字,只要对应的发光二极管点亮就可以。如想显示数字2,以共阴极的来说,只要A、B、D、E、G对应的发光管阳极接电源,共阴极接地。这几个发光二极管就显示,对应在数码管上就显示数字2。用单片机来控制的话,可以对数码管ABCDEFG实现不同的电平切换,最终显示不同的数字,电路图如下:
软件是硬件电路的心脏,能够调度所以的资源工作。本文将以以C语言为基础来编写程序达到控制数码管显示的目的。由于前几次都是在编程软件上写程序,拷贝到文章中,但发现效果不好,不容易理解。因此就在文中以简单通俗的语言进行程序的编写。应读者的要求,编写一个延时函数,是程序更为简单有效。
#include <reg51.h> //可以这么理解,这语句指的就是链接硬件和软件的桥梁
sbit leda=P0^0; //数码管中a的发光二极管连接单片机的P0^0管脚,用leda来代替P0^0
sbit ledb=P0^1; //数码管中b的发光二极管连接单片机的P0^1管脚,用ledb来代替P0^1
sbit ledc=P0^2; //数码管中c的发光二极管连接单片机的P0^2管脚,用ledc来代替P0^2
sbit ledd=P0^3; //数码管中d的发光二极管连接单片机的P0^3管脚,用ledd来代替P0^3
sbit lede=P0^4; //数码管中e的发光二极管连接单片机的P0^4管脚,用lede来代替P0^4
sbit ledf=P0^5; //数码管中f的发光二极管连接单片机的P0^5管脚,用ledf来代替P0^5
sbit ledg=P0^6; //数码管中g的发光二极管连接单片机的P0^6管脚,用ledg来代替P0^6
void delay( ); //延时函数的声明,所谓延时 就是等待,发呆
/********延时函数功能的实现****************************************
*******主要用于等待发呆,让LED灯闪烁的时间等待*************/
void delay( )
{
int ds=30000; //定义一个变量,用来控制延时时间。ds的值大小可以控制延时的时间
while(ds--); //循坏30000次发呆
}
/***下面进行主函数的编写*************************C语言程序最主要的就是主函数,
任何功能的实现都是在主函数里去实现,且是单片机程序的入口函数*********************/
void main( ) //主函数的定义
{
leda=0;ledb=0;ledc=0;ledd=0;lede=0;ledf=0;ledg=0;//初始化LED灯,就是让数码管初始化,处于不亮的状态
while(1) //让程序一直循环,简称死循环
{
leda=1;ledb=1;ledc=1;ledd=1;lede=1;ledf=1;ledg=0; //显示数字0,让abcdef对应的LED亮,g对应的LED 不亮
delay( ); //调用延时函数,让数码管显示0保持一段时间
leda=0;ledb=0;ledc=0;ledd=0;lede=0;ledf=0;ledg=0; //重新初始化,就是让数码管休息一下(消隐)
leda=0;ledb=1;ledc=1;ledd=0;lede=0;ledf=0;ledg=0; //显示数字1,让bc对应的LED亮,adefg对应的LED 不亮
delay( ); //调用延时函数,让数码管显示1保持一段时间
leda=0;ledb=0;ledc=0;ledd=0;lede=0;ledf=0;ledg=0; //重新初始化,就是让数码管休息一下(消隐)
leda=1;ledb=1;ledc=0;ledd=1;lede=1;ledf=0;ledg=1; //显示数字2,让bc对应的LED亮,adefg对应的LED 不亮
delay( ); //调用延时函数,让数码管显示1保持一段时间
leda=0;ledb=0;ledc=0;ledd=0;lede=0;ledf=0;ledg=0; //重新初始化,就是让数码管休息一下(消隐)
//其他数字的显示相信读者会了,可以尝试编写
} //while的结束
} //主函数的结束
结束语:此程序目前实现了0和1、2的轮流显示。可以尝试写显示其他的数字。下图是仿真效果图
标签: #c语言编程单片机数码管 #动态数码管显示c语言程序