老古开发网首页
导航:老古开发网首页文章索引索引第68页文章分类AVR单片机第1页→[avr-gcc写的一段代码,用来驱动led]
| -文章搜索 - 最新文章 - |

第476篇:avr-gcc写的一段代码,用来驱动led

发布时间:2002年3月13日 点击次数:4679
来源:   作者:
 
/* 这是数字移位的c语言版本!*/
/* 请自己分析语言 */
/* 0--F.共计32个数字依次在8个数码管显示*/
/* 已经在hjavr实验开发系统上跳是通过 */

#include
typedef unsigned char u08;
typedef char s08;
typedef unsigned short u16;
typedef short s16;

void delay(u08 count);
void displed(u08 data,u08 lednu);
main()
{
outp(0xff,DDRB); /* 初始化显示 */
outp(0xff, PORTB); /* */
outp(0xff,DDRD); /* 关闭蜂鸣器*/
outp(0x7f, PORTD); /* */
u08 data,led;
int deu;
while(1)
{ for(data=0,led=0;data<32;data++,led++)
{ if(data%%8==0)led =0;
displed(data,led);
for(deu=0;deu<1800;deu++)
{delay(255);}
}
}
}
void delay(u08 count)
{
u08 delayk=255;
u08 k;
for(;count !=0;count--)
{
for(;delayk!=0;delayk--)
{k++;}
}
}
void displed(u08 data,u08 lednu)
{
u08 disnu[]={0xc0 ,0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82,0xf8,
0x80 ,0x90, 0x88, 0x83, 0xc6, 0xa1, 0x86,0x8e,
0x40 ,0x79, 0x24, 0x30, 0x19, 0x12, 0x02,0x78,
0x00 ,0x10, 0x08, 0x03, 0x46, 0x21, 0x06,0x0e};//这是led段码定义
u08 led[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};//这是数码管位码定义
outp(0xff ,DDRA); //显示输出
outp(0xff ,DDRC);
outp(led[lednu],PORTA);
outp(disnu[data],PORTC);
delay(250);

}


欢迎进入老古论坛进行讨论
[AVR单片机] 相关文章:
請問各位高手如何在1200中讀寫eeprom?
简介:
.def EEdata =r24 ;result or to write data byte .def EEaddr =r25 &nb......

对AVR为什么会冲掉eeprom数据的最新“谬论”
90s2313-10 可以运行在10Mhz以上吗?
AVR8515看门狗晶振为1MHZ,复位间隔应为16us--2048us,为何为16--2048ms?
AVR8535的AD能这样用吗?
 
下一个:[新闻热点]AMD未来移动处理器技术细节公布
简介:
  在平台论坛会议上,AMD公开了一些未来移动处理器的细节,具体如下: 移动Thoroughbred核心处理器 200/266Mhz外频 3......

上一个:[AVR单片机]avr高手请进---向导生成的uart结构......

老古开发网版权所有 2006年9月 asp.Net V2.0 设计:老古
页面缓存:30分钟 执行时间:31毫秒