51单片机编程步骤(51单片机编程)

:暂无数据 2026-08-06 01:50:08 :0

51单片机编程步骤(51单片机编程)

今天给各位分享51单片机编程的知识,其中也会对51单片机编程进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录

51单片机编程

51编程得看外部电路的连接情况。没有电路图,木有办法写。。。

  1. 数码管和单片机之间的电路有很多种,你这种就用译码器,74138就行。假设单片机p1口用作数码管输出。

  2. 滑槽电路也不清楚,假设一个电机,用的是P2^0,P2^1(顺时针一个口,逆时针一个口)

  3. 检测非金属物料的电路用的是P2^3

   4. 按键电路用的是P3口

代码就不贴了,说下思路。

开机初始化,给单片机所有引脚置零,然后设置数码管显示(2位十进制数显示至少需要7个引脚,你这里只需要用4个引脚)。

按键处理,编程中需要注意的地方就是机械开关的抖动消除,当然,如果有硬件消抖电路就不用管了。假设k1用的是P3^1口,那么只需要判断P3^1==1为真,就可以拉高P2^0或P2^1口电压,直接P2^0=1就ok。

检测非金属物电路:检测到一个非金属物料,此电路就给单片机P2^3发送一个脉冲信号。

单片机这边,主循环里检测P2^3口的电平,用一个变量oldState来保存上一个状态。用count来保存非金属物料个数

if(oldState!=P2^3){

    count++;

    oldState=P^3;

}

计数值满10后滑槽下降初始位:

if(count==10){

    P2^0==0;

    P2^1==1;

    count=0;

}

当然,如果电路还没做的话,我推荐一个电路,这个电路编程更简单,效率更高。

还是假设非金属检测电路一旦检测到非金属就发出一个脉冲信号。

将非金属检测电路同一个计数器(计数器可以买现成芯片,也可以自己用触发器做)的输入端连接。计数器同数码管通过译码器连接。

单片机P1口同计数器输出端连接。单片机同计数器清零端连接。

单片机同滑槽连接。

单片机同键盘连接。

这个电路就只需要读计数器的值,不用控制数码管。

单片机启动时向计数器清零端发出清零信号,那么数码管就显示00

单片机程序主循环判断计数器的值,若为10,那么向计数器清零端发出清零信号;控制滑槽下降。

单片机程序主循环判断键盘的值,若K1按下,控制滑槽上升。

简述c51程序开发流程

C51开发流程:
第一:必须对C51单片机内部外设和内部寄存器了解,因为写程序需要控制单片机内部寄存器,再去控制外设。
第二:设计单片机的硬件,单片机IO控制你的硬件
第三:画出流程图执行大概的框架
下面就是按照你的流程图去设计程序。

如何给51单片机编程

1.定义的变量不要太多。低128位为用户定义变量的存放区域(默认时),也可以把变量放在高128位,但容易出错,尽量少放,最好不放。通过M51可以查看内存变量的存放,最好不要超过110个字节,否则程序无法运行或出错。
2.如一个变量多处使用可定义为全局变量。例如循环变量i、j,尽量减少参数传递。
3.静态变量最好放在程序存储区,用code定义。
4.变量应定义为无符号数,像标志位等仅占一位的变量应定义为bit。
5.子程序在main()主程序之后的应事先声明,放在前面的不用声明。
6.变量、子程序定义但没使用,系统给出警告。
7.虽然局部变量和全局变量不同名,但运行时可能被全局变量改变。
8.程序在编译后,有可能产生非常大的文件。比如原来5k,编译后变成10k,这是C汇编时程序空间分配太随意造成的。可首先屏蔽一部分程序编译,然后再去屏蔽再编译,可恢复,或一部分一部分复制到另一个文件中编译。
9.如产生脉冲信号用到定时器,要去掉脉冲信号时,应先关定时器,再按要求把电平置为高电平或低电平。
10.可使用软件实现“看门狗”功能。比如:一个程序运行一个循环需要50ms,则定时器可定位100ms,当超过100ms时,程序将复位,在程序循环最下面都重装定时器或重置定时器参数。

c51编程开发步骤

第一步:新建工程

点击【project】----点击【newproject】

1、起名称,选择保存路径

2、选择单片机型号【Atmel】----【at89c51】

第二步:新建文件

点击【file】----点击【new】

1、起名称.c

2、选择保存路径

第三步:文件添加到工程

右击【sourcegroup1】----选择【addfilestogroup‘sourcegrpup1’】

第四步:设置工程属性

点击【project】----选择【optionsforgroup‘sourcegroup1’】

1、改写晶振的频率(根据电路板实际晶振的频率)【Target】----【Xtal】

2、选择产生hex文件【output】----【createhexfile】

第五步:编写程序

改变程序器界面的方法,点击【view】----选择【options】---

点击【colors&fonts】标签---选择【editorcfiles】

第六步:编译文件

点击【project】----选择【optionsRebuildalltargetfiles】

第七步:下载hex文件到单片机

1、打开烧录软件(STC-ISP软件)

2、选择单片机型号

3、选择要下载的hex文件

4、设置通信端口(comx)

5、点击【下载/编程】按钮


