hejoin
驱动小牛
驱动小牛
  • 注册日期2001-10-19
  • 最后登录2012-03-08
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望51点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
阅读:1006回复:1

/* 这是数字移位的avr-gcc语言版本!请高手指点*/

楼主#
更多 发布于:2002-03-13 12:46
/* 这是数字移位的c语言版本!*/
/* 请自己分析语言 */
/* 0--F.共计32个数字依次在8个数码管显示*/
/* 已经在hjavr实验开发系统上跳是通过 */

#include <io.h>
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);

}
恒坚电器([url]http://www.hejoin.com[/url])
zjmwbb
驱动牛犊
驱动牛犊
  • 注册日期2002-04-01
  • 最后登录2002-08-08
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-25 22:16
知不知道,在2000下怎么让蜂鸣器发出声音
游客

返回顶部