用c语言编程三个按键对应点亮三个LED灯的程序,AT89S52单片机,最好有原理图,谢谢。急求

如题所述

  这个也求?用按键点亮LED灯这个是51入门最基础的东西,真心想学的话,买块51的开发板,都带有例程,很快就可以入门的。建议你还是多看看资料把基础的东西学好。推荐你看一下《十天学会单片机和C语言编程》的视频教程对入门还是不错的。
  三路抢答器提供你编程思路(按键扫描方式)参考,程序还是要根据你的硬件电路自己编写。

  端口配置:
  1、选择4个端口作为输入端口连接按键(独立按键,按键一端接单片机端口,另一端接地)。 三路为抢答的按键KEY1、KEY2、KEY3,一路为抢答后复位按键KEY0。
  2、选择3个端口作为输出端口连接LED灯(高电平点亮还是低电平点亮要看你电路设计)对应为LED1、LED2、LED3。
  编程思路:
  1、初始设置一个抢答键按下与否的位标志变量:bit flag = 0;(没有抢答按键按下flag = 0,有抢答按键按下flag = 1)。
  2、主程序按键扫描循环。
  3、按键按下程序KEY1、KEY2、KEY3基本相同。以KEY1为列:
  首先判断是否有抢答键按下(KEY1==0),如有抢答按键按下,延时10ms(消抖),再判断是否KEY1==0,如果KEY1==0说明KEY1抢答按键已经按下,然后再判断是否flag = =0,如果flag = =0,则点亮LED1(其他按键按下的话点亮相应的LED灯)、按键按下标志置“1”(flag = 1)。
  4、复位按键程序判断KEY0按下并且flag = =1时,关闭所有LED灯、按键按下标志复位置“0”(flag = 0)。追问

是不是我给你我的51单片机台子你就能帮我编写程序啊,可不可以帮帮忙?是89s52的工作台子

追答

  51的东西基本都收拾起来了,有段时间没玩了。我提供的思路基本和编程差不多了,这个程序很简单的,你可以先试着编程一下,有问题我可以帮你看看程序。按以上编程可以实现抢答器的基本功能,但可能还会存在问题(比如抢答开始键还没按下,就有人按下抢答按键该怎么解决等等)这都需要你在编程的过程中不断完善,希望你按以上思路自己先做出来,然后再分析完善。
  编程就是要先按思路流程编制出来,然后看哪里可能存在问题,再把程序不断优化,自己解决了问题才有乐趣。
  祝你学习愉快!喜欢玩单片机的话,先把51学好了,建议你再去学习一下STM32,这个比51强大很多。

追问

只是自己写程序有点无从下手的感觉

只是自己写程序有点无从下手的感觉

追答

  最基础的东西都还没有掌握,怎么编制程序?别人的程序也只能作为参考,移植过来还要结合自己的硬件电路来修改。按你要实现的项目有目标的学习,仅学习项目所涉及的内容,学习起来很快的。学习还是要循序渐进的,只有掌握了基础知识,才能灵活运用。
  学习单片机最好的方法就是,按列程自己一步一步编程上开发板实验,从点亮第一个LED灯开始。

追问

灯已经可以了。只不过老师布下任务忽然做按钮。有点蒙

追答

具体任务?完成时间?

追问

1三个按键代替三个抢答器,2序号1抢答成功,led第一位灯亮。3复位后重新亮灯。
要求
硬件连接原理图,
程序设计流程图,
。其实就是简单的三个按钮,控制三个灯,只是程序不知该怎么写

最好今天晚上,明天用

追答

硬件搭建好了没?如果搭建好了,可以帮你写个程序,你自己要调试一下,我51开发板都收拾起来了,没法上机验证,不过程序简单,应该不会有什么大问题。

追问

我才学了一个星期。勉强看得懂硬件原理图。怎么可能会自己搭建啊。要不算了吧。

追答

  呵呵,别灰心,单片机其实很简单的。真心想学51的话(不是仅仅为了完成任务),留个QQ,一步一步教你做。

追问

好啊,319852529我的,以后有问题就要麻烦你了哦。

追答

已加你 Q,有问题的话可以和我联系。为提高你学习单片机兴趣,还是按你任务写了个代码供你学习参考,希望对你有所帮助(不要简单的复制、粘贴,把程序读懂才是收获)。程序都写上来,超出了回复的字数要求,故代码分为两部分上传。

第一部分:

/*********************************************************************************
任务要求:
1、三个按键代替三个抢答器,
2、序号1抢答成功,led第一位灯亮。
3、复位后重新亮灯。
任务实现:
设置抢答键按下与否标志为flag,初始化为flag=0,开始抢答。
如果有抢答键按下,则点亮对应的LED灯,并 抢答键按下与否标志位置1,flag=1,其他
按键再按下无效。
按复位、开始抢答按键,关闭所有LED灯,flag=0,开始抢答。

注:此程序可以满足任务要求,但要作为抢答器使用还需完善。帮你编写此程序不是为了
应付任务,希望以此提升学习单片机的兴趣。

说明:
晶振为12M,如选用其他晶振,要调整一下延时函数(你这个任务不调整问题也不大)。
你可以根据我这个接口定义连线,或者结合你的连线,修改一下端口就可以了。
比如sbit  LED1 = P0^0; 如果你连接的P3的4口就改写成sbit  LED1 = P3^4;
此程序为LED低电平点亮,即LED1=0点亮、LED1=1熄灭。如果你的实验室开发系统为
高电平点亮则修改为 LED1=1点亮、LED1=0熄灭就可以了
我的电脑没装支持51单片机编译器,故只是根据任务需要编程。需要你上Keil编译一下。
看是否可以通过编译。

重要提醒:
交任务时,删除以上注释。
*********************************************************************************/

