最新日志

发表于:2008-6-12 19:29:40
标签:无标签

0

AVR TWI实验

点击下载实验代码

从PC机转向单片机编程,很多的细节是需要积累的,很多都是很常识性的错误。本次TWI是挺有收获的,主要有下:
一、单片机的初始化:本次主要是端口的读写状态没做好,因为I2CSDA和I2CSCL与PORTD的PD0、PD1是复用的,没有对DDRD初始化为写。
二、暂停:对于并口的读写往往需要个shortdelay;对于串口当然时间要更长了,本次实验没有充分考虑暂停时间,因而在实验中一度出现错写入、错读出。对于暂停时间的适当选择目前还比较乱。
三、错误理解:TWI读出时的当前地址是要在写的状态下确定,然后才能进入读状态。

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 原创

评论(0) | 阅读(76)
发表于:2008-5-7 22:51:38
标签:C51  指令系统  

0

C51指令系统学习笔记(个人收藏无点击价值)

点击下载

花了一下午看了下C51指令,基本能掌握!

用PPT做笔记效果很好,唯进度慢了点!

点击此处查看原文 >>

系统分类: 单片机   |    用户分类:    |    来源: 整理

评论(0) | 阅读(140)
发表于:2008-4-22 21:00:34
标签:C程序,交换两个数,技巧,SWAP  

1

这样交换两个数,妙!

/*

怎样把两个数交换?
这个问题太菜了,脑中或许一下就出现了代码
void swap1(int *a,int *b)
{
 int temp;
 temp=*a;
 *a=*b;
 *b=temp;
}
很好,的确交换了位置,可是我还有个问题
如果没有临时变量,能做到吗?
可能你会绞尽脑汁想到
void swap2(int *a,int *b)
{
 *a=*a+*b;
 *b=*a-*b;
 *a=*a-*b;
}
很不错,当然在两个数不是很大是可以
如果考虑溢出,好像美很有点缺憾
不过我这还有一种方法
void swap3(int *a,int *b)
{
 *a=*a^*b;
 *b=*a^*b;
 *a=*a^*b;
}
"^"这是什么?异或呀!
哦,太妙了,好像没什么问题了
我们应该记住方法三
不要把方法一在脑中固化!!

*/
/******************实验例程********************/
#include
void swap1(int *a,int *b)
{
 int temp;
 temp=*a;
 *a=*b;
 *b=temp;
}
void swap2(int *a,int *b)
{
 *a=*a+*b;
 *b=*a-*b;
 *a=*a-*b;
}
void swap3(int *a,int *b)
{
 *a=*a^*b;
 *b=*a^*b;
 *a=*a^*b;
}
int main()
{
 int a="123",b=321;
 swap1(&a,&b);
 printf("a=%d,b=%d",a,b);
 swap2(&a,&b);
 printf("a=%d,b=%d",a,b);
 swap3(&a,&b);
 printf("a=%d,b=%d",a,b);
 return 0;
}

 

点击此处查看原文 >>

系统分类: 软件开发   |    用户分类:    |    来源: 原创

评论(1) | 阅读(178)
发表于:2008-4-20 15:57:47
标签:写软盘镜像,C++  

1

写软盘镜像文件

点击下载

开发时如果要使用虚拟机,就不可避免要创建软盘镜像!

这是我用C++写的一个创建软盘镜像的工具(含源程序)

点击此处查看原文 >>

系统分类: 软件开发   |    用户分类:    |    来源: 原创

评论(0) | 阅读(318)
发表于:2008-4-20 15:53:57
标签:C++,十六进制查看器  

1

十六进制查看器

点击下载

这是我以前用C++仿写的一款十六进制查看器!(含源程序)

要用命令行,所以使用批处理文件能很方便地查看到一个文件

(例如软盘镜像文件)的十六进制代码布局。

点击此处查看原文 >>

系统分类: 软件开发   |    用户分类:    |    来源: 原创

评论(0) | 阅读(253)
发表于:2008-4-14 23:29:50
标签:无标签

1

嵌入式软件优化的例子

点击下载

这篇文章很不错,极力推荐!

点击此处查看原文 >>

系统分类: 软件开发   |    用户分类:    |    来源: 无分类

评论(0) | 阅读(215)
发表于:2008-4-10 0:37:10
标签:C,暂停,技巧  

3

C语言中的暂停

很多C语言初学者的调试时,往往没看到结果程序就退出了,据我所知的方法主要有以下几种

方法一:
#include <dos.h>
int main()
{
system("pause");//利用了DOS命令
return 0;
}

方法二:
#include  <stdio.h>
int main()
{
getchar();//须按回车键结束,不是任意键
return 0;
}

方法三:
#include <conio.h>
int main()
{
getch();//按任意键退出
return 0;
}

方法四:
#include <conio.h>
int main()
{
while(!kbhit());//可以用其它的循环

return 0;
}

方法五:增加断点,只适用于调试

==============================

还有吗?请留言告诉我!

点击此处查看原文 >>

系统分类: 软件开发   |    用户分类:    |    来源: 原创

评论(0) | 阅读(275)
总共 , 当前 /