51单片机
文章平均质量分 60
水桶前辈
爱旅行爱生活喜欢西藏的蓝天白云
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
STC12C系列单片机强上拉的设置 (By 风铃)
STC(宏晶)系列单片机的I/O口具有强上拉模式,何为强上拉模式?宏晶单片机I/O口可以设置成四种模式:准双向口/弱上接,推挽/强上拉,输入/高阻,设置成推挽/强上拉,无论输出1和0时能承受的电流都很大。宏晶单片机的特殊功能寄存器(SFR)对I/O口增加了PXM1、PXM0寄存器,每个口都有这么一对。可通过设置PXM1:PXM0的值选择该口的工作模式:PXM1,PXM0的定义如下:转载 2013-10-20 10:46:21 · 5988 阅读 · 0 评论 -
C51 单片机 串口通讯总结——查询方式与中断方式
查询方式:发送数据——先发后查;接收数据——先查后收。中断方式:发送数据——发送、等待中断、中断中发送;接收数据——等待中断、在中断中接收。下面让我们通过两个列子进一步看一下两者的区别:/******************查询方式实现的串口通讯*************************/#include#define uint unsigned int#d转载 2014-02-13 17:00:05 · 11151 阅读 · 0 评论 -
printf 函数在keil2 中的使用
/****************************************************************************//* *//* SERIAL.C: Interrupt Controlled原创 2014-02-26 13:12:06 · 928 阅读 · 0 评论 -
C51: STARTUP CODE UNRESOLVED EXTERNAL (?B_SWITCH0)
官方的解释:原来是软件本身的BUG,FUCKhttp://www.keil.com/support/docs/1953.htmC51: STARTUP CODE UNRESOLVED EXTERNAL (?B_SWITCH0)Information in this article applies to:C51 Version 6.12QUESTION转载 2014-02-26 17:56:42 · 1070 阅读 · 0 评论 -
C51 main 函数学习以及函数跳转
1.C51main函数深入学习,有如下代码:#include "reg52.h"/************* 本地变量声明 **************/typedef void (*pFunction)(void);pFunction Jump_To_Application;unsigned int JumpAddress;unsigned int a=0;char i;v原创 2014-02-16 14:10:45 · 2253 阅读 · 0 评论 -
C51 延时程序两种方案
在keil2中修改晶振为22.1184,然后可以测试得到如下两种毫秒延时和秒延时。方法一:/*实现功能:在22.1184MHZ下的毫秒延时*/void dmsec (u16 count){unsigned int i;while (count){ i =230;while (i>0) i--;count--; }}方法二:/原创 2014-02-16 17:03:19 · 2812 阅读 · 0 评论 -
C深入学习 if else if
1.当你的程序中想使用_nop_();指令时,你必须包含#include 2. 此处用了if 和 else if ,可以成功接收到数据。之前用的是2个if语句{if(RxCounter == 1 )和if(RxCounter == 603)},接收不到数据。 if(RI) //如果收到串口发送的数据 { R原创 2014-02-18 10:22:59 · 733 阅读 · 0 评论 -
C51单片机 的定时器学习笔记
/*-------------------------------------------------------*//* -------------author: robinson_911 -------------------------*//* -------------date:2014年2月 -------------------------*//* -------------c原创 2014-02-18 17:35:28 · 1576 阅读 · 0 评论 -
C51单片机 波特率选择 和 串口的工作方式
波特率选择在串行通讯中,收发双方的数据传送率(波特率)要有一定的约定。在8051串行口的四种工作方式中,方式0和2的波特率是固定的,而方式1和3的波特率是可变的,由定时器T1的溢出率控制。方式0方式0的波特率固定为主振频率的1/12。方式2方式2的波特率由PCON中的选择位SMOD来决定,可由下式表示:波特率=2的SMOD次方除以64再乘一个fosc,也就是转载 2014-02-18 17:53:49 · 16864 阅读 · 0 评论 -
51学习之定时器中断的两种方式——查询和中断
转载自:http://blog.sina.com.cn/s/blog_6fe8b3c7010106b1.html51学习之定时器中断呵呵,从网上抄了个程序,自己改了下。能用了。不过有些地方还是不太了解,呵呵,明天来细写。2012.2.25定时器中断可用两种方式处理:查询和进入中断处理。1.查询void Init_T0 (void) 定时器初始化 {转载 2014-02-19 10:23:37 · 9383 阅读 · 0 评论 -
MCS-51单片机计数器定时器详解
转载自:http://www.360doc.com/content/14/0219/10/12891049_353743057.shtml80C51单片机内部设有两个16位的可编程定时器/计数器。可编程的意思是指其功能(如工作方式、定时时间、量程、启动方式等)均可由指令来确定和改变。在定时器/计数器中除了有两个16位的计数器之外,还有两个特殊功能寄存器(控制寄存器和方式寄存器)。:转载 2014-02-19 10:32:30 · 11991 阅读 · 1 评论 -
在进行C51程序设计时如何精确延时的常见方法介绍
转载自:http://7905648.blog.51cto.com/7895648/1309421单片机因具有体积小、功能强、成本低以及便于实现分布式控制而有非常广泛的应用领域。单片机开发者在编制各种应用程序时经常会遇到实现精确延时的问题,比如按键去抖、数据传输等操作都要在程序中插入一段或几段延时,时间从几十微秒到几秒。有时还要求有很高的精度,如使用单总线芯片DS18B20时,允许误差范围转载 2014-04-14 21:27:02 · 3466 阅读 · 0 评论 -
RC523读身份证ID
http://www.amobbs.com/forum.php?mod=viewthread&tid=5548512#lastpost最近用RC523读身份证ID,经过几天摸索和参考网上资料,终于所成功了,特发此贴给有需要的朋友,但愿能少走弯路RC523 寄存器配置: RcSetReg(JREG_TXASK, 0x00); RcSetReg(JREG_转载 2014-04-28 17:36:05 · 9202 阅读 · 0 评论 -
解决Keil的OxFD_BUG
Keil的OXFD BUG,12864液晶显示汉字问题,0xFD补丁。最近写个12864液晶程序,采用索引查表的方式显示汉字,遇到了有些字乱码的情况,仔细检查最终查到了凡是汉字内码低位为FD的均会出现乱码,遂联想到了Keil的oxFD BUG,以前最早用Keil2的时候就听说过,没想到到了Keil4这个问题依然存在,所以开始没有太在意。数据表如下:struct typFNT原创 2014-07-23 18:14:35 · 5486 阅读 · 0 评论 -
C/C++指令 #undef ,#ifdef, #ifndef,#if的用法
转载自; http://www.360doc.com/content/14/0221/10/12891049_354426080.shtml#ifdef,#ifndef使用 条件编译命令最常见的形式为: #ifdef 标识符 程序段1 #else 程序段2 #endif 它的作用是:当标识符已经被定义过(一般是用#define命令定义),则对程序段1进行编译,否则编译程序段2。 其中#else部分...转载 2014-02-21 10:50:02 · 1219 阅读 · 0 评论 -
STC 外部中断范例
#includemain(){EA=1;//开CPU总中断EX0=1;//开外部中断0IT0=1;//前者下降沿有效【较常用】 INT0 = 1; //(INT0=0;)这个高电平有效, //设置INT0的中断类型 (1:仅下降沿 0:上升沿和下降沿)//外部中断0引脚是P3^2,如果你选择INT0=1;则只要电平由高变低就有效(可以外接开关加接地按开关P3^2接地,中断转载 2014-02-12 21:29:01 · 7430 阅读 · 0 评论 -
增强型单片机STC12C5A60S2输出各种频率方波信号
【例7-3】 设时钟频率Fosc=18.432MHz,设计程序,从P1.0/CLKOUT2引脚输出频率为124.540KHz的时钟;从T0(P3.4)引脚输出频率为125KHz的时钟;从T1(P3.5)引脚输出频率为38.4KHz的时钟。解:使用STC12C5A60S2的可编程时钟输出功能完成所需要求。在下面的程序设计中(在此只给出C语言程序),T0、T1和独立波特率发生器BRT均工作在1转载 2014-02-12 22:10:58 · 6955 阅读 · 0 评论 -
STC12C5A60S2 ADC查询方式
/*------------------------------------------------------------------*//* --- STC MCU Limited ---------------------------------------------*//* --- STC12C5Axx Series MCU A/D Conversion Demo -------转载 2014-02-24 15:24:26 · 2396 阅读 · 0 评论 -
12232液晶显示
终于把这个程序调好啦,此程序可以按一个数字键,同时显示在液晶屏幕上拉!刚开始用写一个地址命令到液晶,再写一个数据到液晶,调不通,老是出现一个键按下去,显示多个一样的数字键值!最后用下面的程序,将按键写一个显示一个,就OK啦!/* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /* /*if ((keyscan()>原创 2013-10-20 10:50:22 · 2106 阅读 · 0 评论 -
12232液晶第二行第一个字符显示乱码
12864液晶为什么出入汉字会出现乱码?12864液晶为什么出入汉字会出现乱码?如果输入的是数字或者字符可以是任意的地址,如果是汉字只能存放于偶数地址。比如第一行80H你写入一个字符‘a’接着写入'我' A可以正常显示 ‘我’是乱码 所以你需要在A后面加入空格符 将我放入到81H中你的地址没有对应好,也就是第一行的前两个地址00 01 这两个原创 2013-10-20 11:01:54 · 2202 阅读 · 0 评论 -
STC12C5A60s2 点亮液晶屏 不容易啊
把我百度空间的文章全部转过来!本来想去21ic开blog的,没想到级别不够,所以来此!然后会把以后遇到的技术问题记录下来,慢慢品味! 这周在焊板子,调试程序,然后遇到了一些问题,所幸今天加班去把问题搞定啦,哎呀,真不容易啊!遇到的问题有以下几点:1.某日调板子是MAX3232通过的电流过大,还以为是3232坏了,定眼看,原来是将3232边上的一个电容给短路啦,电容上有焊锡,直接原创 2013-10-20 10:44:06 · 4306 阅读 · 0 评论 -
做0-5V量程的电压表----转载
/* 作者:极客工坊-迷你强 时间:2012年6月19日 IDE版本号:1.0.1 发布地址:[url=http://www.geek-workshop.com]www.geek-workshop.com[/url] 作用:介绍使用arduino模拟口测量电压,作为0-5V电压表使用实验 */ float temp; //转载 2013-11-19 10:38:50 · 1567 阅读 · 0 评论 -
keil2 时间仿真设置
第一步: 晶振大小设置,我实际用到的晶振是22.1184MHZ,故我在此填写22.1184MHZ。第二步:软件仿真执行,单步执行时查看Register 下的sec (秒)的变化量,既可以计算出软件仿真的时间。第三部:软件延时函数:(22.1184MHZ下的毫秒延时)//函数void dmsec (unsigned int count);实现功能:进行原创 2013-12-30 11:08:42 · 2913 阅读 · 0 评论 -
STC IAP 资料整理
AP,In Application Programming ,它的意思是“在应用编程”,即在程序运行时程序存储器可由程序自身进行擦写。通俗点讲,也就是说程序自己可以往程序存储器里写数据或修改程序。这种方式的典型应用就是用一小段代码来实现程序的下载,实际上单片机的ISP功能就是通过IAP技术来实现的,即片子在出厂前就已经有一段小的boot程序在里面,片子上电后,开始运行这段程序,当检测到上位机有下载转载 2013-12-17 17:25:51 · 1104 阅读 · 0 评论 -
stc某些单片机里既有eeprom也有flash,各有什么用处??
stc某些单片机里既有eeprom也有flash,各有什么用处??转载自:http://zhidao.baidu.com/link?url=Wr94WvGE8tnMjuieOP94Cl3Ek9VsNdPBW7OVkiZGBQ_P-t32huZuteyDVt2DwkQ8kFPyZutJlohQ_BmWTI6MGK如题,网上有很多的帖子区分eeprom和flash,但是我还是不大转载 2013-12-17 22:24:48 · 7338 阅读 · 1 评论 -
51 IAP说明
芯片:STC12C5A60S2 60K flash只能用你们的STC--ISP软件去更新 。 1K EEPROM可以写入数据,但是写入的数据不能够当做程序区的程序去执行,因为MCU寻址寻不到。芯片:STC11L08XE 8K flash只能用你们的STC--ISP软件去更新 。要想用stc芯片实现IAP,必须使用STC的IAP打头的MCU。部分IAP程序原创 2013-12-20 17:32:22 · 1768 阅读 · 0 评论 -
STC新型单片机的ISP程序设计
STC新型单片机的ISP程序设计 随着单片机技术的不断发展,IAP(In-Application-Programming)功能的支持越来越普遍,这给应用系统程序代码升级带来了极大的方便。但是,ISP(In-System-Programming)程序的设计以及程序空间的安排等,是需要开发者认真细致考虑的。本文针对STC新型单片机的应用ISP程序设计作了详细的介绍,以STC11F62X为例,详转载 2013-12-23 11:17:33 · 2310 阅读 · 0 评论 -
谈宏晶STC单片机的ISP功能 (芯片保密性)转
两年前,曾经用过STC的单片机,当时对他的那个ISP下载功能很是感兴趣,且当时也想实现一个IAP升级办法,又不想占用他现有的flash空间,毕竟还是有点小。就想办法着手研究了一下,就写了一段代码在8051内核的64K空间依次读取所有的数据,最后得到了一个2k多一点的ISP所用的bin文件,反汇编得到汇编文件,就在那花功夫细细地看了看实现方法,分析得出了基本的下载协议,两年后,我觉得转载 2013-12-26 16:52:24 · 2371 阅读 · 0 评论 -
51 单片机的理解
转载自:http://zhidao.baidu.com/question/422426297.html?fr=qrl&index=2&qbl=topic_question_2关于51单片机内存问题,一直是个疑惑大家的问题,因为51单片机是个很另类的单片机。下面我给楼主讲解一下:51单片机之所以另类,是因为,他寻址内存的空间,不是靠总线,是用指令的方式。51单片机有以下几个内存模块组成:转载 2014-01-23 16:21:09 · 1021 阅读 · 0 评论 -
STC 单片机深入学习
经过实际试验,STC12C5A60S2 中60K的flash只能用STC-ISP软件去擦除,编程。用IapReadByte函数去读所在的区域,返回值全部是0xff。用IapProgramByte写入也会不成功。STC12C5A60S2中1K(0x0000-0x03ff)的EEPROM,只能用IAP系列的三个函数(IapProgramByte,IapEraseSector,IapReadByte原创 2014-01-24 11:10:39 · 1901 阅读 · 0 评论 -
关于STC IAP系列单片机下载不进的解决办法
之前IAP系列一直下载不进去,最后才发现是P1.0/P1.1没有拉低。所以把P1.0/P1.1拉低后就可以下载了!(我的固件版本号: 6.5I,所以必须把P1.0/P1.1拉低)最后细看STC-ISP软件才发现有如下提示:(老妖也不知道在datasheet里面狠狠得标明下)芯片型号 :IAP12C5A62S2关于此芯片的重要说明: 固件版本在v7.0及以上时 .原创 2014-01-20 14:27:16 · 4876 阅读 · 0 评论 -
STC12C5A60S2 ADC中断方式
/*------------------------------------------------------------------*//* --- STC MCU Limited ---------------------------------------------*//* --- STC12C5Axx Series MCU A/D Conversion Demo -------转载 2014-02-24 15:23:33 · 5189 阅读 · 2 评论 -
关于sizeof和strlen !!!
关于sizeof和strlen !!!已知 char *str1="absde"; char str2[]="absde"; char str3[8]={'a',}; char ss[] = "0123456789";为什莫 sizeof(str1)=4 sizeof(str2)=6; sizeof(str3)=8; siz...转载 2013-12-11 09:58:26 · 583 阅读 · 0 评论
分享