8位单片机的按键程序
要实现一个实用C语言的8位单片机按键程序,首先需要了解8051单片机的基本结构和工作原理。以下是一个简单的示例代码,用于检测按键输入并控制LED灯的亮灭。
```c
#include <reg52.h> // 包含头文件,定义了8051单片机的寄存器
sbit LED = P1^0; // 定义LED灯连接的端口和引脚
sbit KEY = P3^2; // 定义按键连接的端口和引脚
void delay(unsigned int xms) // 延时函数
{
unsigned int i, j;
for (i = xms; i > 0; i--)
for (j = 112; j > 0; j--);
}
void main() // 主函数
{
while (1) // 无限循环
{
if (KEY == 0) // 检测按键是否按下
{
delay(10); // 延时消抖
if (KEY == 0)
{
LED = ~LED; // 控制LED灯的亮灭
while (!KEY); // 等待按键释放
}
}
}
}
```
以上代码实现了一个简单的按键控制LED灯的程序。当按键被按下时,LED灯的状态会发生改变。注意,这个程序是基于8051单片机的,如果你使用的是其他类型的单片机,可能需要进行相应的修改。
想从事单片机工作,C语言要达到什么水平?
今天我来聊聊从事单片机开发工作,C语言要达到什么样的水平。
我用自己从入门到找到工作的经历来说或许更贴切点。
我是2011年毕业,非本专业,读的是电气工程,看到师兄那苦逼样决定转行。
实习期比较自由,我就开始自学,从入门到转行成功,前后花了4个月左右。
刚开始,我也很焦虑….
自己能不能学得会?学到什么程度能去找工作?
万一花了几个月时间学习,找不到工作怎么办?
过程虽然很曲折,不过最终还是转行成功了,还记录当时学习的一些笔记。
只要你肯坚持下去,有兵来将挡,水来土掩的魄力,结果都不会太差 。
最怕就是你碰到问题就退缩,就质疑,这样还不如别开始。
我是从51单片机开始学习的,在某宝上买了一块51单片机开发板。
开发板一般都有配套视频教程,跟着教程一步步走就可以。
我是基础电路、C语言、51单片机一起学得,一边学一边在开发板上看功能效果。
技术学习过程太枯燥了,如果得不到及时的成果反馈,很难坚持下去。
我建议大家也一定要这样去学习。
学完开发板的所有内容,每天坚持学几个小时,大概需要1个多月的时间。
这个时候你会碰到一个瓶颈期,就是单片机每个外设资源都会用了,但是还是无法独立完成一个项目的代码。
这是正常的,因为开发板的定位是让你学习单片机这个工具怎么用而已。
那个时候我只是把开发板都学完了,然后在开发板上做了电子时钟的功能就去找工作了。
前前后后差不多给20家公司拒绝过,那年找工作都是到人才市场,当场面试的。
他们主要拒绝我的还是没有项目经验,其次就是学历、非本专业。
后面,我又在某宝上买了智能小车的套件,自己组装把这个项目重头到位做了一遍。
明显感觉自己的能力提升了,比如说实现功能的思路,和编程水平。
最重要的是多了一个可以吹的项目。
后面再去面试,总共面试了5家公司都不到就成功了。
但是我的经历放在现在,可能比较难。
主要现在优秀的学生太多了,我们无际单片机编程挺多学员都是大学生,最小的大一都有。
大一就有学习的意识,如果你的知识水平还保留10年前的,肯定不行。
单片机开发这个职位,不是说非要你c语言达到一个高级的水平,一般你能修改别人的代码也可以。
刚进去公司也不会让你马上研发新项目,而是维护老项目,改改代码升级功能。
所以,我认为啊,你c语言水平能达到改别人代码水平,暂时也就够了。
主要还是要多做项目,做它3-5个项目,把单片机常用的外设都能应用到实际场景了,一般的产品你也能独立做出来了。
光靠书本和教程的内容,你c语言的水平想提升到高级是很难的。
我是怎么提升的?
从工作中,多看老工程师写的代码,多看一些权威的固件库、协议栈。
前期先模仿他们的写法,比如说他们的按键检测功能怎么写,LCD菜单怎么写。
模仿的时候,思考一下他们这样写有什么优势,有什么不好的地方?
从实际项目中来,到实际项目中去,反复实践。
慢慢地,你对编程的思维和经验都会有一个质的飞越。
我也是这样过来的,自己在19年还录制了一个程序架构的视频,算是对自己的一个总结。
这个架构可以直接移植到产品使用,继承了很多常用的功能,比如说任务管理,队列、LED特效、按键检测。
目前也是开源,找无际单片机编程拿就行,全网同名的。
到某个阶段,你或许就能感悟,任何编程语言都是工具而已。
最核心的还是去实现某种功能的思维是否最优。
相关问答
单片机 一键长按与短按 按键 实现的 c程序 有问题,实在不知道是哪里有问题,请帮助修改一下,谢谢?这……也太乱了吧?你能从这一大堆的逻辑中理出头绪来,我真佩服死你了。你这长按一处理,后面短按马上也生效了,长按跟没有一样。既然都用上定时器了,就别del...
肿么把 c 语言 程序 烧进 单片机 -ZOL问答1、把C语言编译为编程器支持的语言格式,比如常用的bin,或hex等格式。2、如果是可在线编程的,可以用ISP直接进行烧录。3、如果不是可在线编程的,将单片机芯片...
通过 按键 来控制 单片机 的制冷和加热?通过按键来控制单片机可实现LCD1602显示当前温度,可通过按键设置温度上下限温度超过限值制冷或制热,并通过蜂鸣器。报警STC89C52单片机为核心控制器,加上其...
单片机c程序 里,1代表高电平还是低电平-ZOL问答数字电路,0代表低电平,通常情况下是0伏,1代表高电平,正常是5V,也有的单片机的是3.3V供电的,所以不同的单片机代表的值不一样。有用(0)回复相关问题苹果5C和...
st89 c 52 单片机 抢答器 按键 功能?抢答器的按键功能是通过按压接通电路,提供输入脉冲。抢答器的按键功能是通过按压接通电路,提供输入脉冲。
at80 c 51怎么添加按钮 程序 ?第一步、先安装AT89C51单片机的开发工具软件,如KeilUV2第二步、在Keil中创建51单片机的工程,并编写相应的控制代码,之后生成HEX文件第三步、打开51单片机...
单片机 的 程序 中,为什么 按键 要去抖动?人手在按下按键的时候,由于抖动和按键触点的原因会产生多个上升沿和下降沿,导致单片机误认为按键受到了多次操作,所以要进行去抖处理,软件的处理方法一般是加...
基于51 单片机 的游戏 程序设计 1.基本功能实现如下游戏规则:(1)...[最佳回答]你的功能都可帮实现的
32 单片机按键 控制开关是什么原理?32单片机按键控制开关工作原理是按键是比较常用的也是比较简单的人机交互操作,按键实际上是一个非自锁的轻触开关,按下时触点会闭合,松开是触点断开。电路或...
用 C 语言写51 单片机 闹钟 程序 - 156****1626 的回答 - 懂得//*********************************************************//实现2113功能:本程序实现在P1口模拟一个流水5261灯程序//******...