2013年6月28日

Scilab

摘要: 与MATLAB类似,SCILAB也是一种科学工程计算软件,语法与MATLAB非常接近,并且SCILAB提供的语言转换函数可以自动将用MATLAB语言编写的程序翻译为SCILAB语言。不过它的大小要比巨无霸MATLAB小了不少,官网上最新的Linux下用的scilab-5.4.1也只有170多M,而且... 阅读全文

posted @ 2013-06-28 20:58 奥特曼 阅读(767) 评论(0) 推荐(0) 编辑

2013年3月28日

volatile关键字的使用

摘要: 先来看我不久前遇到的avr studio 6.0中的一个问题:我手上有一块atmega128开发板,我想要通过设置定时器1来实现间隔1s控制LED灯呈现不同花样的效果,于是,我写下了下面的代码:/***********************************描述:利用定时器1进行1s的计数,... 阅读全文

posted @ 2013-03-28 13:31 奥特曼 阅读(386) 评论(0) 推荐(0) 编辑

2012年12月31日

谈谈FFT有何用

摘要: FFT(快速傅里叶变换)是数字信号处理的经典算法,学过DSP或者芯片设计的人大多知道这个算法。但是,大家是否想过,为什么数字信号处理会有那么多FFT呢?有人会说,为了分析信号的频谱。那么下边的问题就是,分析频谱对我们的日常需求,比如手机打电话,雷达测量速度和方向等等一些与实际需求有什么联系?为什么FFT如此重要?本文举一些简明的例子,阐释一下FFT到底有什么用。先回忆一下FFT是什么。上世纪70年代之前,我们主要通过模拟电路来进行信号处理,比如大家熟悉的用二极管和电容进行AM调制信号的包络检波一样,随着数字系统的普及,我们可以用处理器或者数字电路更为精确的处理信号,比如我们做AM检波,实际上可 阅读全文

posted @ 2012-12-31 11:40 奥特曼 阅读(1962) 评论(0) 推荐(0) 编辑

2012年11月3日

IDE86汇编语言环境使用

摘要: IDE86是一款汇编语言编译,调试,运行的IDE环境。当然,从现在的角度看,它的界面并不友好,看上去也比较水,不过毕竟是上世纪80年代的东西了,水就水吧。。。下面就是集成环境刚启动后的样子。IDE86可以用来写汇编程序,不过界面不是太好,所以还是自己找个别的文本编辑器来用吧。我用的是Notepad++,有语法高亮功能,这样就能在一定程度上帮助我们编写指令了。注意文件的后缀名为.asm即可。比如,我们编写了一个给内存初始化的程序EX1.asm,现在想要编译运行,就先选择Compile(编译)选项(这里的选择是不能够用鼠标的,只能通过光标的上下移动来进行),只要在冒号后面输入自己的汇编文件名即可, 阅读全文

posted @ 2012-11-03 11:30 奥特曼 阅读(760) 评论(0) 推荐(0) 编辑

2012年10月22日

Robotics ToolBox机械臂仿真

摘要: 选修实验要求研究一下Robotics ToolBox,好不容易在网上找到一些参考资料,没想到新的工具箱中许多函数都有变化了,只好硬着头皮看Lecture Notes了,好不容易憋出了几行程序%第一个机器人模型%6个旋转关节%xmfbitclear L1 L2 L3 L4 L5 L6 R qz qr ... 阅读全文

posted @ 2012-10-22 20:25 奥特曼 阅读(508) 评论(0) 推荐(0) 编辑

2012年9月28日

如何走好后面的路

摘要: 新学期的开始,无疑是够郁闷的,发生了一系列让人抓狂的事情,一再折磨自己。今天成绩公布,果不其然,自己的成绩被其他人无情地爆出翔来了,排名下降很多,创下了自己的排名最差纪录······其实,我不会太看重成绩,作为一名工科学生,我想比卷面上的学习成绩更重要的是自己从大学几年的基础课也好,专业课也好,学到的解决工程实践问题的能力,能够把自己脑中所想的设计变为现实,带来技术的进步,自己有很好的工作,为社会做出一个公民应该有的贡献。但是,显然,自己的实践能力也不怎么样。半途而废,似乎是自己现在最大的问题。现在的自己,遇到什么事情,不能够静下心来 阅读全文

posted @ 2012-09-28 20:40 奥特曼 阅读(172) 评论(0) 推荐(0) 编辑

2012年8月24日

51单片机液晶显示计时器

摘要: 要想实现人机交互,显示装置是不可缺少的。前面讲到了如何利用单片机控制数码管的显示,这篇文章主要关于如何控制液晶显示,并在此基础上加上定时器的功能,把原来已用数码管显示的定时器搬到液晶屏上来。这里用到的液晶为LCD1602,能够同时显示16x02即32个字符(16列2行)。1602液晶模块内部的字符发... 阅读全文

posted @ 2012-08-24 13:01 奥特曼 阅读(634) 评论(0) 推荐(1) 编辑

2012年8月23日

C#串口通信程序SerialPort类

摘要: 上篇文章主要是关于串口通信中单片机部分的程序编写。在实际应用中,常常还要有上位机的配合才能完成工作。写串口通信的上位机程序,常常应用的编程语言有C++,VB,C#等。VB没有学过,C++编写窗口应用程序接触也不多,暑假自己看了一些C#的书,也有了一些了解,所以就用C#写窗口应用程序,用来作上位PC机的串口通信程序。在写的过程中,主要参见了这篇博客http://blog.csdn.net/wuyazhe/article/details/5598945,感谢这位博主。C#中的串口通信编程主要用到了SerialPort类,它位于命名空间System.IO.Ports下,所以在程序开始要包含这个命名空 阅读全文

posted @ 2012-08-23 11:57 奥特曼 阅读(889) 评论(0) 推荐(0) 编辑

2012年8月22日

51单片机和PC串口异步通信(续)

摘要: 上一篇文章主要罗列了一些编写串口通信必要的知识点。在具体的编程中,还有很多要注意的地方。下面的程序的主要功能为:通过串口调试助手向51单片机发送一个字母,单片机接收后,在数码管上显示这个字母,并将这个字母反向显示到串口调试助手的界面里。51单片机的头文件中已经定义了串口缓冲区等一系列特殊功能寄存器,打开头文件就可以找到下面这样的定义:sfr SCON = 0x98;sfr SBUF = 0x99;等等。首先新建立一个头文件,将程序中要用到的变量和函数声明写进去:#include <reg52.h>#include <ctype.h>#define uchar unsig 阅读全文

posted @ 2012-08-22 16:53 奥特曼 阅读(432) 评论(0) 推荐(0) 编辑

51单片机和PC串口异步通信

摘要: 单片机和PC机间的通信有很多方式,下面的程序主要用到的是51单片机的异步串行通信。一.51单片机的串行通信管脚P3.1为单片机的TXD管脚(Transfer Data),P3.2为单片机的RXD管脚(Receive Data)。通过TXD管脚可以将CPU要发送的数据输出,RXD管脚可以将串行数据线传... 阅读全文

posted @ 2012-08-22 00:20 奥特曼 阅读(604) 评论(0) 推荐(0) 编辑

导航