AVR第6课:数码管显示

这一节我们将讲解数码管的使用,由于原理在学51单片机的时候已经学习过,在这里只需要利用前面学习的对AVR单片机的IO口操作方式就可以自己写练习题了。

下面的数码管是共阳极数码管。

代码:显示从0到9。

/*
*author:ChenLu
*date:2014.11.20
*/

//input the head file so that the program can work normally
//iom16v---know the register
//macros---know the BIT(x)
#include<iom16v.h>
#include<macros.h>
//use those can make your study very conveninet
#define uint unsigned int
#define uchar unsigned char

//display methods
void initSystem();
void delay();

//display the variable data
uchar flag;
uchar table[10] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

//the main function
void main()
{
 	//init your system
	initSystem();
	while(1)
	{
	  	//start your function,and this is core solution
		for(flag=0;flag<10;flag++)
		{
            <span style="white-space:pre">		</span>PORTB = table[flag];
			delay();
			delay();
			delay();
			delay();
			delay();
			delay();
			delay();
		}
	}
}

//the method of init system
void initSystem()
{
 	//to make PB port output
	DDRB = 0xFF;
	//to make PB port output high level
	PORTB = 0xFF;
}

//the sub method of delay
void delay()
{
 	uchar i,j;
 	for(i=0;i<200;i++)
	  for(j=0;j<200;j++);
}

初学者可以做做其他的例子来练习。

时间: 2024-08-28 04:31:09

AVR第6课:数码管显示的相关文章

第3讲 数码管显示

一. 数码管显示原理 我们最经常使用的是七段式和八段式LED数码管,八段比七段多了一个小数点,其它的基本同样.所谓的八段就是指数码管里有八个小LED发光二极管,通过控制不同的LED的亮灭来显示出不同的字形.数码管又分为共阴极和共阳极两种类型,事实上共阴极就是将八个LED的阴极连在一起,让其接地,这样给不论什么一个LED的还有一端高电平,它便能点亮.而共阳极就是将八个LED的阳极连在一起.其原理图例如以下. 当中引脚图的两个COM端连在一起,是公共端,共阴数码管要将其接地,共阳数码管将其接正5伏电

7段数码管显示驱动代码

数码管显示进行简单的介绍,数码管显示原理在数电中已经给出了比较详细的介绍,我就不赘述了,因为我们用的是至芯的开发板,其上的数码管显示模块采用的是共阳极的数码管,为低电平有效,0-F的显示码依次为:    数码管的输入有3个位选和8个段选给出,位选信号sel来控制哪个数码管先亮,段选信号seg来控制数码管显示什么,位选本来应该是有6个的但是为了节约资源,采用了3-8译码器将6根线减少到3根,节约了FPGA的引脚资源. 因为人眼有一个视觉载留,所以60HZ来扫描的时候,数码管会让人眼觉得是同时点亮,

基于小脚丫的ADC081S101 电压采集595数码管显示

RTL结构图 采集模块运用SPI 通讯 MISO方式收集数据 module ad_collect(input sddata,input rst_n,output reg cs,output reg sclk,input clk,output [7:0]seg_data,output done); reg [7:0]cnt;reg[4:0]state;reg[7:0]data;reg rdone; [email protected](posedge clk or negedge rst_n ) b

51单片机第三弹---数码管显示

先把定义拉过来: LED数码管是由多个发光二极管封装在一起组成"8"字型的器件,引线已在内部连接完成,只需引出它们的各个笔划,公共电极.LED数码管常用的段数一般为7段,有的另加一个小数点 .LED数码管根据LED的接法不同,分为共阴和共阳两类 . 贴原理图 其实就两点 :由于板子上有8个数码管,而每个数码管有8段,称选择显示哪一个数码管的东西为位选,称单个数码管显示数字几的东西为段选,位选由P2.2  p2.3 p2.4 控制 数码管IO口为P0 对于每一个数码管,显示数字几只要控制

单片机与控制实验(1)——数码管显示

一.实验目的和要求 初步学习和掌握MCS-51的体系结构和汇编语言,了解Keil编程环境和程序下载工具的使用方法.了解数码管输出的原理及编程方式. 二.实验设备 单片机测控实验系统 STC-ISP程序下载工具 Keil开发环境 三.实验内容 使用MCS-51汇编语言编写程序,完成如下功能: 1. 使用三个数码管显示十进制数值(001~999,可任意设置): 2. 每隔1秒,该数值自动减一,直到归零; 3. 归零后的下一秒,显示一个新的十进制数值(001~999,可任意设置): 4. 每隔1秒,新

单片机编程:让led数码管显示数字0到9

led数码管在单片机系统中应用非常普遍,是由发光二极管构成的.数码管由7个发光二极管组成的一个"日"字形,如果需要显示小数点,那么就再加上一个点,就是8段数码管. 数码管显示亮度高,相应速度快,分共阴极和共阳极两种形式,常用的有单个的和4联的,还有两联的和专门用来显示时间的. /*************************************************** *程序功能:点亮一个led数码管,让它显示数字从0到9 * *日期:2015.5.11 * *******

一天:51单片机从入门到一个动态数码管显示数字控制

最近进的公司是一个做路由器的..很多嵌入式工程师.有个项目( 智能空调控制)是跟嵌入式工程师对接,我做APP+PHP..他做服务器.我们用MQTT(由于emqtt是用erlang写的,所以我也学了点erlang,后期有时间分享一下,这个语言很好,很强大.特别抽象).这个项目激发了我对嵌入式的兴趣,于是乎.开始从51单片机搞起了..所以就有了这篇文章...今天搞得东西挺多.我最近都是笔记形式,不想以前写的那么详细...因为学的东西太多,白天在公司搞项目,没时间写太具体... 今天学了什么呢? >k

AVR第7课:动态数码管

以下是动态数码管的电路图. 代码:动态数码管. /* *author:ChenLu *date:2014.11.20 */ //input the head file so that the program can work normally //iom16v---know the register //macros---know the BIT(x) #include<iom16v.h> #include<macros.h> //use those can make your s

树莓派控制数码管显示

1. 效果显示 2. 硬件设备 在某宝上买了一个4位共阴数码管.4个数字公用一个阴极,一共12个引脚.其中6,8,9,12是共阴引脚. 每个数字由 a-g 7个二极管和一个点dp.因为是在网上买的没有详细的器件手册,所以只能自己测试引脚与数码管上二极管的对应关系. 通过上图可以看出12号引脚对应的是第一位数字的共阴引脚,1号引脚对应数字e.依次测试,结果如下: 2.