打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
164驱动8位LED显示 CVAVR程序

164驱动8位LED显示 CVAVR程序  

2010-04-15 22:25:19|  分类: AVR的CVAVR程序 |  标签: |字号 订阅

//164驱动数码管显示
//芯片 ATMEGA16L
//时钟 4MHz 内部
//采用CVAVR编写,使用了系统自带延时函数
//PD0 PD1 模拟164时序
#include<mega16.h>  
#include<delay.h> 
#define hc164_data PORTD.0
#define hc164_clk  PORTD.1 
void led164_display (void);  // 数码管显示
void hc164_send_byte (unsigned char byte);
unsigned char ledxs[8] = {1,2,3,4,5,6,7,8}; // 数码管显示缓冲区 1
unsigned char ledxs2[8] = {0x0a,0x0b,0x0c,0x0d,0x0e,0x0f,0,17}; // 数码管显示缓冲区 2
flash unsigned char tab[] = {0xb7,0x12,0x67,0x76,0xd2,0xf4,0xf5,0x16,0xf7,0xf6,0xd7,0xf1,0xa5,0x73,0xe5,0xc5,0,0xff};
                          //共阴极代码 0-F,  全灭,全亮
void main(void)
{
  delay_ms(200);  
  PORTD = 0xFF;
  DDRD = 0xFF;  //PD输出   
  while(1)
  {
    led164_display (); 
  }
}
void hc164_send_byte (unsigned char byte)
{
  unsigned char i;
   for(i=0;i<8;i++)
   {
      hc164_data = byte & ( 1 << i );      
      hc164_clk = 1;      
      hc164_clk = 0;  
   } 
}
void led164_display (void)
{
  unsigned char i; 
  for(i=0;i<8;i++) 
  {
    hc164_send_byte ( tab[ ledxs[i] ]);
    delay_ms(1);
   
  }
  delay_ms(2000);
  for(i=0;i<8;i++) 
  {
    hc164_send_byte ( tab[ ledxs2[i] ]);
    delay_ms(1);
   
  }
  delay_ms(2000);
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
74hc164驱动共阴数码管与共阳数码管
单片机写延时程序的几种方法
基于单片机的数字温度计的设计
单片机入门培训专题(十) – 数码管相关知识 – 著名的PCB哥
从单片机初学者迈向单片机工程师
单片机---多功能按键处理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服