AVR单片机4位数码管计数C程序

发布者:MysticEssence最新更新时间:2015-07-16 来源: 51hei关键字:AVR单片机  4位数码管  计数C程序 手机看文章 扫描二维码
随时随地手机看文章
AVR单片机4位数码管计数,从0000-5000一直循环。位选端接在PC的低4位,而段选端接在PA口。程序如下:

#include//头文件
#include//头文件
#define uchar unsigned char//宏定义
#define uint unsigned int//宏定义
uchar i;//定义变量
uint num;//定义计数变量
#pragma data:code//数组存放位置
const table[]={
0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,
0x88,0x83,0xc6,0xa1,0x86,
0x8e
};//共阳数码管0--9代码
/*************************************************************/
/*********************延时子程序******************************/
/*************************************************************/
void delay(uint z)//一个带参数,不带返回值的子函数
{
 uint x,y;//定义两个变量
 for(x=0;x<55;x++)//外循环
 for(y=z;y>0;y--);//内循环
}
/*************************************************************/
/*********************显示子程序******************************/
/*************************************************************/
void xian()
{   
      for(i=0;i<20;i++)//显示20次,使整体看起来不闪烁
 {
         PORTA=table[num/1000];//将千位数给PA口
   PORTC&=~BIT(3);//打开千位位选端
   delay(2);//延时一会儿
   PORTC|=BIT(3);//关掉千位
   PORTA=table[num%1000/100];//将百位数给PA口
   PORTC&=~BIT(2);
   delay(2);
   PORTC|=BIT(2);
   PORTA=table[num%100/10];//将十位数给PA口
   PORTC&=~BIT(1);
   delay(2);
   PORTC|=BIT(1);
   PORTA=table[num%10];//将个位数给PA口
   PORTC&=~BIT(0);
   delay(2);
   PORTC|=BIT(0);
 }
 num++;//将它加1,形成动态计数
 if(num>5000)//如果它大于5000就将计数器清0
 num=0;//清0
}
/*************************************************************/
/*************************主程序******************************/
/*************************************************************/
void main()
{
     DDRA=0xff;//设置PA口为输出
     DDRC=0xff;//设置PC口为输出
     while(1)
     {
        xian(); //调用显示子函数  
     }
}

 
 
关键字:AVR单片机  4位数码管  计数C程序 引用地址:AVR单片机4位数码管计数C程序

上一篇:用AVR单片机创造机器生命
下一篇:AVR单片机1602液晶程序

推荐阅读最新更新时间:2024-03-16 14:25

