ATmega16L单片机数码管显示示例程序设计

发布者:ziyunting最新更新时间:2020-03-08 来源: eefocus关键字:ATmega16L  单片机  数码管显示 手机看文章 扫描二维码
随时随地手机看文章

简介:在这里为大家提供一个ATmega16L单片机数码管显示示例程序设计。


;******************************************************

;*标题: ATmega16L单片机数码管显示示例程序

;*文件:

;*版本: 1.0


;*******************************************************

#include

#include

//注: 内部函数_delay_ms() 最高延时 262.144mS@1MHz 即 32.768ms@8MHz

// 该函数可以实现较精确的定时for()/while()指令很难计算延时时间

// 为了使 _delay_ms()函数的延时正确,须在makefile中设定F_CPU为实际的系统时钟频

// 本范例为4MHz内部RC振荡器 即 F_CPU=4000000

//**********************************

#define uchar unsigned char //数据类型说明

#define uint unsigned int //数据类型说明

#define RD4 4 //

#define RD5 5 //

#define RD6 6 //

#define RD7 7 //

//**********************************

uchar table[11]={0xc0,0xf9,0xa4,0xb0,0x99, // 0, 1, 2, 3,4,

0x92,0x82,0xf8,0x80,0x90, 0xff} ;// 5, 6, 7, 8, 9, off

uchar buf[4] ;

uchar disppoint; //

//**********************************

void DelayMs(uint i) //Ms级延时函数,参数i:延时时间

{ uint j ;

for( ;i!=0 ;i--)

{for(j=8000 ;j!=0 ;j--) ;}

}

//**********************************


//**********************************

void put_num(char c)

{

PORTC=table[c&0x0f]; //

}

//*********************************

void main()

