http://blog.sina.com.cn/zwxue251[订阅][手机订阅]
个人资料
分类
    内容读取中…
访客
读取中...
博文

结婚那天,妈问我:坐在角落里象两个要饭模样的人是谁?

我看过去的时候,有个老头正盯着我,旁边还有个老太太,发现我看着他们时赶忙低下头

。我不认识他们但也不象要饭的,衣服是新的连折印都看得出来。妈说象要饭的是他们佝

偻着身子,老太的身边倚了根拐杖的缘故。

妈说天池是孤儿,那边没亲戚来,如果不认识就轰他们走吧。现在要饭的坏着呢,喜欢等

在酒店门口,见哪家办喜事就装作亲戚来吃黑酒。

我说不会,叫来天池问一下吧?天池慌里慌张把我的手捧花都掉地上了,最后吱吱唔唔地

说是他们家堂叔和堂婶。我瞪了妈妈一眼:差点把亲戚赶走。

妈说天池你不是孤儿吗?哪来的亲戚呢?

天池怕妈,低头说是他家远房的亲戚,好长时间不来往了。但结婚是大事,家里一个亲戚

没来心里觉着是个憾事,所以……

我靠着天池的肩埋怨他有亲戚来也不早说,应该把他们调一桌,既然是亲戚就不能坐在备

用桌上。天池拦着说就让他们坐那吧,坐别桌他们吃着也不自在。

直到开席那桌上也就坐了堂叔和堂婶。

C51编程中的几点经验(2008-09-28 11:20)

