推荐阅读最新更新时间:2024-03-16 13:56
AVR单片机外部RAM访问
最近的一个项目中,体会了一下AVR单片机的外部RAM扩展,发文记录于此。 本文以ATMEGA64单片机为测试平台,外扩74HC573(资料上讲用AHC系列,但是我用HC系列在16M晶振下配置成最快速度访问并没有发现什么不妥,当然这是个不严谨的设计)以及62256芯片。 我采用的是GCC编译器,并且在项目中采用C++来编写程序,根据理论上来讲,只要外部存储器使能了并且配置完成,那么变量的地址分配完全可以交给编译器来做,但是前提是存储器使能及配置代码要在上电复位后最先得到执行,而采用C或者C++来编写程序,上电复位之后最先得到执行的代码是由编译器自动增加的启动代码以及构造函数代码。我不清楚如何让存储器使能及配置代码在上电复位后最先得到
[单片机]
如何利用AVR单片机实现AT24C256的数据高速稳定的读取
最近刚买回一块AT24C256 EEPROM ,容量为32K Byte ,数据地址宽度为 16Bit ,支持IIC 1M (5V)400K (2.7V) 速度模式 ,利用AVR M16 片内IIC 可以高速稳定地读取数据! 经过调试的,与各位大虾分享分享。 程序如下:(winavr) #include #include #include #include #define FREQ 8 #include #include #include #define uchar unsigned char #define uint unsigned int #define ulong unsigned long //管脚定义 #defin
[单片机]
PC机与单片机的通讯程序
大多数的电脑设备都具有RS-232C接口,尽管它的性能指标并非很好。在广泛的市场支持下依然常胜不衰。就使用而言,RS-232也确实有其优势:仅需3根线便可在两个数字设备之间全双工的传送数据。不过,RS-232C的控制要比使用并行通讯的打印机接口更难于控制。RS-232C使用了远较并行口更多的寄存器。这些寄存器用来实现串行数据的传送及RS-232C设备之间的握手与流量控制。本文将分别描述PC机及 单片机 MCS-51的串行通讯的原理及具体的软件设计。 (1) RS-232C介绍与PC硬件: RS-232C使用-3到-25V表示数字“1”,使用3V到25V表示数字“0”,RS-232C在空闲时处于逻辑“1”状态,在开始传送时,
[单片机]
用HI-TECH C写的使用PIC12C508单片机读写93LC46范例程式
/************************************************************ * Processer : Microchip PIC12C508 * * Compiler : Hi-TECH PICC 8.00 PL2 * * Writer : Jason Kuo * * Description : It can read/write 93LC46 (64 x 16-bit organization) * *************************************************************/ static volati
[单片机]
基于单片机的数字PID实现直流电机调速(智能车)
现在做很多的智能车,都需要对车速进行控制.或匀速或变速,在调速算法中,PID的经典永垂不朽. 其实,简单的51单片机尚能轻易的实现平滑良好的调速,更不用说性能优良的单片机.然而,要做到最好,是需要很高的专业水平和动手能力.但是,工程上能达到我们的目标即可. 抱着 够用就好 的思想,我们来开始我们的调速旅程: 所谓的PID是肯定基于一个闭环系统而言的,什么是闭环系统呢,我简单的介绍一下: 看上面的这个系统,就不是一个闭环系统,而是一个开环系统.再看下面的这个就是闭环系统: 上图这个系统就是典型的闭环系统.大家也许看出来了, 开环 系统,就是系统没有反馈,是个 打开的环 ,而闭环
[单片机]
如何使用8051单片机制作一个简单的0-5V电压表
在本文中,使用8051单片机制作一个简单的0-5V电压表。该数字电压表的灵敏度为200mV,这有点低,但该项目旨在演示如何将ADC和七段显示器连接到8051单片机以获得输入电压的数字读数。 在这个案例中,ADC0804是ADC,使用的单片机是AT89S51。在尝试这个案例之前,请先了解怎么将ADC连接到8051单片机和将七段显示器连接到8051单片机,这将使您对基础知识有一个很好的了解。 一、数字电压表电路图 在电路中,ADC的Vref/2(pin9)保持开路,这意味着输入电压跨度可以是o到5V,步长将为5/255=19.6mV。ADC0804数字输出的公式为Dout=Vin/步长。在该电路中,对于1V的输入电压,数字输出
[单片机]
单片机对12M和11.0592M的选择
1单片机常用晶振频率是1.2M-12M,一般情况下,一个机器周期是12个时钟周期,所以用12M时,一个机器周期是1US,好计算,而且速度相对是最高的,当然现在也有更高频率的单片机。 而进行通信是,一般选择11.0592M,12M频率进行串行通信不容易实现标准的波特率,比如9600,4800,而11.0592M计算时正好可以得到,因此在有通信接口的单片机中,一般选11.0592M 计算一下就知道了。如我们要得到9600 的波特率,晶振为11.0592M 和12M,定时器1 为模式2,SMOD 设为1,分别看看那所要求的TH1 为何值。 代入公式: 11.0592M 9600=(2 32)
[单片机]
Dualcore推出面向实时应用的两个ARM内核MCU
Dualcore半导体公司推出DCIC9907微控制器(MCU),它包括两个ARM 946E内核、两个CAN通道、两个10Mbit/100Mbit以太网网卡,并可为实时协议进行硬件扩展。 该SoC还提供运动控制逻辑功能,适合对时间要求严格产品及其它工业控制产品。它允许用户在实时条件下进行控制,如需要精确预测时间性能。 在DCIC9907内,两个ARM内核中的其中一个可用于复杂的实时控制,另一个用于系统基础结构,如人机接口和所需的通讯接口。为了达到这个目的,通用的实时操作系统EUROS已经移植到DCIC9907。 两个10Mbit/100Mbit以太网MAC端口具有硬件扩展功能,支持以太网上的实时协议。DCIC9907中集成的
[嵌入式]