
51单片机
mirkerson
QQ 252915145
展开
-
用“UL”避免Keil C51大整数常量运算溢出错误
<br />用“UL”避免Keil C51大整数常量运算溢出错误2010-06-06 14:35主题词:常量运算;溢出;类型转换;类型后缀<br /><br />Keil C51是与ANSI C兼容的编译器,ANSI C规范规定十进制整数常量的默认数据类型是int、long int和unsigned long int的其中一种,对给定的常量是其中的哪一种要看这个常量的实际大小,如果常数在-32768~32767之间则按int类型处理,如果按int类型处理会溢出就考虑long int或更大的数据类型unsig转载 2010-11-28 11:22:00 · 6688 阅读 · 1 评论 -
端口配置模式
<br /><br />一.准双向口配置<br />如下图,当IO输出为高电平时,其驱动能力很弱,外部负载很容易将其拉至低电平。当IO输出为低电平时,其驱动能力很强,可吸收相当大的电流。<br />准双向口有三个上拉晶体管,一个“极弱上拉”,当端锁存器为逻辑“1”时打开,当端口悬空时,“极弱上拉”将端口上拉至高电平。<br />第二个上拉晶体管为“弱上拉”,当端口锁存器为逻辑“1”且端口本身也为“1”时打开,此上拉提供的电流,使准双向口输出为“1”。如果此时端口被外部装置拉到逻辑“0”时,通过施密特触发器,转载 2011-04-26 14:05:00 · 2912 阅读 · 0 评论 -
C51 main()函数和启动代码 --- 从汇编到c51
第一节 main()函数和启动代码 汇编是从org 0000h开始启动,那么keil c51是如何启动main()函数的?keil c51有一个启动程序startup.a51,它总是和c程序一起编译和链接。下面看看它和main()函数是如何编译的;//主函数如下;void main(void){ while (1) 这是个无条件空循环。 { }}把上面的main()函数编译后的汇编程序和反汇编代码整理后对照如下;?C_C51STARTUP SEGMENT转载 2010-11-23 23:02:00 · 6429 阅读 · 0 评论 -
STC 下载 自动波特率 设计
<br />虽然STC的资料和网站土了一点,但是单片机用起来还可以的。 <br />由于下载软件STC-ISP界面十分丑陋,并且不稳定,经常下载失败,所以产生了分析下载协议,重新编写软件,以及制作脱机下载器的想法。 <br />第一步当然是截取PC机和MCU之间的通讯内容分析, <br />经过几天几夜的奋斗,取得了一点成果,但仍有相当一部分内容无法研究明白,现在决定暂时停止了,将前期得出的一些结论_公布与此。 <br />以下所有信息均是在STC12C5604上得出,与早年某些型号比较变化较大。 <br转载 2010-11-07 11:18:00 · 4792 阅读 · 1 评论 -
STC 烧写问题。 4.86
<br /> <br /><br /> <br />当使用最低波特率 2400 进行烧写时候。晶振数据不对。而且不能烧写<br /> <br /> <br /> <br /><br />必须是用最低波特率 1200 进行 连接。才可以正常烧写。也许是 4.86版本的问题原创 2010-11-07 10:30:00 · 1188 阅读 · 0 评论 -
如何在 KEIL C51(v6.21) 中调用汇编函数的一个示例
如何在 KEIL C51(v6.21) 中调用汇编函数的一个示例 [ycong_kuang]有关c51调用汇编的方法已经有很多帖子讲到,但是一般只讲要点,很少有对整个过程作详细描述,对于初学者是不够的,这里笔者通过一个简单例子对这个过程进行描述,希望能对初学者有所帮助。几年来,在这个论坛里笔者得到很多热心人指导,因此也希望藉此尽一点绵薄之力。在这个例子里,阐述了编写c51程序调用汇编函数的一种方法,这个外部函数的入口参数是一个字符型变量和一个位变量,返回值是一个整型变量。例中,转载 2010-10-29 00:35:00 · 2754 阅读 · 0 评论 -
Keil C51初始化代码 Startup.a51的中文说明
Keil C51初始化代码 Startup.a51的中文说明时间:2007-01-04 来源: 作者:下岗农民 点击: 3875 字体大小:【大 中 小】;------------------------------------------------------------------------------; STARTUP.A51: 用户上电初始化程序;-----------------------------------------------------------------转载 2010-10-28 23:53:00 · 3903 阅读 · 0 评论 -
C51编程经验三则
C51编程经验三则2009年08月19日 星期三 11:18在单片机的开发应用中,已逐渐开始引入高级语言,C语言就是其中的一种。用惯了汇编的人,总觉得高级语言“可控性”不好,不如汇编那样随心所欲。以下是笔者在C51编程中的几点经验,希望对初学C51者有所帮助。一、C51热启动代码的编制工业控制计算机,往往设有看门狗电路,看门狗动作,计算机复位,这就是热启动。热启动时,一般不允许程序从头开始,因为这将使测量或计算值复位,导致系 统工作异常。故程序必须判断是热启动还是冷启动。常用的方法是:设定某内存单位为标志位转载 2010-10-28 23:49:00 · 1210 阅读 · 0 评论 -
MCS-51单片机存储器结构
MCS-51单片机存储器结构MCS-51的存储器可分为四类: 程序存储器 一个微处理器能够聪明地执行某种任务,除了它们强大的硬件外,还需要它们运行的软件,其实微处理器并不聪明,它们只是完全按照人们预先编写的程序而执行之。那么设计人员编写的程序就存放在微处理器的程序存储器中,俗称只读程序存储器(ROM)。程序相当于给微处理器处理问题的一系列命令。其实程序和数据一样,都是由机器码组成的代码串。只是程序代码则存放于程序存储器中。 MCS-51具有64kB程序存储器寻址空间,它是用于存放用户程序转载 2010-10-28 23:07:00 · 2806 阅读 · 0 评论 -
简单方便自制的几个AVR/51 ISP编程器(下载线)
<br />简单方便自制的几个AVR/51 ISP编程器(下载线)简单方便自制的几个AVR/51 ISP编程器(下载线)2009-06-06 11:17<br />AVR单片机有许多优点,我也是个忠实支持者,是从51过度到AVR的,中途还学PIC,初学51时买了学习板,液晶屏等不少东西,有经验后,学AVR时就从自制的下载线开始了,注意,这只是个开始,简单的东西总存在着一些局限性,但对于初学者来说,这可是个非常有用的东西,有了它就可以开始学习AVR单片机,甚至是一些开发了,这些编程器都是出自网上流传的,虽然我转载 2010-12-05 11:24:00 · 11803 阅读 · 3 评论 -
用下载电缆实现AT89S5X的ISP编程
用下载电缆实现AT89S5X的ISP编程2007年09月22日 下午 12:52摘要:下载电缆被广泛应用于电子系统设计与调试过程中。本文介绍它的基本原理和编程控制方法;针对目前单片机的ISP串行编程模式列举实例,简要介绍AT89S5X的串行编程的方法和部分协议,使用VC编程,应用下载电缆实现对AT89S5X系列单片机的ISP编程;文末提出统一下载电缆硬件或软件的设想,并提供可以下载支持多种单片机ISP编程软件的网址。 关键词:下载电缆 串行编程 AT89S5X ISP引言随着电子技术的日益发展,芯转载 2010-12-05 11:23:00 · 3170 阅读 · 0 评论 -
关于51单片机“外部中断触发方式”的经验总结
标签: 无标签关于51单片机“外部中断触发方式”的经验总结下面是本人使用51单片机的一点经验,写出来分享,请批评指正51单片机的外部中断有两种触发方式可选:电平触发和边沿触发。选择电平触发时,单片机在每个机器周期检查中断源口线,检测到低电平,即置位中断请求标志,向CPU请求中断。选择边沿触发方式时,单片机在上一个机器周期检测到中断源口线为高电平,下一个机器周期检测到低电平,即置位中断标志,请求中断。这个原理很好理解。但应用时需要特别注意的几点:1) 电平触发方式时,中断标志寄存器不锁存中断请转载 2010-12-01 10:51:00 · 1813 阅读 · 0 评论 -
keil 串口 模拟 调试
<br /><br />试用 keil 模拟 串口 调试 。可直接 在 串口窗 输入数据。 试用hex 格式。如果要输入16进制的数。按alt+数字小键盘的 数字。一定要数字小键盘的。原创 2010-11-29 18:23:00 · 1438 阅读 · 0 评论 -
uip 51 移植
<br /> <br />uIP特性<br />uIP由瑞典计算机科学学院(网络嵌入式系统小组)的Adam Dunkels开发。其源代码由C语言编写,并完全公开,所有代码和相关说明文档可以到http://dunkels.com/adam/uip/下载。最新版本是uIP1.0版本,本书移植和使用的版本正是此版本。<br />uIP协议栈去掉了完整的TCP/IP中不常用的功能,简化了通讯流程,但保留了网络通信必须使用的协议,设计重点放在了IP/TCP/ICMP/UDP/ARP这些网络层和传输层协议上,保证了其代原创 2010-11-28 11:19:00 · 4648 阅读 · 2 评论 -
Keil Memory Model
<br /><br />Memory Model:用鼠标点击Memory Model的下拉箭头,会有3个选项:<br /> Small:变量存储在内部ram里;<br /> Compact:变量存储在外部ram里,使用页8位间接寻址;<br /> Large:变量存储在外部Ram里,使用16位间接寻址;<br /> 我们一般使用Small来存储变量,就是说单片机优先把变量存储在内部ram里,如果内部ram不够了,才会存到外部去。Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果转载 2010-11-28 01:13:00 · 4289 阅读 · 1 评论 -
C8051 F12X中多bank的分区跳转处理
在8051核单片机庞大的家族中,C8051F系列作为其中的后起之秀,是目前功能最全、速度最快的8051衍生单片机之一,正得到越来越广泛的应用。它集成了嵌入式系统的许多先进技术,有丰富的模拟和数字资源.是一个完全意义上的SoC产品。 C805IFl2X作为该系列中的高端部分,具有最快100MIPS的峰值速度,集成了最多的片上资源。其128 KB的片上Flash和8 KB的片上RAM足以转载 2014-03-10 15:29:55 · 2413 阅读 · 0 评论