C51单片机按键加灯怎么编写,想编写一个程序,用三个按键控制数码管,编译的时候出现问题,哪位大神帮忙看一下怎么改

用small RTOS 实时操作系统,单片机按键加灯怎么编写用c编写的按键控制数码管 评分:

用small RTOS 实时操作系统单片机按鍵加灯怎么编写用c编写的按键控制数码管.自己编译过。

0 0

为了良好体验不建议使用迅雷下载

用small RTOS 实时操作系统,单片机按键加灯怎么编写用c編写的按键控制数码管

会员到期时间: 剩余下载个数: 剩余C币: 剩余积分:0

为了良好体验不建议使用迅雷下载

为了良好体验,不建议使鼡迅雷下载

0 0

为了良好体验不建议使用迅雷下载

您的积分不足,将扣除 10 C币

为了良好体验不建议使用迅雷下载

开通VIP会员权限,免积分下载

您因违反CSDN下载频道规则而被锁定帐户如有疑问,请联络:!

用small RTOS 实时操作系统单片机按键加灯怎么编写用c编写的按键控制数码管

原标题:51单片机按键加灯怎么编寫数码管显示跑马灯程序源代码讲解

51单片机按键加灯怎么编写数码管显示跑马灯程序源代码讲解

基于51单片机按键加灯怎么编写学习板用S1鍵作为控制跑马灯的方向按键,S5键作为控制跑马灯方向的加速度按键S9键作为控制跑马灯方向的减速度按键,S13键作为控制跑马灯方向的启動或者暂停按键记得把输出线P0.4一直输出低电平,模拟独立按键的触发地GND

跑马灯运行:第1个至第8个LED灯一直不亮。在第9个至第16个LED灯依次逐个亮灯并且每次只能亮一个灯。每按一次独立按键S13键原来运行的跑马灯会暂停,原来暂停的跑马灯会运行用S1来改变方向。用S5和S9来改變速度每按一次按键的递增或者递减以10为单位。

数码管显示:本程序只有1个窗口这个窗口分成3个局部显示。87,6位数码管显示运行状態启动时显示“on”,停止时显示“oFF”5位数码管显示数码管方向,正向显示“n”反向显示“U”。4,3,2,1位数码管显示速度数值越大速度越慢,最慢的速度是550最快的速度是50。

(3)源代码讲解如下:

//根据原理图得出的共阴数码管字模表

* 由于本程序只有1个窗口而这个窗口又分成3个局部,因此可以省略去窗口变量uWd

else //反方向,向下显示U

if(ucWd1Part3Update==1) //更新显示当前系统的速度,此数值越大速度越慢此数值越小速度越快。

if(key_sr1==1)//IO是高电平说明按键没有被按下,这时要及时清零一些标志位

uiKeyTimeCnt1=0;//按键去抖动延时计数器清零此行非常巧妙,是我实战中摸索出来的

if(key_sr2==1)//IO是高电平,说奣按键没有被按下这时要及时清零一些标志位

uiKeyTimeCnt2=0;//按键去抖动延时计数器清零,此行非常巧妙是我实战中摸索出来的。

if(key_sr3==1)//IO是高电平说明按鍵没有被按下,这时要及时清零一些标志位

uiKeyTimeCnt3=0;//按键去抖动延时计数器清零此行非常巧妙,是我实战中摸索出来的

if(key_sr4==1)//IO是高电平,说明按键没囿被按下这时要及时清零一些标志位

uiKeyTimeCnt4=0;//按键去抖动延时计数器清零,此行非常巧妙是我实战中摸索出来的。

case 1:// 改变跑马灯方向的按键 对应學习板的S1键

ucKeySec=0; //响应按键服务处理程序后按键编号清零,避免一致触发

ucKeySec=0; //响应按键服务处理程序后按键编号清零,避免一致触发

ucKeySec=0; //响应按键服務处理程序后按键编号清零,避免一致触发

else //启动和暂停两种状态循环切换

ucKeySec=0; //响应按键服务处理程序后按键编号清零,避免一致触发

ucLed_update=0; //及时清零让它产生只更新一次的效果,避免一直更新

//以下程序,如果加一些数组和移位的元素还可以压缩容量。但是鸿哥追求的不是容量而是清晰的讲解思路

hc595_st_dr=0; //ST引脚把两个寄存器的数据更新输出到74HC595的输出引脚上并且锁存起来

uiVoiceCnt--; //每次进入定时中断都自减1,直到等于零为止才停止鸣叫

beep_dr=0; //蜂鸣器是PNP三极管控制,低电平就开始鸣叫

; //此处多加一个空指令,想维持跟if括号语句的数量对称都是两条指令。不加也可以

beep_dr=1; //蜂鸣器是PNP三极管控制,高电平就停止鸣叫

; //一个分号相当于执行一条空语句

; //一个分号相当于执行一条空语句

* 矩阵键盘也可以做独立按键,湔提是把某一根公共输出线输出低电平

* 模拟独立按键的触发地,本程序中把key_gnd_dr输出低电平。

* 51学习板的S1就是本程序中用到的一个独立按键

key_gnd_dr=0; //模拟独立按键的地GND,因此必须一直输出低电平

beep_dr=1; //用PNP三极管控制蜂鸣器输出高电平时不叫。

我要回帖

更多关于 单片机按键加灯怎么编写 的文章

 

随机推荐