51单片机基于定时器0的硬件延时代码
摘要:1 //晶振的频率 2 #define OSC_FREQ (11059200UL) 3 4 //每个指令的振荡周期数(4,6,12),注意,这里一定要仔细查看芯片手册 5 //*12 - 早期的8051、8052及当前的绝大部分51单片机 6 //*6 - Philips 的芯片 7 //*4 - Dallas 8 #define OSC_PER_INST (12) 9 10 //TIME 为定时时间 单位MS11 #define PRELOAD1MS (65536 - 1*(UINT16)(OSC_FREQ/(OSC_PER_INST*1000)))12 #define PRELOAD5..
阅读全文
posted @
2013-01-25 10:23
scdyxcc
阅读(3546)
推荐(0)
单片机多字节串口接收(转)
摘要:转自:http://bbs.ednchina.com/BLOG_ARTICLE_3007162.HTM工作了一年多,写了不少单片机串口程序。感觉串口多字节接收部分的逻辑相对于配置寄存器跟串口回复来说,是有点难度的——寄存器配置基本上都是死的,串口回复多字节跟回复一字节只是多了一个循环。 串口接收程序是基于串口中断的,单片机的串口每次接收到一字节数据产生一次中断,然后再读取某个寄存器就可以得到串口接收的数据了。然而在实际应用当中,基本上不会有单字节接收的情况。一般都是基于一定串口通信协议的多字节通信。在422或者485通信中,还可能是一个主机(一般是计算机)带多个从机(相应的有单片机的板卡...
阅读全文
posted @
2013-01-23 20:36
scdyxcc
阅读(11427)
推荐(0)
W25X16测试程序
摘要:平台:stc12le5a60+W25X16+keilW25X16.HW25X.H 1 #ifndef _W25X_H_ 2 #define _W25X_H_ 3 4 #include <REG52.H> 5 6 #define uint8 unsigned char 7 #define uint16 unsigned int 8 #define uchar unsigned char 9 #define uint unsigned int10 #define uint32 unsigned long11 12 sbit ...
阅读全文
posted @
2013-01-21 22:14
scdyxcc
阅读(4120)
推荐(1)
W25X16的编程要点
摘要:W25X16 的容量为 16Mb,还有容量更大的 W25X32/64,ALIENTEK 所选择的 W25X16 容量为 16Mb,也就是 2M 字节,同AT45DB161 是一样大小的。 W25X16 将 2M 的容量分为 32 个块(Block),每个块大小为 64K 字节,每个块又分为 16个扇区(Sector),每个扇区4K个字节。W25X16 的最少擦除单位为一个扇区,也就是每次必须擦除 4K 个字节。这样我们需要给 W25X16 开辟一个至少 4K 的缓存区,这样对 SRAM 要求比较高(相对于 AT45DB161 来说),但是它有价格及供货上的优势。 W25X16 的差些周期为1.
阅读全文
posted @
2013-01-21 21:02
scdyxcc
阅读(1002)
推荐(0)
crc16 程序
摘要:参考网络 自己测试通过//http://bbs.csdn.net/topics/390069290#include "stdio.h"#include "stdafx.h"// #define CRC(crc,byte) (((crc) >> 8 ) ^ tabel[((crc) ^ (unsigned int) (byte)) & 0XFF])unsigned short tabel[256] = { 0X0000, 0XC0C1, 0XC181, 0X0140, 0XC301, 0X03C0, 0X0280, 0XC241,0XC
阅读全文
posted @
2013-01-04 22:58
scdyxcc
阅读(458)
推荐(0)