摘要: 串行口工作之前首先应对其进行初始化,主要是设置产生波特率的定时器1,、串行口控制和中断控制。具体步骤如下:1.确定T1的工作方式(编程TMOD寄存器);2.计算T1的初值,装载TH1,TL1;3.启动T1(编程TCON中的TR1位);4.确定串行口控制(编程SCON寄存器);串行口在中断方式工作时,要进行中断设置(编程IE,IP寄存器) 阅读全文
posted @ 2012-03-20 20:42 StearArre 阅读(3130) 评论(0) 推荐(0) 编辑
摘要: 恍惚间三月已经过了大半,回顾自己的生活。。。 由于要学freescale,为了快速学习,就先学习的51单片机,因为51有郭天祥的教学视频,我找来鑫哥的一块板子,看完视频就对照着进行自我练习,由于跟郭天祥的板子电路设计不一样,所以我看完视频得理解透了才能对照鑫哥的板子写程序,这么一来二去倒也是好事儿。毕竟学习51之后会有点概念,学起来freescale应该也会顺手很多。。。 那么继续加油啦! 中间由于要参加那个重庆国际马拉松比赛,所以有那么几天一直都是沉不下心来,现在过去了,所以也该好好的学点东西了,还有,我的进度很慢很慢了!!!要快速了! 阅读全文
posted @ 2012-03-19 22:44 StearArre 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 程序如下:# include<stdio.h>int in(int elem,int s[],int size);void main(){ int x; int s[]={1,2,3,5,4,5}; x=in(2,s,6); printf("x=%d\n",x); }int in(int elem,int s[],int size){ for(int i=0;i<size;i++) if(elem==s[i]) return 0; return 1;}注意点:1、 子程序中,注意,for语句只是管到r... 阅读全文
posted @ 2012-03-19 22:43 StearArre 阅读(591) 评论(0) 推荐(0) 编辑
摘要: 这两天一直是迷迷糊糊的状态,不知道自己在干些什么,也没有学习的动力。。。是因为晚上睡得晚,还是因为什么。。。。不知道。。。啊啊啊啊啊啊啊啊 阅读全文
posted @ 2012-03-15 21:13 StearArre 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 本科生的话,建议做软件方向的嵌入式系统,即利用现有的芯片和操作系统(开源的非开源的都可以)进行开发。嵌入式没有竞争相对小的方向,不管你搞什么,今天无限风光,明天就有可能寄人篱下。希望楼主在选择之前首先端正一下态度,选择了电子工程师这条路,就没有“竞争小”这项选择。前途的话在个人,你要是真是个牛逼人物捡垃圾也能捡出不一样的精彩。 根据楼主本科生的情况,DSP还是不要碰了。这玩意单纯从编程角度来讲没有任何难度,其精髓在于你编程实现的算法.想把DSP用好,首先你将来从事的行业必须有大规模计算的需求,而且这种计算需求从某种程度上对时间要求比较高。比如通信,实时视频处理等方面。有些应用,比如地质数... 阅读全文
posted @ 2012-03-13 16:06 StearArre 阅读(2066) 评论(2) 推荐(1) 编辑
摘要: 今儿学习了动态数码管显示的知识,其实很简单,只要是首先让数码管逐个显示1,2,3,4...间隔1秒钟,用定时器0控制时间,未选也用一个table数组表示出来,然后减小间隔时间,我这用的是5ms显示效果不错,利用人眼的视觉暂留(<20ms),将东西完全显示在数码管上。 注意:如果在设计硬件电路时候,有雨动态显示数码管时候,亮度较静态显示时候低,所以,限流电阻应取小一些。(具体电路网上应该找得到) 调试经验如下: 1.若keil调试出现乱码,还有出现invalid ...path原因:(1)工程文件名是否存在中文,最好修改为英文;(2)程序文件中是否出现中文状态下的字符,建议自己编写,或.. 阅读全文
posted @ 2012-03-13 11:34 StearArre 阅读(6475) 评论(0) 推荐(1) 编辑
摘要: 51C 用循环作延时的程序比汇编不好写多了。它不能计算的,只能用逐一试验的方法。这里也作个1 秒延时的,用P1口输出,每秒求反一次。仿真中可看出每秒红或蓝电平切换一次。改ms参数,可以改动延时时间,当然也是不断试验出的。这另外2 个延时时间也是很有用的,3ms延时,可作为数码管显示中的防鬼影,10ms延时可作为按键防抖用,留着备用。#include <reg51.h>#define uint unsigned int#define uchar unsigned charvoid delayms(ms);void main (){ while(1) { delayms(10); // 阅读全文
posted @ 2012-03-12 23:13 StearArre 阅读(1413) 评论(0) 推荐(0) 编辑
摘要: 这是写的一个简单的测试定时器0的程序:要实现的目标是,LED第一个跟第二个灯先循环亮起,第三盏灯则以间隔一秒钟的时间亮起一次,其中,第三盏灯的亮起时间以定时器0的中断来执行,里边有亮点需要注意。一、不要忘记中断程序中进if语句中的后的tt清零二、不要忘了把定时器里边的语句回归哦,否则老是认为中断服务程序没返回主函数呢三、这个if语句不应写在主函数中,因为如果写在主函数中,时序会出现问题。因为如果在main函数中的话,前边的几个delay时间会与定时器定的准确时间产生时序问题,因为delay()的时间长,早过了20个tt时间了,所以会出现时序问题!四、另外,那个delay函数的时间也有问题,我还 阅读全文
posted @ 2012-03-12 19:39 StearArre 阅读(1159) 评论(0) 推荐(0) 编辑
摘要: 真的很郁闷,鼓捣了半天也没弄出来,郁闷哇。。。 阅读全文
posted @ 2012-03-12 15:05 StearArre 阅读(791) 评论(1) 推荐(0) 编辑