还剩2页未读,继续阅读
文本内容:
单片机闪烁灯跑马灯控制课程设计单片机闪烁灯跑马灯控制课程设计报告
一、引言本课程设计旨在通过学习和实践单片机编程,实现闪烁灯和跑马灯的控MCU制我们将使用嵌入式语言编程,通过了解单片机的内部结构、电路设计和编程C流程,深入理解单片机的工作原理和应用
二、系统硬件设计本课程设计选用单片机作为主控芯片,外接个灯和个按键硬件518LED1电路设计如下单片机采用该芯片具有字节的存储器,字节
1.AT89c51,32K Flash256的以及两个位定时器/计数器RAM,16灯采用普通灯珠,与单片机引脚相连,通过编程控制灯
2.LED LEDLED的亮灭状态按键采用机械按键,与单片机的外部中断相连,用于触发闪烁灯
3.0EXO和跑马灯的切换
三、系统软件设计闪烁灯模式在此模式下,个灯将按照一定的频率交替闪烁我们可
1.8LED以通过计时器和口控制灯的亮灭状态GPIO LEDvoidblink_LEDvoid{int i;while1{for i=0;i8;i++{//翻转状态Pl_0=-Pl_0;LED//延时,控制闪烁频率delay500;}}.跑马灯模式在此模式下,个灯将按照一定的顺序依次点亮我们可28LED以通过计时器和口控制灯的亮灭状态GPIO LEDvoidmarquee_LEDvoid{int i;状int led_state
[8]={01,0,1,01,0,1};//LEDr r态数组,初始为交替亮灭while1{fori=0;i8;i++{[//设置状态㊀㊀Pl_0=1i];LED//延时,控制跑马灯速度delay50;}
四、按键处理程序我们通过外部中断接收按键信号,当按键按下时,将切换闪烁灯和跑0EXO马灯模式按键处理程序如下中断月艮务程序void EX0_ISR voidinterrupt0{//EXO//如果按键已经被按下过if key_flag{//如果按键状态为低电平if key_value==0{//切换到跑马灯模式marquee_LED;//标记按键状态已经改变key_flag=0;//如果按键状态为高电平}else{//切换到闪烁灯模式blink_LED;//标记按键状态已经改变}key_flag=0;//翻转按键状态值key_value=-key_value;//如果按键还没有被按下过}else{//翻转按键状态值key_value=-key_value;//如果按键状态为低电平//if key_value==0{blink_LED;切换到闪烁灯模式//标记按键状态已经改变key_flag=1;//如果按键状态为高电平}else{//切换到跑马灯模式marquee_LED;//标记按键状态已经改变key_flag=1;。
个人认证
优秀文档
获得点赞 0