博文

usb(2005-09-27 00:30:00)

摘要:USB的重要关键字: 1、端点:位于USB设备或主机上的一个数据缓冲区,用来存放和发送USB的各种数据,每一个端点都有惟一的确定地址,有不同的传输特性(如输入端点、输出端点、配置端点、批量传输端点) 2、帧:时间概念,在USB中,一帧就是1MS,它是一个独立的单元,包含了一系列总线动作,USB将1帧分为好几份,每一份中是一个USB的传输动作。 3、上行、下行:设备到主机为上行,主机到设备为下行  下面以一问一答的形式开始学习吧。  问题一:USB的传输线结构是如何的呢? 答案一:一条USB的传输线分别由地线、电源线、D+、D-四条线构成,D+和D-是差分输入线,它使用的是3.3V的电压(注意哦,与CMOS的5V电平不同),而电源线和地线可向设备提供5V电压,最大电流为500MA(可以在编程中设置的,至于硬件的实现机制,就不要管它了)。  问题二:数据是如何在USB传输线里面传送的 答案二:数据在USB线里传送是由低位到高位发送的。  问题三:USB的编码方案? 答案三:USB采用不归零取反来传输数据,当传输线上的差分数据输入0时就取反,输入1时就保持原值,为了确保信号发送的准确性,当在USB总线上发送一个包时,传输设备就要进行位插入***作(即在数据流中每连续6个1后就插入一个0),从而强迫NRZI码发生变化。这个了解就行了,这些是由专门硬件处理的。   问题四:USB的数据格式是怎么样的呢? 答案四:和其他的一样,USB数据是由二进制数字串构成的,首先数字串构成域(有七种),域再构成包,包再构成事务(IN、OUT、SETUP),事务最后构成传输(中断传输、并行传输、批量传输和控制传输)。下面简单介绍一下域、包、事务、传输,请注意他们之间的关系。 (一)域:是USB数据最小的单位,由若干位组成(至于是多少位由具体的域决定),域可分为七个类型: 1、同步域(SYNC),八位,值固定为0000 0001,用于本地时钟与输入同步 2、标识域(PID),由四位标识符+四位标识符反码构成,表明包的类型和格式,这是一个很重要的部分,这里可以计算出,USB的标识码有16种,具体分类请看问题五。 3、地址域(ADDR):七位地址,代表了设备在主机上的地址,地址000 0000被命名为零地址,是任何一......

阅读全文(1487) | 评论:0

单片机开发中应掌握的几个基本技巧(2005-09-27 00:29:00)

摘要:    
  在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着
工程师。为帮助工程师解决单片机设计上的难题,《电子工程专辑》网站特邀Holtek香
港分公司工程部处长邓宏杰先生担任《单片机应用编程技巧》专题讨论的嘉宾,与广大
设计工程师交流单片机设计开发经验。现根据论坛中的讨论归纳出单片机开发中应掌握
的几个基本技巧。 一、 如何提高C语言编程代码的效率 邓宏杰指出,用C语言进行单片机程序设计是单片机开发与应用的必然趋势。他强调:“
如果使用C编程时,要达到最高的效率,最好熟悉所使用的C编译器。先试验一下每条C语
言编译以后对应的汇编语言的语句行数,这样就可以很明确的知道效率。在今后编程的
时候,使用编译效率最高的语句。” 他指出,各家的C编译器都会有一定的差异,故编译效率也会有所不同,优秀的嵌入式系
统C编译器代码长度和执行时间仅比以汇编语言编写的同样功能程度长5-20%。他说:“
对于复杂而开发时间紧的项目时,可以采用C语言,但前提是要求你对该MCU系统的C语言
和C编译器非常熟悉,特别要注意该C编译系统所能支持的数据类型和算法。虽然C语言是
最普遍的一种高级语言,但由于不同的MCU厂家其C语言编译系统是有所差别的,特别是
在一些特殊功能模块的操作上。所以如果对这些特性不了解,那么调试起来问题就会很
多,反而导致执行效率低于汇编语言。” 二、 如何减少程序中的bug? 对于如何减少程序的bug,邓宏杰给出了一些建议,他指出系统运行中应考虑的超范围管
理参数有:
1.物理参数。这些参数主要是系统的输入参数,它包括激励参数、采集处理中的运行参
数和处理结束的结果参数。合理设定这些边界,将超出边界的参数都视为非正常激励或
非正常回应进行出错处理。
2.资源参数。这些参数主要是系统中的电路、器件、功能单元的资源,如记忆体容量、
存储单元长度、堆叠深度。在程式设计中,对资源参数不允许超范围使用。
3.应用参数。这些应用参数常表现为一些单片机、功能单元的应用条件。如E2PROM的擦
写次数与资料存储时间等应用参数界限。
4.过程......

阅读全文(160) | 评论:0

计算π(2005-09-24 14:27:00)

摘要:#include <stdlib.h>  
#include <stdio.h>  

long a=10000,b,c=2800,d,e,f[2801],g;  

main()  
{  
for(;b-c;)  
  f[b++]=a/5;  
for(;d=0,g=c*2;c-=14,printf("%.4d",e+d/a),e=d%a)  
  for(b=c;d+=f[b]*a,f[b]=d%--g,d/=g--,--b;d*=b);  
}  

计算结果:  
31415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104543266482133936072602491412737245870066063155881748815209209628292540917153643678925903600113305305488204665213841469519415116094330572703657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566430860213949463952247371907021798609437027705392171762931......

阅读全文(2716) | 评论:0

诸葛亮写给儿子的信(2005-09-24 14:21:00)