AVR单片机T1中断定时1秒程序
#include iom16v.h #include macros.h #define uchar unsigned char #define uint unsigned int uchar num=0; #pragma interrupt_handler miao:9 #pragma data:code // T/C1中断入口 void miao(void) { if(num==100) {num=0;} else {num++;} TCNT1H=0X85;//重新装载T/C1的初值 TCNT1L=0XED; } void Time1Init(void) { TCCR1B=0X04;//
[单片机]
基于AVR单片机的125 kHz简易RFID阅读器设计
0 引言 无线射频识别(Radio Frequency Identification,RFID)是利用感应、电磁场或电磁波为传输手段,完成非接触式双向通信、获取相关数据的一种自动识别技术。该技术完成识别工作时无须人工干预,易于实现自动化且不易损坏,可识别高速运动物体并可同时识别多个射频卡,操作快捷方便,已经得到了广泛的应用。 目前存在的一些读卡器,都需要读卡芯片作为基站,成本较高。本文介绍了一种采用分立元件构成的125 kHz RFID阅读器,电路结构简单,成本极低,用于读取EM4100型ID卡。 1 RFID系统的分类 RFID系统的分类方法有很多,在通常应用中都是根据频率来分,根据不同的工作频率,可将
[单片机]
AVR单片机设计LED彩灯控制器
8个LED灯直接连接到Vcc 上,不需要限流电阻。本制作利用到同步定时器,及使用睡眠的方式节省电力。 如果你想改变LED接的管脚,请修改hardware.h文件。如果想修改LED的亮度,请修改globals.h 中的Timings 段定义。本设计外接了两个按钮,一个是选择工作模式,另一个是电源的开关。当你按下模式按钮1.5秒以上时,进入自动模式,会自动演示所有的预设模式。 实物图: 电路图:(点击可以放大) PCB图:(点击可以放大)
[单片机]
用<font color='red'>AVR单片机</font>设计LED彩灯控制器
如何制作自己的51、AVR单片机开发板
先不说别的先上两张实物图 正面 反面 之所以做这个的初衷是应为自己买的51开发板已经下载不了程序了,所以想做一个下载程序的最小系统,可是做到后来,就觉着这么大一块万用板只是做一个下载的就有点可惜,于是就扩展一下其功能。这只是初步的样子,板子还有大概分之一的地方还没有走线,以后需要的的话,再加上自己想要的模块。 1.51单片机最小下载电路的制作 51单片机的下载电路有两种,如下表所示 下载时要按一下开关的下载电路 带冷启动功能的下载电路
[单片机]
如何制作自己的51、<font color='red'>AVR单片机</font>开发板
带DAC输出的多通道温度采集模块的设计
  在化工产业,机械加工,工业制造等领域经常要考虑到温度对测量或加工的影响,因此对温度的测量和控制就显得尤为重要。特别在一些环境恶劣、干扰较强的使用场合,温度采集装置的稳定是实现测量与控制的首要环节。本文针对上述背景,设计了通用多通道检测模块。   1 系统结构和工作原理   模块采用单片机ATmega48为控制核心,多路恒流源测温电路通过电子开关CD4051与13位A/D转换器MCP3301相连,通过单片机控制3/8译码器74HC138进行通道选择;模块通过基于Modbus通信协议的RS 485接口与主机通信;并具有一路PWM转DAC电路。模块适用于与PLC等主机连接,各通道实时检测数据保存于各通道的保持寄存器中,当接收到主
[单片机]
带DAC输出的多通道温度采集模块的设计
AVR单片机GCC编程:定时器的基本操作
以下为定时器的查询工作方式,不会发生中断请求: #include avr/io.h int main(void) { //8位定时器时间计算 T=(256-初值) * 脉冲周期 int i; TCNT0 = 55; //设置初值 TCCR0 |= (1 CS01); //8分频 for (i = 0; i 10000; i++) { while(!(TIFR & TOV0)); //对T/C0溢出标志进行判断,溢出后自动清零,不发生中断. } } 以下工作方式,会发生溢出中断请求: #include avr/io.h #include avr/interrupt.h volatile unsigned int
[单片机]
基于AVR单片机Atmega16的ADC采集数码管显示仿真程序
电路图 用到的数码管是7SEG-MPX4-CC。 程序代码 #include mega16.h #include delay.h #define uchar unsigned char #define uint unsigned int flash char led_7 = {0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f}; flash char position = {0xe0, 0xd0, 0xb0, 0xf0}; char ad ; //数码管显示函数 void display() { char i; for (i = 0;
[单片机]
基于<font color='red'>AVR单片机</font>Atmega16的ADC采集<font color='red'>数码管</font>显示仿真程序
基于AVR单片机和串口的SD卡读取平台的设计
O 引言 SD卡(secure digital memory card,安全数码卡)是一种基于半导体快闪记忆器的新一代记忆设备,它被广泛地于便携式装置上使用,例如数码相机、个人数码助理(PDA)和多媒体播放器等。SD卡由日本松下、东芝及美国SanDisk公司于1999年8月共同开发研制。大小犹如一张邮票的SD记忆卡,重量只有2 g,但却拥有高记忆容量、快速数据传输率、极大的移动灵活性以及很好的安全性。 本文正是通过AVR单片机经过软硬结合的设计方案,来读取SD卡上FAT32文件系统中的数据,FAT32是微软公司开发的新一代的文件系统,支持更大的存储容量和长达255个字符的文件名,也可以通过串口转USB接口芯片通过计算机来访
[单片机]
基于<font color='red'>AVR单片机</font>和串口的SD卡读取平台的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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