如果你还想了解更多这方面的信息,记得收藏关注本站。

51单片机编程步骤(51单片机编程)

本文编辑:admin

本文相关文章:


什么是51系列单片机 51系列单片机的意思是什么?51单片机红外循迹小车程序编程用什么软件

什么是51系列单片机 51系列单片机的意思是什么?51单片机红外循迹小车程序编程用什么软件

其实51单片机的问题并不复杂,但是又很多的朋友都不太了解什么是51系列单片机 51系列单片机的意思是什么,因此呢,今天小编就来为大家分享51单片机的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!

2026年9月8日 00:50

更多文章:


teammate(teammate,company,partner)

teammate(teammate,company,partner)

各位老铁们,大家好,今天由我来为大家分享teammate,以及teammate,company,partner的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧

2026年10月11日 06:10

javascript arraybuffer(javascript可以把base64编码转换成二进制代码吗求示例代码!)

javascript arraybuffer(javascript可以把base64编码转换成二进制代码吗求示例代码!)

其实javascript arraybuffer的问题并不复杂,但是又很多的朋友都不太了解javascript可以把base64编码转换成二进制代码吗求示例代码!,因此呢,今天小编就来为大家分享javascript arraybuffer的

2026年10月11日 04:00

text函数公式(excel中round和text函数的区别是什么)

text函数公式(excel中round和text函数的区别是什么)

“text函数公式”相关信息最新大全有哪些,这是大家都非常关心的,接下来就一起看看text函数公式(excel中round和text函数的区别是什么)!

2026年10月11日 03:50

pascal编程软件(介绍一下pascal语言!)

pascal编程软件(介绍一下pascal语言!)

大家好,如果您还对pascal编程软件不太了解,没有关系,今天就由本站为大家分享pascal编程软件的知识,包括介绍一下pascal语言!的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!

2026年10月11日 02:40

google chrome打不开(chrome浏览器打不开怎么回事 浏览器打不开的处理方法)

google chrome打不开(chrome浏览器打不开怎么回事 浏览器打不开的处理方法)

本篇文章给大家谈谈google chrome打不开,以及chrome浏览器打不开怎么回事 浏览器打不开的处理方法对应的知识点,文章可能有点长,但是希望大家可以阅读完,增长自己的知识,最重要的是希望对各位有所帮助,可以解决了您的问题,不要忘了

2026年10月11日 02:00

websocket整合springboot(Springboot整合Websocket遇到的坑)

websocket整合springboot(Springboot整合Websocket遇到的坑)

大家好,websocket整合springboot相信很多的网友都不是很明白,包括Springboot整合Websocket遇到的坑也是一样,不过没有关系,接下来就来为大家分享关于websocket整合springboot和Springbo

2026年10月11日 01:40

小米官方首爆miui14(miui14耗电严重官方回应)

小米官方首爆miui14(miui14耗电严重官方回应)

各位老铁们好,相信很多人对小米官方首爆miui14都不是特别的了解,因此呢,今天就来为大家分享下关于小米官方首爆miui14以及miui14耗电严重官方回应的问题知识,还望可以帮助大家,解决大家的一些困惑,下面一起来看看吧!

2026年10月11日 00:40

drawerlayout(android 怎样让drawerlayout设置的侧滑菜单的内容充满屏幕)

drawerlayout(android 怎样让drawerlayout设置的侧滑菜单的内容充满屏幕)

本篇文章给大家谈谈drawerlayout,以及android 怎样让drawerlayout设置的侧滑菜单的内容充满屏幕对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

2026年10月10日 19:20

xor四位数怎么运算(单片机怎样用C语言实现4个数字间的异或)

xor四位数怎么运算(单片机怎样用C语言实现4个数字间的异或)

大家好,今天小编来为大家解答以下的问题,关于xor四位数怎么运算,单片机怎样用C语言实现4个数字间的异或这个很多人还不知道,现在让我们一起来看看吧!

2026年10月10日 17:50

perl数组中最多的元素(用perl实现,得到一个数组中重复次数最多的元素)

perl数组中最多的元素(用perl实现,得到一个数组中重复次数最多的元素)

其实perl数组中最多的元素的问题并不复杂,但是又很多的朋友都不太了解用perl实现,得到一个数组中重复次数最多的元素,因此呢,今天小编就来为大家分享perl数组中最多的元素的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧

2026年10月10日 17:00

最近更新

frontpage的主要功能(frontpage是什么)
2026-10-11 08:40:18 浏览:0
ideapad15alc7能玩什么游戏(联想ideapad15可以玩刺客信条启示录吗)
2026-10-11 08:10:05 浏览:0
me是国内域名吗(me域名的概况)
2026-10-11 07:50:35 浏览:0
vivoiqoo9发布会(vivoiqoo9pro什么时候上市)
2026-10-11 07:20:22 浏览:0
热门文章

打印机m7400(m7400打印机清零方法)
2026-08-29 07:50:01 浏览:5
acrobat各版本区别(Acrobat XI Pro与 Acrobat PRO DC什么区别)
2026-08-29 22:30:20 浏览:2
联想y510p怎么升级(联想y510p换cpu)
2026-08-17 03:30:04 浏览:2
标签列表