...3种花样循环显示的编程与电路图。单片机89c51,先谢了!
发布网友
发布时间:2024-09-27 05:44
我来回答
共3个回答
热心网友
时间:2024-10-05 13:47
/*******************************************
文件:sld.C
环境:编译为ICC AVR6.25A,仿真为AVR Studio4.14
硬件:ATMEGA16芯片
日期:2008年12月10日
功能:驱动开发板上的LED。流水灯
备注:
/******************************************/
#include <D:\开发板\OK100E\程序\avr程序\OK100E.H>
/*******************************************
函数名称: One_led
功 能: 点亮或者熄灭指定的LED
参 数: number--指定的LED
light--为TRUE的时候为点亮LED,为FALSE的时候为熄灭LED
返回值 : 无
/********************************************/
void One_led(uchar number,uchar light)
{
uchar i;
if(light==TRUE) //点亮操作
{
PORTB&=~BIT(number); //输出数据
PORTC|=BIT(LEDLK); //更新数据
Delayms(5); //调整时序
PORTC&=~BIT(LEDLK); //锁存数据
}
else
{
PORTB|=BIT(number); //输出数据
PORTC|=BIT(LEDLK); //更新数据
Delayms(5); //调整时序
PORTC&=~BIT(LEDLK); //锁存数据
}
}
/*******************************************
函数名称: All_led
功 能: 点亮或者熄灭全部LED
参 数: light--为TRUE的时候为点亮全部LED,为FALSE的时候为熄灭全部LED
返回值 : 无
/********************************************/
void All_led(uchar light)
{
if(light)
{
PORTB&=~ALLLED; //ALLLED=0xFF,使全部LED都亮
PORTC|=BIT(LEDLK); //输出数据
Delayms(5); //调整时序
PORTC&=~BIT(LEDLK); //锁存数据
}
else
{
PORTB|=ALLLED; //ALLLED=0xFF,使全部LED都灭
PORTC|=BIT(LEDLK); //输出数据
Delayms(5); //调整时序
PORTC&=~BIT(LEDLK); //锁存数据
}
}
/*******************************************
函数名称: main
功 能: 流水灯
参 数: MS--点亮相邻LED的时间间隔,单位是毫秒
返回值 : 无
/********************************************/
void main()
{
Board_init();
PORTC|=BIT(BEEP);
while(1)
{
uchar i;
for(i=0;i<8;i++) //循环8次,8个LED依次点亮
{
All_led(FALSE); //全部熄灭
One_led(i,TRUE); //点亮指定的LED
Delayms(200); //延时指定的时间
}
}
}
热心网友
时间:2024-10-05 13:50
授之以渔如下:
流水灯:让P1口一位为低,如置0XFE。然后左移或右移(<</>>).判断CY是否为1.然后反向。
其它花样与此一样。可以举一反三。
热心网友
时间:2024-10-05 13:44
啊哈哈,就是顺序执行程序。很简单的,
...通过编程实现至少3种花样循环显示的编程与电路图。单片机89c51,先谢...
文件:sld.C 环境:编译为ICC AVR6.25A,仿真为AVR Studio4.14 硬件:ATMEGA16芯片 日期:2008年12月10日 功能:驱动开发板上的LED。流水灯 备注:/***/ include <D:\开发板\OK100E\程序\avr程序\OK100E.H> / 函数名称: One_led 功 能: 点亮或者熄灭指定的LED 参 数: number--...
89c51单片机编程产生PWM去驱动一个5v 2.5w的直流电机,采用8050或8550三 ...
所以,这种电路不合理。应该采用PNP的8550。接法如下:单片机引脚经过2K电阻接8550 B极,E极接5V+,C极接电机正极,电机负极接地。这种接法,单片机输出低电平,为其提供基极电流。不用加上拉电阻。
如何用单片机89c51通过uln2803驱动5V的继电器?需要具体的电路图!!!
要用+ 5 V 直流电压供电,每个并行口引脚输出最大电压不超过5 V , 输出电流最大为20mA[3 ] ,但35BYJ 46 型四相八拍电机需要12 V直流电压供电,因此,从AT90S8515 单片机C 口输出的信号不足以控制步进电机,所以必须加上驱动电路(即ULN2803) . 步进电机控制系统中将AT90S8515 C 口的高四位PC4 -...
编程加实践(单片机):求利用89C51 CPU编写红绿灯程序
回答:^_^,安装一个KEILC程序,它的安装目录下面有一个交通灯的完整例子 ^_^
利用89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波...
幅度的调节可以用双DA来做啊,也就是用另外一块DA来控制数据转换DA的基准电压。第二种方案:用单片机控制DDS芯片啊,比如用单片机控制AD9834,可以产生正弦波、方波、三角波,频率的调节就更简单了。幅度的调节也可以用双DA来实现,也可以先用电阻衰减再用运放放大,这样幅度就可以连续可调了。电路图和...
89c51单片机的数字钟程序?
TIMER_GO5: //与TIMER_GO20类似,只是这里只让定时5次一循环。用于调整闪烁 MOV 4AH,#05H //5(=0x05)次定时 MOV A,4AH //用取反设置定时次数, CPL A MOV 4AH,ATIMER_S://未重置(4AH)的调用, //设置启动T0 MOV TMOD,#01H //设置模式:T0模式1 MOV TH0,#3CH //T0初值高8位 MOV TL0...
用89C51单片机设计多功能低频函数信号发生器,能产生方波、正弦波、三角...
在AT89S51的P2口接5个按扭,通过软件编程来选择各种波形、幅值电压和频率,另有3个P2口管脚接TEC6122芯片,以驱动数码管显示电压幅值和频率,每种波形对应一个按钮。此方案的有点是电路原理比较简单,实现起来比较容易。缺点是,采样频率由单片机内部产生故使整个系统的频率降低。 1、波形发生器技术指标 1)波形:方波、...
用89c51设计一个电子时钟电路图
4 P0.2/AD2控制“时”的调整,每按一次加1个小时;2. 电路原理图 http://www.51kaifa.com/upload/eWebUpload/20060216191917106.gif 3. 系统板上硬件连线 (1)把“单片机系统”区域中的P1.0-P1.7端口用8芯排线连接到“动态数码显示”区域中的A-H端口上;(2)把“单片机系统:区域中...
这个单片机89c51的电路图各部分原件有什么用,以及为什么要这样设计...
U1是单片机,LS1是一个小喇叭发声音的。X1是晶体振荡器,提供单片机的工作频率。K1到K4是按键,按下以后通过一个中断信号来通知单片机。用户有按键的动作。再上面是一个显示屏。
单片机:89C54和89C51有什么区别?
很明显,89c52(89c54)和89c51的区别主要是89c52多了一个(16位可自动装入初值的)T2定时器,相应的多了一些 控制寄存器TCON及相关的中断申请,中断允许等等另外就是 psw 是状态字寄存器,学汇编的都懂些我了解的也不多,更详细的区别,还请高手们补充! myyjq | 发布于2012-05-29 举报| 评论 2 0 89C51 ROM...