c8051单片机注意事项:】的更多相关文章

一定要注意交叉开关问题:外设要想正确分配到指定引脚,一定要用配置工具确定分配到指定引脚:如果手动分配一定要仔细验证.这方面有个深刻的教训. 有个项目用c8051f020,用到2个串口,硬件已经确定好了,我主要负责软件,要想让UART0/1分别分配到指定的(P0.0~p0.1)/(P0.4~p0.5),根据配置工具测试发现必须配置串口0.SMBUS .串口1而SPI0禁用.但SMBUS板子上引出暂未使用,所以当时采用手动配置交叉开关,模块一个一个调试,所以就没有使能smbus,这就造成了后面的串口…
一.背景 做个记录,以备下次快速开发. 二.正文 C8051F340有一个可编程内部高频振荡器.一个可编程内部低频振荡器.一个外部振荡器驱动电路 和一个4倍时钟乘法器.其中可编程内部高频振荡器在系统复位后被默认为系统时钟.其值为12MHZ.震荡 图如下: 时钟配置例程如下,设置内部时钟为4倍时钟乘法器提供12MHz时钟.4倍时钟乘法器输出经1/2分频 后用作系统时钟. void Sysclk_Init(void) { OSCICN |= 0x03; // Configure internal o…
"51单片机编程在不同内存空间data xdata bdata定义变量的注意事项": 关键词:51 单片机 编程 不同 内存空间 data xdatabdata 定义 变量 注意事项 1.data区空间小,所以只有频繁用到或对运算速度要求很高的变量才放到data区内,比如for循环中的计数值. 2.data区内最好放局部变量. 因为局部变量的空间是可以覆盖的(某个函数的局部变量空间在退出该函数是就释放,由别的函数的局部变量覆盖),可以提高内存利用率.当然静态局部变量除外,其内存使用方式…
LPC43xx系列使用IAP的注意事项 Tags: LPC43xx IAP 单片机 LPC43xx IAP函数的调用 一般MCU的IAP是,厂商固化一段代码在芯片的某个区域,然后告诉你这个代码的入口地址. 我们一般可以这么做: typedef void (*IAP_ENTRY_T)(参数列表) #define IAP_ADDR (0xdeadbeef) // 假设的地址 IAP_ENTRY_T const iap_entry = (IAP_ENTRY_T)IAP_ADDR; 这样我们便可以通过i…
http://blog.csdn.net/shjhuang/article/details/9426739 关于RS485总线通信协议开发注意事项 1       前言 近段时间发现我们系统在进行设备组态时,采用的串口复用方式在同一个RS485串口上挂载多个智能设备进行通信.监控.而往往在系统组态的时候就会发现部分设备通信不上,或者工程交付之后出现智能设备经常通信中断的情况.本文描述RS485总线协议的工作原理,从根本上剖析导致以上问题的根本原因. 2       RS485总线硬件特点 2.1…
1.单片机C51编程规范- 前言  为了提高源程序的质量和可维护性,从而最终提高软件产品生产力,特编写此规范. 2.单片机C51编程规范-范围 本标准规定了程序设计人员进行程序设计时必须遵循的规范.本规范主要针对C51编程语言和keil编译器而言,包括排版.注释.命名.变量使用.代码可测性.程序效率.质量保证等内容. 3.单片机C51编程规范-总则 格式清晰  注释简明扼要  命名规范易懂  函数模块化  程序易读易维护  功能准确实现  代码空间效率和时间效率高  适度的可扩展性 4.单片机C…
BOOT区的由来基于一个简单的道理,即单片机的程序是保存在FLASH中的,要运行程序就必须不停的访问FLASH存储器.对于一般的FLASH存储器,数据的写入需要一定的时间来完成,在数据写入完成之前,存储器中所有的数据都是不可读的,这就在运行旧程序和写入新程序之间造成了一个矛盾. 使用BOOT区是解决这个矛盾的方法之一,它将FLASH存储器从物理上分为两个独立的区域,对其中的一个区的数据写入不会影响到另一个区的数据读取操作.我们可以让单片机的程序在其中一个区(通常是BOOT区)运行,而运行着的程序…
比较全的CH340,CH341应用说明 CH340 以前用USB转串口时图方便一般也都是直接买现成的USB转串口模块,但是后面设计需要,不等不将CH340这个模块集成到电路板中,经过多次失败,终于得到稳定的工作电路了,以下是CH340的说明. 特点 1.全速USB设备接口,兼容USB V2.0,外围元器件只需要晶体和电容. 2.仿真标准串口,用于升级原串口外围设备,或者通过USB增加额外串口. 3.计算机端Windows操作系统下的串口应用程序完全兼容,无需修改 4.硬件全双工串口,内置收发缓冲…
BOOT区的由来基于一个简单的道理,即单片机的程序是保存在FLASH中的,要运行程序就必须不停的访问FLASH存储器.对于一般的FLASH存储器,数据的写入需要一定的时间来完成,在数据写入完成之前,存储器中所有的数据都是不可读的,这就在运行旧程序和写入新程序之间造成了一个矛盾. 使用BOOT区是解决这个矛盾的方法之一,它将FLASH存储器从物理上分为两个独立的区域,对其中的一个区的数据写入不会影响到另一个区的数据读取操作.我们可以让单片机的程序在其中一个区(通常是BOOT区)运行,而运行着的程序…
1.什么是源型 漏型?什么是上拉电阻?下拉电阻?什么是 线驱动输出 集电极开路输出,推挽式输出? 我们先来说说集电极开路输出的结构.集电极开路输出的结构如图1所示,右边的那个三极管集电极什么都不接,所以叫做集电极开路(左边的三极管为反相之用,使输入为“0”时,输出也为“0”).对于图1,当左端的输入为“0”时,前面的三极管截止(即集电极c跟发射极e之间相当于断开),所以5v电源通过1k电阻加到右边的三极管上,右边的三极管导通(即相当于一个开关闭合):当左端的输入为“1”时,前面的三极管导通,而后…