摘要:   诸葛亮字孔明,琅琊(今山东省沂南县)人,是中国三国时代著名的政治家及军事家,也是古代著名的智者。诸葛亮写给儿子的一封信,只用了短短八十六字,但是对于为学、做人有精简而且具体的忠告。 一千八百多年前的智能,在今天的科技时代,原来仍然有其参考价值。年青时听人说:「真正的智能,可以超越时空,历久常新。」初时不知所以,现在觉得所言甚
是。让我们一起向诸葛亮老师学习十堂课,在变局中安身立命,在逆境中找到力量:
诸葛亮给子书
    夫君子之行,静以修身,俭以养德;非澹泊无以明志,非宁静无以致远。夫学须静也,才须学也;非学无以广才,非志无以成学。怠慢则不能励精,险躁则不能冶性。年与时驰,意与岁去,遂成枯落,多不接世。悲守穷庐,将复何及!
        *********************************************************
>> 第一课:宁静的力量

>> 「静以修身」、「非宁静无以致远」、「学须静也」。  诸葛亮忠告孩子宁静才能够修养身心,静思反省。不能够静下来,则不可以有效的计划未来,而且学习的首要条件,就是有宁静的环境。 现代人大多数终日忙碌,你是否应在忙乱中静下来,反思人生方向?

>> 第二课:节俭的力量

>> 「俭以养德」。
   诸葛亮忠告孩子要节俭,以培养自己的德行。审慎理财,量入为出,不但可以摆脱负债的困扰,更可以过着纪律的简朴生活,不会成为物质的奴隶。在鼓励消费的文明社会,你有否想过节俭的好处呢?

>> 第三课:计划的力量

>> 「非澹泊无以明志」、「非宁静无以致远」。
诸葛亮忠告孩子要计划人生,不要事事讲求名利,才能够了解自己的志向,要静 下来,才能够细心计划将来。面对未来,你有理想吗?你有使命感吗?你有自己的价值观吗?
>>第四课:学习的力量
「夫学须静也」、「才须学也」。
  ......

阅读全文(5078) | 评论:0

四个经典故事(2005-09-24 14:19:00)

摘要:1.误会:

  早年在美国阿拉斯加地方,有一对年轻人结婚,婚后生育,他的太太因难产而死,遗下一孩子。

  他忙生活,又忙于看家,因没有人帮忙看孩子,就训练一只狗,那狗聪明听话,能照顾小孩,咬着奶瓶喂奶给孩子喝,抚养孩子。

  有一天,主人出门去了,叫它照顾孩子。

  他到了别的乡村,因遇大雪,当日不能回来。第二天才赶回家,狗立即闻声出来迎接主人。他把房门开一看,到处是血,抬头一望,床上也是血,孩子不见了,狗在身边,满口也是血,主人发现这种情形,以为狗性发作,把孩子吃掉了,大怒之下,拿起刀来向着狗头一劈,把狗杀死了。

  之后,忽然听到孩子的声音,又见他从床下爬了出来,于是抱起孩子;虽然身上有血,但并未受伤。

  他很奇怪,不知究竟是怎么一回事,再看看狗身,腿上的肉没有了,旁边有一只狼,口里还咬着狗的肉;狗救了小主人,却被主人误杀了,这真是天下最令人惊奇的误会。

  注:误会的事,是人往往在不了解、无理智、无耐心、缺少思考、未能多方体谅对方,反省自己,感情极为冲动的情况之下所发生。

  误会一开始,即一直只想到对方的千错万错;因此,会使误会越陷越深,弄到不可收拾的地步,人对无知的动物小狗发生误会,尚且会有如此可怕严重的后果,这样人与人之间的误会,则其后果更是难以想象。

  2.钉子:

  有一个男孩有着很坏的脾气,于是他的父亲就给了他一袋钉子;并且告诉他,每当他发脾气的时候就钉一根钉子在后院的围篱上。

  第一天,这个男孩钉下了37根钉子。慢慢地每天钉下的数量减少了。他发现控制自己的脾气要比钉下那些钉子来得容易些。

  终于有一天这个男孩再也不会失去耐性乱发脾气,他告诉他的父亲这件事,父亲告诉他,现在开始每当他能控制自己的脾气的时候,就拔出一根钉子。

  一天天地过去了,最后男孩告诉他的父亲,他终于把所有钉子都拔出来了。

  父亲握着他的手来到后院说:你做得很好,我的好孩子。但是看看那些围篱上的洞,这些围篱将永远不能回复成从前。你生气的时候说的话将像这些钉子一样留下疤痕。如果你拿刀子捅别人一刀,不管你说了多少次对不起,那个伤口将永远存在。话语的伤痛就像真实的伤痛一样令人无法承......

阅读全文(1605) | 评论:0

8279可实现对键盘/显示的自动扫描(2005-09-15 12:38:00)

摘要:利用8279可实现对键盘/显示器的自动扫描,以减轻CPU负担,并具有显示稳定、程序简单、不会出现误动作等特点。
本系统中8279的状态/命令口地址位8701H;数据口地址位8700H。
 示例程序运行将显示"8279 --",并等待按键输入,将键值显示在数码管上(只响应0-F按键)。   源代码: Z8279   EQU     08701H  ;8279 状态/命令口地址
D8279   EQU     08700H  ;8279 数据口地址
LEDMOD  EQU     10H     ;右端输入 八位字符显示
                        ;外部译码键扫描方式,双键互锁
LEDFEQ  EQU     38H     ;扫描速率
LEDCLS  EQU     0D1H    ;清除
LEDWR0  EQU     80H     ;设定的将要写入的显示RAM地址         ORG     0000H
        AJMP    START
        ORG......

阅读全文(105) | 评论:0