caozhaokun的博客

回忆并且再度学习MCU51,力求完整与全面,留下一些东西,便于以后的思路整理和再观看,用自己的语言写出一些东西,易于记忆和思考

博客列表

【原创】基于单片机的DS18B20温度显示
发表于:2018-01-10 20:12:11 | 分类:默认
浏览( ) | 评论( )

DS18B20电路解析一:功能要求(1)DS18B20正确测量温度,小数点后保留一位;(2)数码管显示芯片测得的数据,然后每2秒一次,发送给串口;我还有几个问题:2:数据读 数据写 是否 低位在前3:精度调节,12bit 11bit 10bit 9bit5:读完暂存器可以不延时,直接读取 两个 8bit数据;6:presence的判定,需要在 等于0的区域才行,所以 大于60us后再判定7:我想用delayus(1),去掉 _nop_();_nop_();,晚上回来验证事实证明,delayus(1)是2

【原创】Keil软件之_测试_软件延时_
发表于:2015-08-12 13:57:09 | 分类:默认
浏览( ) | 评论( )

最近在写DS18B20的时序,时间延时成了一个问题,一直纠结如何知晓自己的延时时间?如何写出我要的延时?今天偶有所得,和大家一起分享;keil软件的调试技巧我就不介绍了,网上有这方面的资料,大家如果有兴趣,可以搜索一下。言归正传,我介绍两个快捷键 F11 和 F10 和 F5;F11:单步跟踪运行 如何理解呢?一步一步执行,不跳跃。 举个例子,如果main()函数里有delay()子函数,那么按F11,将会进入delay()函数里 逐步执行程序,直到delay()函数执行完毕,才会跳出来;F10:单步

2014-04-19 矩阵键盘--第三种方法
发表于:2015-04-27 23:13:07 | 分类:按键__Program
浏览( ) | 评论( )

/**********//矩阵按键,第三种方法juzhen_Programjuzhen--key3.zip***********/#include<reg52.h>unsigned char code tab1[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};unsigned char code tab2[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0x

2015-04-18 矩阵键盘--第二种方法
发表于:2015-04-27 00:29:23 | 分类:按键__Program
浏览( ) | 评论( )

/****************************//行扫描//按键取值//P1为LED端口//P3为键盘端口//矩阵键盘--第二种方法jianpan_programjuzhen--key2.zip******************************/#include <reg52.h>//==============unsigned char code tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f,0xfe,0xfd,0xfb,

2015-04-17 矩阵按键--第一种方法
发表于:2015-04-23 01:48:37 | 分类:按键__Program
浏览( ) | 评论( )

/***************************************************************//矩阵按键--第一种方法juzhen_Programjuzhen--key1.zip//只用了一个消抖语句,我个人认为,只要确定按键不是抖动,就可以直接判定,矩阵键盘的具体位置*****************************************************************/#include <reg52.h>//==========

2015-04-16 独立按键编程
发表于:2015-04-14 23:35:16 | 分类:按键__Program
浏览( ) | 评论( )

按键电路有 独立按键 和 矩阵按键;目前一些设计中,会使用已经集成好的按键电路,但是作为电子领域人员,基础还是要掌握好的;独立电路也就是对各端口单独赋值。编程有两种方法一种是 多次按键,一次 有效;if语句变为 P1=0xef P=0xbf ;具有排他性一种是 多次按键,多次 有效;按键按下时,if语句为 P1_7=0不安时为P1_7=1; 按键按下时,if语句为 P1_6=0不按时为P1_6=1;LED_Programanjian-duli.rar/**************

2015-04-15 对LED程序的梳理和总结
发表于:2015-04-14 08:01:37 | 分类:LED_Program
浏览( ) | 评论( )

到今天为止,LED灯的程序编写暂时告一段落,下面我对LED编程思维进行梳理和总结LED灯的程序 常称为 流水灯程序流水灯的编程算是51开发的一个起始点,很多初学者,往往很着急,想要早点编程出长长的优秀的编码,殊不知,基础才是最重要的举一个例子:后面的蜂鸣器程序,很简单,类似于 一个LED的亮灭;后面的数码管编程,行码 与 段码的交替,也是用到 流水灯的左移或者右移,后面的矩阵键盘更是如此,流水灯编程思维掌握好了,接下来的学习才会慢慢水到渠成,拼命往前冲,很容易会牺牲,有理智的往前冲能够更好的谋篇布局,打好

2015-04-14 LED灯从两侧逐个亮起,然后再从中间向两侧逐个灭---方法二
发表于:2015-04-14 07:42:03 | 分类:LED_Program
浏览( ) | 评论( )

/**************************************************************************/LED_ProgramLED_middle_2.rar#include <reg52.h>//================initil(){P1=0xff;}//================delay1s(int count){int i,j;for(i=0;i<count;i++)for(j=110;j>0;j--);}/

2015-04-13 LED灯从两侧逐个亮起,然后再从中间向两侧逐个灭---方法一;
发表于:2015-04-14 07:24:14 | 分类:LED_Program
浏览( ) | 评论( )

/**************************************************************************/LED_ProgramLED_middle.rar#include <reg52.h>//================initil(){P1=0xff;}//================delay1s(int count){int i,j;for(i=0;i<count;i++)for(j=110;j>0;j--);}//=

2015-04-12 左移间隔递增亮
发表于:2015-04-13 07:22:54 | 分类:LED_Program
浏览( ) | 评论( )

/***********************************编程思路:1111 1110 左移两位后 再 跟 0000 0010 或运算;***********************************/LED__ProgramLED_jian_ge.rar#include <reg52.h>//================initil(){P1=0xff;}//================delay1s(int count){int i,j;for(i=0;i<