2018-12-06 18:20:23 h_5649512 阅读数 311
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3424 人正在学习 去看看 朱有鹏

单片机制作工具大汇总!!

单片机制作工具大汇总!!!这是一个神奇的帖子,我不会放很多的资料出来,我只放一个列表,大家需要哪个资料就回复告诉我,我再上传,然后先上传几个工具给大家玩玩:可以到闯客网技术论坛下载,下面是参与本次分享的选手,如果急需的话,可以到Q群q我:813238832
单片机工具下载:https://bbs.usoftchina.com/thread-206209-1-1.html
LC谐振频率计算器.rar (4.63 KB
LCD图形生成.rar (256.3 KB
LCD防真器.zip (261.05 KB
commix.rar (188.21 KB
comdebug.rar (155.62 KB
ComAssistant.rar (197.66 KB
BMP生成PCB格式软件.rar (489.13 KB
BMPtoPCB.rar (110.1 KB
Bin_Hex.rar (204.8 KB
AvrCalc_eehome.rar (20.49 KB
AT89ISP.rar (1.1 MB
Afilter.rar (215.75 KB
1616汉字取模.rar (208.74 KB
890LC谐振回路计算.rar (4.63 KB
875电流源在线计算器离线网页.rar (4.45 KB
750定时器计算器.rar (4.72 KB
645规约调试助手.rar (395.08 KB
645规约调试助手.rar (395.08 KB
555设计.rar (368.3 KB
51单片机反反汇编器.rar (247.68 KB
51单片机定时器初值计算器.rar (6.79 KB
51单片机串行口初值计算器.rar (10.13 KB
51波特率初值设定.rar (175.71 KB
51波特率初值计算.rar (179.05 KB
51Hex_Bin.rar (213.9 KB
16.16LED点阵字库软件.rar (27.03 KB
8X8点阵取模软件.rar (10.1 KB
8.8LED点阵字库软件.rar (75.94 KB
LCD防真器.zip (261.05 KB
LC谐振频率计算器.rar (4.63 KB
LC谐振频率计算器V1.20.rar (5.45 KB
LED代码提取.rar (3.64 KB
LED段码提取.rar (183.48 KB
LED数码管字形码发生器.rar (10.2 KB
LM317计算.rar (803.42 KB
lm317设计工具.rar (178.81 KB
mcutool.rar (431.93 KB
MuCodeISP-0.18.rar (46.26 KB
p_hcs301enc.rar (174.29 KB
PCB特性阻抗计算工具软件TXLine.rar (411.31 KB
progisp167.rar (1.11 MB
Protel 99 SE 鼠标增强软件 V3[1][1].0.rar (542.53 KB
usbDebug V1[1].rar (106.26 KB
USBISP下载线资料.rar (1.46 MB
变压器计算.rar (1.07 MB
变压器设计软件.rar (1.65 MB
超级单片机工具.rar (433.5 KB
串口助手.rar (392.58 KB
单片机设计助理 V2[1].4 破解版.rar (1.38 MB
单片机小精灵.zip (688.79 KB
单片机延时计算小程序.rar (8.21 KB
单片机正弦波数据生成器.rar (1.14 MB
单片机正弦波数据生成器.rar (1.14 MB
点整取模小工具.rar (658.92 KB
点整取模小工具.zip (772.86 KB
电感量计算.rar (69.87 KB
电容单片转换CCT.rar (96.51 KB
电阻并联计数器.rar (16.34 KB
洞洞板板上画PCB的专业工具.rar (581.04 KB
更好用的1616汉字取模.rar (164.29 KB
工程单位转换.rar (74.34 KB
汉字生成器(软件).rar (254.06 KB
画流程图.rar (686.91 KB
汇编语言程序库.rar (447.97 KB
计算器.rar (173.1 KB
进制转换.rar (6.07 KB
空心线圈电感量的计算.rar (166.58 KB
取字模软件.rar (1.38 MB
熔丝位软件.rar (45.78 KB
软件延迟时间计算分析.rar (63.3 KB
色环电阻识别程序.rar (75.79 KB
声谱分析器–(50K)很精巧的程序.zip (1.27 MB
实用计算器.rar (69.14 KB
示波器.rar (1.16 MB
数制转换小程序.rar (213.32 KB
衰减器计算器.rar (7.56 KB
炜煌串口调试软件.rar (13.83 KB
显示器测试软件NokiaMonitorTest.rar (325.31 KB
小精灵电气计算.rar (84.56 KB
晓刚电阻值计算.rar (687.88 KB
虚拟示波器.rar (60.85 KB
液晶字模生成程序2.0.rar (209.64 KB
液晶字模提取软件.rar (385.89 KB
一种实用线圈参数计算软件.rar (69.92 KB
音乐代码转换.rar (211.06 KB
在protel99se软件PCB里面放汉字的实现.rar (1.31 MB
正弦波数据生成器(正弦波表).rar (37.53 KB
中断延迟时间…rar (18.42 KB
终极串口调试软件.rar (74.23 KB
专业工具.rar (259.09 KB
字模提取.rar (240.75 KB
字模提取V2.2.rar

再给你们附送点资料:

在这里插入图片描述

2017-07-25 12:53:30 wangwangpengpeng 阅读数 39743
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3424 人正在学习 去看看 朱有鹏
利用51单片机制作一个秒表的详细过程

前面的话:

和很多朋友一样,在学51单片机的过程中我们肯定会涉及到制作一个秒表,牵涉到把单片机的多个部分组合起来使用,这对于我们初学者来说可能显得有些困难,我同大家一样,百思不得其解,最后头都弄大了才把这个秒表制作出来,为了给以后的朋友们一些思路,一些参考,所以在这里我把自己制作的整个详细过程整理出来供大家参考。我调试出来是没有问题的,各方面都稳定运行,由于我水平有限,中间可能会有不对的地方,欢迎大家指正,我们一起学习,一起进步!

我将分为三个部分来介绍:1.整体思路,2.硬件电路方面,3.软件编程方面。


1.整体思路

利用51单片机制作秒表时,我介绍精确到十分位(即0.1s)的制作,并让其拥有启动,暂停,复位三个功能。
用到的单片机部分:定时器部分,独立按键的检测与应用,数码管的显示,并结合一些简单的程序即可实现。
用5位数码管来进行显示,分别显示秒的十分位,秒的个位,秒的十位,分的个位,分的十位。用定时器定时50ms,2个定时器中断即是0.1s,即秒的十分位,20个定时器中断即是1s,60个1s即是1分钟,通过程序将5位数码管的值分离出来,并进行显示。这就是我在数码管显示方面的思路,如果不是太清楚,结合我下面软件编程方面的程序来看你可能就会明白,我会在那部分做详细介绍,看完了可能你就懂了。
利用独立按键设置启动/暂停键和清零键,利用独立按键的检测,若启动/暂停按键按下,秒表则启动或者暂停,按下复位键,秒表清零复位。我在程序后面全都有注释,不用担心。看完你就会明白了。
这是我制作的的流程图:




“ms100”表示秒的十分位,"s"表示秒的个位,“s1”表示秒的十位,“min”表示分的个位,“min1”表示分的十位。
“cnt”表示秒的计数位,即多少个一秒,定时满一秒加1,“minu”表示分的计数位,即多少个一分钟,一分钟加1,
这个流程图提供了大致思路,要结合下面的程序部分一起看。可能有些简陋,请多多包涵!


看起来是不是好简单?有木有?请继续往下看。

2.硬件电路方面

每个人的硬件可能都不一样,(哪些控制数码管的位选,哪些控制数码管的段选,哪些控制独立按键等等),大家在自己制作过程中都要仔细考虑,我在这里就用我自己的硬件进行介绍。

这是我的数码管的电路图:(将J12用杜邦线接到对应的P0口,将J16用杜邦线接到对应的P1口)


位选端我用P1口控制,段选端我用P0口控制。在图中我已标明秒的个位s,秒的十位s1,分的个位min,分的十位min1所对应的数码管。该数码管是共阴极。
秒的十分位我用的是另一个共阳数码管。我用P3口控制该数码管的段选,其图如下:



而独立按键我用的P2^7控制“启动/暂停键”,P2^6控制复位键:电路图如下:(将JP5通过杜邦线接到P3口)

硬件电路基本上就是这些,由于分和秒之间要用小数点分隔开,所以分的个位对应的数码管的段码要用带小数点的段码,其余的数码管则不用。

硬件方面是为看懂软件程序做准备,下面我们就开始我们的软件程序方面吧!  

3.软件程序方面


#include <REGX51.H>
#define uchar unsigned char
#define uint unsigned int

#define PIN0 P0  //数码管段选端
#define PIN1 P1  //数码管位选端
#define PIN3 P3	 //十分位数码管的段码端
sbit start=P2^7;  //启动/暂停按钮
sbit reset=P2^6;  //复位按钮
uint cnt=0;   //1s的次数的计数值
uint num=0;     //进入中断次数的计数值(一次50ms)
uint num1=0;		//0.1s的次数的计数值
uchar code table[]={0x3f,0x06,0x5b,
0x4f,0x66,0x6d,0x7d,0x07, 0x7f,0x6f};
//不带小数点的共阴极数码管段码0-9
uchar code table1[]={0xbf,0x86,
0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef};
//带小数点的共阴极数码管段码0-9

char code table2[]={0xc0,0xf9,0xa4,
0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//不带小数点的共阳极数码管段码0-9

void Display(uint w,uint a,uint b,uint c,uint d);  //声明显示函数
void InitTimer0();  //声明定时器初始化函数
void Delayms(uint x);  //声明延时函数

void main()
{
	uint ms100=0;	//秒的十分位
	uint s,s1,min,min1,minu=0; 
	//依次是秒的个位,秒的十位,分的个位,分的十位
	InitTimer0();	  //初始化定时器
	while(1)			//进入死循环
{	
	if(start==0)   //检测启动/暂停键是否按下
			Delayms(20); //延时消抖
	{
		if(start==0)  //消抖之后再次检测
		{
			TR0=!TR0;		//定时器的控制位取反
			while(!start);  //等待按键释放
		}
	}
	
if(reset==0)  //检测复位键是否按下
{
	Delayms(20);	//延时消抖
	if(reset==0)  	//消抖之后再次检测
	{
		num=0;		
		num1=0;		//进入中断次数值清0
		ms100=0;	//十分位的计数值清0
		cnt=0;		//秒的计数值清0
		minu=0;		//分的计数值清0
		while(!reset);		 //等待按键释放
	}
}
	if(num1>=2)		//检测是否达到0.1s,(两个50ms)
	{
		num1=0;  		//进入中断次数值清零
		ms100++;		//秒的十分位的计数值加1
		if(ms100>=10)  //若秒的十分位计数值达到10
		{
			ms100=0;  //清零秒的十分位的计数值
			num1=0;	//进入中断次数值置0
		}
	}
	
	if(num>=20)  //判断计时时间是否达到1s(20个50ms)
	{
		num=0;     //进入中断次数值置0
		cnt++;		 //秒的计数值加1
		if(cnt>=60) //判断是否达到60s
	{
		cnt=0;		//若达到60s,将秒的计数值置零
		minu++;			//分的计数值加1
		if(minu>=60)  //判断是否达到60分钟,一般秒表是用不到60分的,这是为了程序的严谨性

		{
			TR0=!TR0;			//达到60分钟则关闭定时器并清零所有的计数值
			num1=0;				
			num=0;
			ms100=0;
			cnt=0;		
			minu=0;
			
		}
	}
	}	
	s=cnt%10;  	//从秒的计数值里面分离秒的个位
	s1=cnt/10; 	//从秒的计数值里面分离秒的十位
	min=minu%10;	//从分的计数值里面分离分的个位
	min1=minu/10;	//从分的计数值里面分离分的十位
	
	Display(ms100,s,s1,min,min1);  //显示这5个数
}	
}

void InitTimer0() //定时器初始化函数
{
	
	TMOD=0x01; //选择定时器0的工作方式1
	TH0=(65536-45872)/256;  //装初值(定时50ms),晶振11.0592MHz
	TL0=(65536-45872)%256;
	EA=1;		//打开总中断
	ET0=1;	//打开定时器中断
	TR0=0;	//先不要启动定时器
	
}

void TIMER0()  interrupt 1  //定时器中断服务函数
{
	TH0=(65536-45872)/256;  //重装初值
	TL0=(65536-45872)%256;
	num++;		//让进入中断次数值加1,用于判断是否达到1s
	num1++;		//让进入中断次数值加1,用于判断是否达到0.1s
}

void Delayms(uint x)   //延时xms
{
	uint i,j;
	for(i=x;i>0;i--)
		for(j=110;j>0;j--);
}

void Display(uint w,uint a,uint b,uint c,uint d) //定义显示函数
{
	PIN3=table2[w];		//秒的十分位的段选
	Delayms(5);
	
	PIN0=table[a]; //秒的个位的段选
	PIN1=0x7f;		 //秒的个位的位选
	Delayms(5);			
	
	PIN0=table[b];  //秒的十位的段选
	PIN1=0xbf;			//秒的十位的位选
	Delayms(5);
	
	PIN0=table1[c];  //分的个位的段选(带小数点)
	PIN1=0xdf;			 //分的个位的位选
	Delayms(5);
		
	PIN0=table[d];		//分的十位的段选
	PIN1=0xef;				//分的十位的位选
	Delayms(5);		
		
}

由于在打字时可能不小心会弄错一丁点程序,我都是一个字母一个字母手打的,所以请大家理解思路即可,根据这个思路自己去写,这样得到的知识才是属于自己的。毕竟 “读别人的故事,悟自己的人生”。
下面来几张实物图给大家看一下我这个秒表的实际效果。

编译结果:





烧写进单片机的效果:(没有按启动按钮之前)






按了启动按钮之后,秒表将会自动开始计时,由于无法演示动态过程,只能在中间按下暂停键给大家看看效果:











按下复位键后:



由于我用的是一个比较完整的51开发板,所以里面有很多部分,大家只需要注意观察数码管部分就好。
下面再来一个完整的图:





结束语

至此,利用51单片机制作的秒表就已经完成了!若是文章中有什么不懂的地方或者是自己在制作过程中遇到什么问题都可以联系我,或者给我留言,我一定竭尽全力帮助大家!我们一起学习,一起进步!希望大家都能在看完这篇文章后自己动手成功制作出一个秒表,祝愿大家学好单片机!当然,由于自身水平有限,文章中肯定会存在错误或者是考虑不周的的地方,恳请不吝赐教!谢谢大家!

(PS:我写了一整天了,反复的看,反复的改,现在头昏眼花,但是只要能对大家有所帮助,一切都是值得的。)




2017-12-02 20:40:42 non_mainstream 阅读数 615
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3424 人正在学习 去看看 朱有鹏

        51单片机制作计算机,我利用的是矩阵键盘和1602.  

在这个过程中难度较大的是PCB的制作。遇到了许多问题,布线规则,先款,孔径大小等等

在写程序的过程中难度较大的还是如何将键盘扫描与运算程序连接起来。。。。

在这个过程中还是学到了很多,对键盘扫描函数更加的熟练,对51单片机如何实现部分c语言

功能有一定的了解。


2016-09-23 13:09:09 qq_33869658 阅读数 56210
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3424 人正在学习 去看看 朱有鹏

        这是我大二做某实验室管理员,为了方便自己管理整理,都是一些51单片机的小作品,适合给刚学完51单片机的新手练手!

一目录

1基于51单片机的火灾温度烟雾报警器

2基于51单片机的声光电子琴

3基于51单片机的音乐喷泉

4基于51单片机的智能温控风扇

5基于51单片机的超声波测距

6基于51单片机的无线温湿度控制系统设计

7基于51单片机脉搏心率计

8.基于51单片机led音乐频谱

9.基于51单片机的智能充电器

10.基于51单片机的贪吃蛇游戏

11.基于51单片机的电子秤

12.基于51单片机的视力保护器

13.基于51单片机防人水位检测报警系统

14.基于51单片机的声光控制器设计

15.基于51单片机的红外计数器

16.基于51单片机的自行车码表设计

17.基于51单片机的计算器的设计

18.基于51单片机的酒精浓度测试仪设计

19.基于51单片机的智能台灯设计

20.基于51单片机的卫星定位

21.基于51单片机防尘PM2.5灰尘设计

22.基于51单片机的无线音乐门铃

23基于51单片机的短信收发控制器

24.基于51单片机的智能插座定时开关设计

25.基于51单片机的4*4*4单片机的光立方设计


二.作品参考图

1基于51单片机的火灾温度烟雾报警器



2基于51单片机的声光电子琴



3基于51单片机的音乐喷泉



4基于51单片机的智能温控风扇



5基于51单片机的超声波测距



6基于51单片机的无线温湿度控制系统设计


7基于51单片机脉搏心率计


8.基于51单片机led音乐频谱


9.基于51单片机的智能充电器


10.基于51单片机的贪吃蛇游戏


11.基于51单片机的电子秤


12.基于51单片机的视力保护器


13.基于51单片机防人水位检测报警系统


14.基于51单片机的声光控制器设计


15.基于51单片机的红外计数器


16.基于51单片机的自行车码表设计


17.基于51单片机的计算器的设计


18.基于51单片机的酒精浓度测试仪设计


19.基于51单片机的智能台灯设计


20.基于51单片机的卫星定位


21.基于51单片机防尘PM2.5灰尘设计


22.基于51单片机的无线音乐门铃


23基于51单片机的短信收发控制器



24.基于51单片机的智能插座定时开关设计



25.基于51单片机的4*4*4单片机的光立方设计












2019-02-19 20:16:18 qq_41676952 阅读数 2372
  • 51单片机综合小项目-第2季第4部分

    本课程是《朱有鹏老师单片机完全学习系列课程》第2季第4个课程,也是51单片机学完之后的一个综合小项目,该项目运用了开发板上大多数外设设备,并将之结合起来实现了一个时间、温度显示以及报警功能、时间调整功能等单片机控制常见的功能,有一定代码量,需要一定调试技巧和编程能力来完成,对大家是个很好的总结和锻炼,并且能拓展项目经验。

    3424 人正在学习 去看看 朱有鹏

基于51单片机的无线遥控器制作

资源链接:https://download.csdn.net/download/qq_41676952/10965512
目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。小到电话,玩具,手机,各类刷卡机,电脑键盘,彩电,冰箱,空调,电磁炉,大到汽车,工业自动控制,机器人,导弹导航装置,甚至是美国的火星车,这些设备里面都含有一个或者多个单片机 。单片机的数量不仅远超过PC机,甚至比人类的数量还要多。因此,单片机的学习、开发与应用将造就一大批软硬件工程师。
单片机是一种控制芯片,一个微型的计算机,加上晶振,存储器,地址锁存器,逻辑门,显示器,按钮,扩展芯片,接口等构成单片机系统
本文用最简单最基础的51单片机向读者展示制作无限遥控器的制作。51单片机内部具有一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信;
本文就是利用51单片机内部UART功能和蓝牙模块实现单片机之间的无限遥控;主要通过编程用于控制其他单片机或微机系统;例如可以用来遥控另外一款单片机控制的模型车的运动(遥控车);控制单片机开发板上LED灯的亮灭等;
准备过程
知识上:会简单的C语言,知道51单片机的基本结构即可。
材料:51单片机(STC89C52),蓝牙模块,洞洞板,焊锡丝,电池,导线,按键开关,铜柱,电容电阻,晶振
工具:电烙铁,镊子
在这里插入图片描述

原理图:分为三个部分,分别为电源模块,蓝牙模块,MCU系统控制模块;
电源模块:为整个系统提供电能
蓝牙模块:实现无线化传输信号
MCU系统控制模块:实现整个系统的控制
在这里插入图片描述

制作过程:
首先是最小系统的制作:
在这里插入图片描述
在这里插入图片描述

然后就是按键的焊接,
在这里插入图片描述
在这里插入图片描述
接着将以上两部分连接
在这里插入图片描述
在这里插入图片描述
接着是电源模块:由两块3.8V电池串联而成,再经过稳压电路将其转化为5V,为整个系统供电;

在这里插入图片描述

插上蓝牙模块, 制作完成在这里插入图片描述
使用说明:按下左边四个接受方会分别接收到字符 ’1’ ’2’ ’3’ ’4’ , 按下右边四个接受方会分别接收到字符 ’5’ ’6’ ’7’ ’8’ ,
测试:用蓝牙串口助手连接遥控器上的蓝牙,通过按下不同的按键,手机会接收到不同的字符
在这里插入图片描述
在这里插入图片描述
资源链接:https://download.csdn.net/download/qq_41676952/10965512

没有更多推荐了,返回首页