在单片机的开发应用中,已逐渐开始引入高级语言,C语言就是其中的一种。用惯了汇编的人,总觉得高级语言“可控性”不好,不如汇编那样随心所欲。以下是笔者在C51编程中的几点经验,希望对初学C51者有所帮助。
  一、C51热启动代码的编制
  工业控制计算机,往往设有看门狗电路,看门狗动作,计算机复位,这就是热启动。热启动时,一般不允许程序从头开始,因为这将使测量或计算值复位,导致系统工作异常。故程序必须判断是热启动还是冷启动。常用的方法是:设定某内存单位为标志位(如0x7f位和0x7e位),启动时首先读该内存单元的内容,如果它等于一个特定的值(例如两个内存单元的都是0xaa),就认为是热启动,否则就是冷启动,程序执行初始化部分,并将0xaa赋予这两个内存单元。
  根据以上的设计思路,编程时,设置一个指针,指向特定的内存单元如0x7f,然后在程序中根据特定内存单元的值判断冷/热启动,程序如下:
  void main()
  {     char data*HotPoint=(char*)0x7f;
    if((*HotPoint==0xaa)&&(*(--Hot
    Point)==0xaa))
         {    

crc16.h

 

#ifndef _CRC16_H_
#define _CRC16_H_

unsigned short crc16_ccitt(const char *buf, int len);

#endif

crc16.c

 

#include 'crc16.h'

 

static const unsigned short crc16tab[256]= {
 0x0000,0x1021,0x2042,0x3063,0x4084,0x50a5,0x60c6,0x70e7,
 0x8108,0x9129,0xa14a,0xb16b,0xc18c,0xd1ad,0xe1ce,0xf1ef,
 0x1231,0x0210,0x3273,0x2252,0x52b5,0x4294,0x72f7,0x62d6,
 0x9339,0x8318,0xb37b,0xa35a,0xd3bd,0xc39c,0xf3ff,0xe3de,
 0x2462,0x3443,0x0420,0x1401,0x64e6,0x74c7,0x44a4,0x5485,
 0xa56a,0xb54b,0x8528,0x9509,0xe5ee,0xf5cf,0xc5ac,0xd58d,
 0x3653,0x2672,0x1611,0x0630,0x76d7,0x66f6,0x5695,0x46b4,
 0xb75b,0xa77a,0x9719,0x8738,0xf7df,0xe7fe,0xd79d,0xc7bc,
 0x48c4,0x58e5,0x6886,0x78a7,0x0840,0x1861,0x2802,0x3823,
 0xc9cc,0xd9ed,0xe98e,0xf9af,0x8948,0x9969,0xa90a,0xb92b,
 0x5af5,0x4ad

XModem协议源码-xmodem.c(2008-09-28 09:28)

 

 

#include 'crc16.h'

#define SOH  0x01
#define STX  0x02
#define EOT  0x04
#define ACK  0x06
#define NAK  0x15
#define CAN  0x18
#define CTRLZ 0x1A

#define DLY_1S 1000
#define MAXRETRANS 25
static int last_error = 0;

#include 'string.h'

void port_outbyte(unsigned char trychar)
{
 unsigned char buf[2];
 buf[0] = trychar;
 lowLevel_write(buf,1);
}

unsigned char port_inbyte(unsigned int time_out)
{
 unsigned char ch;
 int i;
 last_error = 0;

 if(lowLevel_read(&ch,1) == 1)
  return ch;

 last_error = 1;
 return ch;
}

static int check(int crc, const unsigned char *buf, int sz)
{
 if (crc)
 {
  unsigned short crc = crc16_ccitt(buf, sz);
 

研究Xmodem协议必看的11个问题

Xmodem协议作为串口数据传输主要的方式之一,恐怕只有做过bootloader的才有机会 接触一下,网上有关该协议的内容要么是英语要么讲解不详细。笔者以前写bootloader时研究过1k-Xmodem,参考了不少相关资料。这里和大家交流一下我对Xmodem的理解,多多指教!

1.Xmodem协议是什么?
  XMODEM协议是一种串口通信中广泛用到的异步文件传输协议。分为标准Xmodem和1k-Xmodem两种,前者以128字节块的形式传输数据,后者字节块为1k即1024字节,并且每个块都使用一个校验和过程

安装vs.net2003时出现

错误1402 未能打开项

HKEY_LOCAL_MACHINE\sofeware\Classes\COLFile\DefaultIcon 请验证您是否有足够的权限访问该项,或者与支持人员联系

 

解决方法:运行 regedit 在注册表中找到错误项,右击,打开权限,添加'system'用户,并设为完全控制

OK!!!问题解决!

最近要做一个windows mobile的一个C++项目,打开 Visual Studio 2005 准备创建一个 VC++ 下的 Win32 智能设备项目,但是一直创建失败:向导出现并小闪了一下,然后消失,界面弹回原来的创建项目的对话框。状态栏提示“正在创建项目 智能设备项目创建失败。”

这几天试图自己寻找原因未果,都想趁此机会重装下系统算了,但今天幸好仔细搜寻了一下,找到了问题的根源。原来 IE7 新采用的安全机制禁止了 VS2005 的某些向导以脚本方式创建 HTML 视图页面,导致向导无法运行起来。

信息来源于 MSDN 中一位工作于 Microsoft 开发工具平台组的程序员的 Blog,他的名字是 Jeff Abraham。他在“Are you having issues creating native projects”一文里提到了这种故障的解决方式。原文见链接,翻译如下。

如果你尝试在 Windows Vista 或在安装完 IE7 的系统上创建 Win32
智能设备项目,你可能已经见过一个在任务栏中提示“项目创建失败”的错误。
S7-200 PLC之PPI协议(2008-08-28 10:31)
 
S7-200 PLC之PPI协议  
   通过硬件和软件侦听的方法,分析PLC内部固有的PPI通讯协议,然后上位机采用VB编程,遵循PPI通讯协议,读写PLC数据,实现人机操作任务。这种通讯方法,与一般的自由通讯协议相比,省略了PLC的通讯程序编写,只需编写上位机的通讯程序资源
  

假设要发送一组数据   Send[10]

一般采用查询发送(循环发送)方式:

unsigned char Send[10];                  //

W77E516 中断(2008-08-26 10:10)

编号        中断源                  向量地址

         外部中断0                 0003h

         定时器0溢出               000Bh

         外部中断1                 0013h

         定时器1溢出               001