{

DDRD=0xFF ; //置PD口为输出

PORTD=0xFF ;

DDRC=0xFF ;

PORTC=0xFF ; //置PC口为输出

buf[0]=0; //

buf[1]=1; //

buf[2]=2; //

buf[3]=3; //

while(1)

{


disppoint=0; //

put_num(buf[disppoint]); //

PORTD &=~(1<DelayMs(1); //

PORTD |= (1<disppoint++; //

put_num(buf[disppoint]); //

PORTD &=~(1<DelayMs(1); //

PORTD |= (1<disppoint++; //

put_num(buf[disppoint]); //

PORTD &=~(1<DelayMs(1); //

PORTD |= (1<

disppoint++; //

put_num(buf[disppoint]); //

PORTD &=~(1<DelayMs(1); //

PORTD |= (1<//

}

}


关键字:ATmega16L  单片机  数码管显示 引用地址:ATmega16L单片机数码管显示示例程序设计

上一篇:基于ATmega16单片机的DDS信号源设计制作
下一篇:基于ATmega16的遥控密码锁系统的设计

推荐阅读最新更新时间:2024-10-26 18:46

ATmega16L单片机数码管显示示例程序设计
简介:在这里为大家提供一个ATmega16L单片机数码管显示示例程序设计。 ;****************************************************** ;*标题: ATmega16L单片机数码管显示示例程序 ;*文件: ;*版本: 1.0 ;******************************************************* #include avr/io.h #include avr/delay.h //注: 内部函数_delay_ms() 最高延时 262.144mS@1MHz 即 32.768ms@8MHz // 该函数可以实现较精确的定时for()
[单片机]
基于AVR微处理器ATmega16L的LED旋转屏显示系统的设计
引言 科技快速发展的今天,LED显示屏已成为一种新型的电子屏幕广告媒体,相比传统的喷绘、写真的广告画面死板、不活泼的广告牌、广告灯箱等,LED显示屏给人们带来了清晰明了、新鲜活泼的广告宣传效果,同时LED显示屏可以全程由电脑操控,屏幕资源也可以重复利用,提高了诸多企业的经济效益。 目前市场上LED显示屏较多的利用发光二极管所构成的点阵模块或像素单元而组成的大面积平板显示屏幕,该屏幕利用快速行扫描或列扫描而形成文字或图案,扫描显示时有一个突出特点就是任何时刻只有一列LED发光,从左起,控制每一列的位选端,依次从首列逐列显示到末列基于这一点,可以只采用一列LED,通过旋转形成一个等效点阵,并借软件程序改变LED的位置来模拟点阵
[单片机]
基于AVR微处理器<font color='red'>ATmega16L</font>的LED旋转屏<font color='red'>显示</font>系统的设计
ATMEGA16L实现时间和温度的循环显示程序分享
//ICC-AVR application builder : 2/13 20:52:33 /******************************************************************************* * 版权: * * 单片机: ATMAGE16L * 晶振: 外部8MHz * 编译器: ICC 7.22 * * 文件名: main.c * 作者: 木子工作室 * 版本: 1.0 * 完成日期: * 功能描述: 在12M晶振下,实现时间和温度的循环显示 **************************************************
[单片机]
我也玩单片机:8只数码管滚动显示单个数字
滚动显示0~7 源代码 1 #include reg52.h 2 #define uchar unsigned char 3 #define uint unsigned int 4 uchar code table ={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0xff};//数字0~F的编码表。本程序只用了0~7 5 uchar code tab ={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//从左到右位置的地址变。1~8对应管脚高电平有效。本程序用位左移操作更佳。 6 void delay(uint z) 7 { 8
[单片机]
我也玩<font color='red'>单片机</font>:8只<font color='red'>数码管</font>滚动<font color='red'>显示</font>单个数字
单片机-4x4个矩阵按键控制数码管显示数字程序
1 #include 8051.h 2 typedef unsigned char u8; 3 typedef unsigned int u16; 4 u8 smgduan = { 5 /*0 1 2 3 4 5 6 7 */ 6 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 7 /*8 9 A B C D E F */ 8 0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71}; 9 10 // P0口为数码管的位选的8位输入引脚 11 // P
[单片机]
【51单片机】七段数码管显示实验+详细讲解
前言 继上次仿真实验—— 【51单片机】矩阵键盘线反转法实验仿真 之后,尽管也对点阵LED进行了学习,但是,点阵LED的显示效果不佳(仿真时的色彩、明亮程度等),加上大多数时候我们在计算器上看到的是七段数码管,所以在学习了学校课程之后,我也进行了尝试。这次主要是 记录七段数码管的使用方法 ,在此之后,我考虑 把键盘扫描(线反转法)、七段数码管、80C51结合起来 ,把整个计算器的功能完善,也算是完成一个小项目。 因为我认为光学理论只是很容易忘记,且容易磨灭兴趣,所以在学习过程中以做一个计算器为目标,循序渐进地学习,缺什么知识就补充什么知识,就像前几次所作的一样: 【51单片机】矩阵键盘线反转法实验仿真 【51单片机】点阵LED的
[单片机]
【51<font color='red'>单片机</font>】七段<font color='red'>数码管</font><font color='red'>显示</font>实验+详细讲解
AT89S51单片机对6位LED数码管实现显示时计方式的设计
这是我们设计的单片机电子钟/计时器学习板,它采用6位LED数码管显示时、分、秒,以24小时计时方式。可以通过按键实现时分调整、秒表/时钟功能转换、省电(关闭显示)等功能。我们能提供的完整的汇编语言源程序清单及电路原理设计图有助于学习者进行分析和进行实验验证。 硬件参数板上资源:MCU STC89C52、6位Led显示、3位按键。电源部分为5V直流电压,需要稳压、滤波电路,不能接反! 51单片机做的电子钟在很多地方都有介绍, 对于单片机学习者来说这个程序基本上是一道门槛,掌握了电子钟程序, 基本上可以说51单片机就掌握了80%。常见的电子钟程序由显示部分、计算部分、时钟调整部分构成,本产品硬件上完全支持倒计时器,客户只要自己修改
[单片机]
AT89S51<font color='red'>单片机</font>对6位LED<font color='red'>数码管</font>实现<font color='red'>显示</font>时计方式的设计
使用51单片机并行口驱动LED数码管显示电路及程序
介绍利用51单片机的一个并行口实现多个LED数码管显示的方法,给出了利用此方法设计的多路LED显示系统的硬件电路结构原理图和软件程序流程,同时给出了采用51汇编语言编写程序。 1 硬件电路多位LED显示时,常将所有位的段选线并联在一起,由一个8位I/O口控制,而共阴极点或共阳极点分别由另一个8位I/O口控制;也可采用并行扩展口构成显示电路,通常,需要扩展器件管脚的较多,价格较高。本文将介绍一种利用单片机的一个并行I/O口实现多个LED显示的简单方法,图1所示是该电路的硬件原理图。其中,74LS138是3线-8线译码器,74LS164是8位并行输出门控串行输入移位寄存器,LED采用L05F型共阴极数码管。 显示时,其显示数据
[单片机]
使用51<font color='red'>单片机</font>并行口驱动LED<font color='red'>数码管</font><font color='red'>显示</font>电路及程序
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved