微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 学习单片机的日记

学习单片机的日记

时间:11-30 来源:互联网 点击:
经历了大一上学期我觉得大学其实好坏不在于学校而是在于个人,学校之间的差距只是在于可利用的教学资源以及环境,最重要的还是自己。个人觉得我大一要学的课程真正有用的不多,现在我是电子信息工程的一名大学生,大一所学课程有高数,大学物理,英语,体育,近代史,思修,大学物理实验,电路分析,C语言。呵呵,只有C语言,电路,高数,英语有用。其他科目我只是应付下考试,不会真心去学,因为没有兴趣。兴趣是最好的老师,没有它我觉得做什么事情都毫无意义,这就是我这个人的怪癖。利用所有闲下来的时间我准备学习单片机,单片机虽然是大二下学期的内容但我觉得它至关重要。

为什么我们要学习单片机呢?他是个什么东西呢?单片机就是一块集成芯片,但这块集成芯片具有一些特殊的功能,而它的功能的实现要靠我们使用者自己来编程完成。我们编程的目的就是控制这块芯片的各个引脚在不同时间输出不同的电平(高电平或低电平),进而控制与单片机各个引脚相连接的外围电路的电气状态。编程时我们就需要C语言,这是最快捷的编程方法。学习单片机不要一开始就翻书死学,学习他的内部结构,这样你怎么也学不好,而是要一开始就编程,在编程的过程中了解到它的内部结构,所以说C语言的学习是很关键的。很多同学都会说C语言好无聊,你是你不懂他最后有什么用处,只要你在学习C语言的过程中一同学习单片机,你会发现很多乐趣与成就感,因为兴趣是最好的老师。并不要害怕单片机,不要以为需要很多知识才可以驾驭它,它虽然关系到数字电路以及模拟电路的知识(大二上学期学),但是涉及的还是不多,最主要的还是C语言的运用。忘了说单片机的前景,现在所有电子产品与设备几乎全都涉及到单片机,经常是核心,所以学好它对就业以及未来有很好的发展。
那如何来学习单片机呢?学习单片机之前你需要一块开发板,51单片机开发板。在淘宝上就可以买到,一开始不要买有很多系统的,什么嵌入式系统,AVR,ARM等等。咱们先学好51单片机,不急不急。价格在100左右就行,我买的开发板是东流电子的开发板,163(包括了彩屏,以及AVR),大家可以试试郭天祥开发板,不错的。大家买完开发板肯定有附带光盘教学视频资料,但我还建议可以看网上的郭天祥十天学习单片机的视频,讲述的很不错。
大家利用好现在的大学时光,它不是一个娱乐轻松的场所,而是为将来打拼做准备的场所。有很多人会说对自己专业没兴趣,那我劝告下赶快去转专业,别浪费时光。还有你以为谁天生就对什么有兴趣,那都是要靠自己探索培养的,要多多想想自己的将来,四年是学习的时间,你可以让这四年让你变成金。还有说下我这个专业的同志们,电子信息专业是很好就业的,哪里没有电子的身影,但学好才可以成功。
单片机的学习内容;
1首先你要掌握keil软件的运用,它是编程的环境2.学习以下实验(流水灯的控制,数码管的显示原理和实现键盘检测原理,AD工作原理定时器计数器,中断系统,串行口运用,等等)这些郭天祥都会讲到。今天写到这里,我去学单片机了。。。。。。
三月30日:今天是利用定时器0和1以及中断系统控制数码管以及流水灯;

#include

#include

#define uint unsigned int

#define uchar unsigned char

sbit dula=P3^7;

sbit wela=P2;

uchar temp,t0,t1,flag1,bai,shi,ge,flag;

uint shu;

void init();

void delay(uint z);

void display(uchar aa,uchar bb,uchar cc,uchar bai ,uchar shi,uchar ge);

uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,

0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76,0x79,0x38,0x3f};

void main()

{

init();

while(1)

{

if(flag1!=1)

display(7,6,5,bai,shi,ge);

else

display(16,17,18,18,19,20);

}

}

void init()

{

shu=432;

temp=0xfe;

P0=temp;

TMOD=0x11;

TH0=0x4c;

TL0=0x00;

TH1=0x4c;

TL1=0x00;

EA=1;

ET0=1;

ET1=1;

TR0=1;

TR1=1;

}

void timer0() interrupt 1

{

TH0=0x4c;

TL0=0x00;

t0++;

if(flag!=1)

{

if(t0==10)

{

t0=1;

temp=_crol_(temp,1);

P0=temp;

}

}

else

{

if(t0%4==0)

{

P0=~P0;

if(t0==60)

TR0=0;

P0=0xff;

flag1=1;

}

}

}

void timer1() interrupt 3

{

TH1=0x4c;

TL1=0x00;

t1++;

if(t1=2)

{

t1=0;

shu--;

bai=shu/100;

shi=shu%100/10;

ge=shu%10;

if(shu==398)

{

TR0=0;

TH0=0x4c;

TL0=0x00;

TR0=1;

flag=1;

t0=0;

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top