温馨提示:内容为网友见解,仅供参考
第1个回答  2014-03-24
你可以用三个独立按键分别控制三个led灯,就可以呀,只要你会编写一个灯的,那就会三个灯的追问

刚开始学。程序有点不明白。你能发一下那个程序吗

追答

这个不是一句二句能说明白的,

追问

那三路抢答器的C语言源程序呢?

用c语言编程三个按键对应点亮三个LED灯的程序,AT89S52单片机,最好...
1、选择4个端口作为输入端口连接按键(独立按键,按键一端接单片机端口,另一端接地)。 三路为抢答的按键KEY1、KEY2、KEY3,一路为抢答后复位按键KEY0。2、选择3个端口作为输出端口连接LED灯(高电平点亮还是低电平点亮要看你电路设计)对应为LED1、LED2、LED3。编程思路:1、初始设置一个抢答键...

求AT89S52单片机原理图,谢谢。
PORT2(P2.0-P2.7): 端口2是具有内部提升电路的双向I\/O端口,每一个引脚可以推动4个LS的TTL负载,若将端口2的输出设为高电平时,此端口便能当成输入端口来使用。P2除了当做一般I\/O端日使用外,若是在AT89S52扩充外接程序存储器或数据存储器时,也提供地址总线的高字节A8\/ A15,这个时候P2便不能当做...

如何用单片机AT89S52控制直流电机最好有实际电路图和程序
通过按键的输入,对控制器发出指令,由此来输出电机的启停、正反转、以及加减速和LED的显示。

用AT89S52做个百分钟倒计时,同时也有个时间显示。 求C程序和原理...
建议时序:定时->片选无效->总线换数据->下一个片选->等待下一次定时调用。有源蜂鸣器 一个口,用三极管或不用,拉一下就叫,时间自己控制。NRF无线收发模块 接口c代码应该找得到,借由调用接口代码可以得到有效键值 键值处理是事关全局的调度问题。也是整个程序最有表现力,最可以DIY的地方了。如果连...

...程序(用来控制3个红、绿、蓝LED灯,让这3个LED灯产生均色变化)_百 ...
1、程序实现上应该不难,假设用3个8位变量来调节这三个灯,理想上可以得到256单色灰度效果。但通常能做到16等级灰度,也能看到一定效果。2、这三个PWM周期相同,占空比不同,亮度就各有不同。3、确保单片机管脚输出1时(100%,或单独调节满刻度),三个LED灯的驱动电流均达到饱和。并且合成色为白色。

单片机实验点亮流水灯程序从第三个灯开始循环点亮 一个共有8个灯哦
at89s52也是51系列的单片机,程序完全兼容,用51的程序就行了,包括外围电路也一样,直接用就行了。单灯亮就是在io口输出一个二进制数中只有一位不同的数,比如说“00000001”,就只有最后一位是“1”,其余的都是“0”,要双灯亮就使其中的两位与其他的不同就行了,还是那上面的例子来说,现在...

关于at89s52单片机,组成最小系统,有三个问题:1、reset必须接么,为什...
1、reset必须接么,为什么 是的,reset的过程比较复杂,可以确定的是,如果不reset,单片机是不工作的 2、ea口必须接么,为什么 EA是外部程序存储器的使能信号,高电平是使用片内的rom,低电平使用片外的rom,EA在单片机内部有弱上拉的,所以如果不使用片外ROM是可以悬空不接的,建议还是拉高或拉低 3...

基于单片机at89s52的课设C语言编程可以用单片机stc12c5608实现不?急...
现在网上有很多用51做的数控电源了,大部分都是PWM调制 只要有ADC功能 PWM功能的单片机都可以做 这篇文章可以参考一下,用的跟你的单片机型号差不多的,也是STC。http:\/\/www.eeworld.com.cn\/mcu\/2013\/0206\/article_12059_2.html

AT89S52单片机内设有四个并行的I\/O,使用时有哪些特点和分工
AT89S52 是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程 AT89S52引脚图 DIP封装 Flash 存储器。使用Atmel 公司高密度非 易失性存储器技术制造,与工业80C51 产品指令和引脚完 全兼容。片上Flash允许程序存储器在系统可编程,亦适于 常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在...

单片机AT89S52点亮2个并联的发光二极管要多大的限流电阻?(单片机引脚接...
红色发光二极管导通电压约是1.8伏,电阻应分压3.2伏,两个并联的发光二极管如果负极接在P0.0口上,26毫安除以8个I\/O口,每个I\/O口是3.25毫安,按3毫安算,3.2伏除以3毫安就是1066欧姆约1K。两个发光二极管并联后每个只能得到1.5毫安。亮度非常小啊!这还是用的P0口,P1、P2、P3口就更不用...

相似回答