tag 标签: 单片机入门

相关博文
  • 热度 65
    2010-9-14 15:26
    9911 次阅读|
    45 个评论
    本人从事单片机相关工作多年,首先是从51系列单片机开始学习的。自己想把学习经验写下来,与大家共同探讨学习单片机的捷径。 具体如下: 1、学习电子技术基础知识,如电路、模拟电路和数字电路。这是学习电类相关专业的基础。 2、学习计算机硬件知识,如计算机的简单组成原理(只需要了解),当然要知道CPU是什么?总线是什么?一些相关概念。 3、程序编写的相关知识,主要是汇编语言和C语言。了解结构化语言的程序设计方法,也就是三种结构(顺序结构、分支结构(或称选择结构)、循环结构),会一些常用的算法。 4、以上是基础,有了这些基础,学习51单片机就只要花几周的时间就能上手。但学习单片机时,主要从单片机的存储器开始,其中特殊功能寄存器是重点,学会之后,就可以学习单片机的基础部分了,主要是四个部分:51单片机I/O口的使用、中断的使用、定时器的使用、外部器件的扩展。这些部分都可以用软件仿真(可以用proteus软件)。 5、可以买一两块廉价的单片机开发板,用廉价的方法(可以用热转印法做PCB板)仿制一些更简单的实验功能板,开始做板时千万不做得太复杂,我带过的很多学生中,有少部分人总是觉得太简单了,做个复杂的,结果做了个把星期,没有成功,最后只有放弃。还有一点很重要,就是用PROTEUS仿真时,最好只做单一功能的仿真,否则可能与实际在硬件上做的结果不一样。 6、从网上下载一些实例进行研究学习,不断提高。
  • 热度 18
    2010-9-6 09:15
    4826 次阅读|
    2 个评论
                   很多初学单片机者往往对C51的头文件感到很神秘,而为什么要那样写,甚至有的初学者喜欢问,P1口的P为什么要大写,不大写行不行呢?其实这样的问题,看过本文后,就会明白。其实这个是在头文件中用sfr定义的,现在定义好了的是这样的sfr P1           = 0x90;,也就是说,到底大写,还是小写,就是在这里面决定的。这就说明,如果你要用小写,就得在头文件中改为小写。其实它都是为了编程序方便才这样写的,在程序编译时,就会变成相应的地址(如P1就变成了0x90)。                 还有一点就是,现在有很多改进型的单片机,它们有很多新增的特殊功能寄存器在标准的reg51.h或reg52.h中没有定义,这就需要自己加进头文件(相关厂家已经把它们定义好了),当然也可以直接在程序中定义。下面是一个标准的C51头文件: /*         BYTE Registers         */ sfr P0           = 0x80; sfr P1           = 0x90; sfr P2           = 0xA0; sfr P3           = 0xB0; sfr PSW          = 0xD0; sfr ACC          = 0xE0; sfr B            = 0xF0; sfr SP           = 0x81; sfr DPL          = 0x82; sfr DPH          = 0x83; sfr PCON         = 0x87; sfr TCON         = 0x88; sfr TMOD         = 0x89; sfr TL0          = 0x8A; sfr TL1          = 0x8B; sfr TH0          = 0x8C; sfr TH1          = 0x8D; sfr IE           = 0xA8; sfr IP           = 0xB8; sfr SCON         = 0x98; sfr SBUF         = 0x99; /*         8052 Extensions         */ sfr T2CON         = 0xC8; sfr RCAP2L = 0xCA; sfr RCAP2H = 0xCB; sfr TL2           = 0xCC; sfr TH2           = 0xCD; /*         BIT Registers         */ /*         PSW         */ sbit CY           = PSW^7; sbit AC           = PSW^6; sbit F0           = PSW^5; sbit RS1          = PSW^4; sbit RS0          = PSW^3; sbit OV           = PSW^2; sbit P            = PSW^0; //8052 only /*         TCON         */ sbit TF1          = TCON^7; sbit TR1          = TCON^6; sbit TF0          = TCON^5; sbit TR0          = TCON^4; sbit IE1          = TCON^3; sbit IT1          = TCON^2; sbit IE0          = TCON^1; sbit IT0          = TCON^0; /*         IE         */ sbit EA           = IE^7; sbit ET2          = IE^5; //8052 only sbit ES           = IE^4; sbit ET1          = IE^3; sbit EX1          = IE^2; sbit ET0          = IE^1; sbit EX0          = IE^0; /*         IP         */ sbit PT2          = IP^5; sbit PS           = IP^4; sbit PT1          = IP^3; sbit PX1          = IP^2; sbit PT0          = IP^1; sbit PX0          = IP^0; /*         P3         */ sbit RD           = P3^7; sbit WR           = P3^6; sbit T1           = P3^5; sbit T0           = P3^4; sbit INT1         = P3^3; sbit INT0         = P3^2; sbit TXD          = P3^1; sbit RXD          = P3^0; /*         SCON         */ sbit SM0          = SCON^7; sbit SM1          = SCON^6; sbit SM2          = SCON^5; sbit REN          = SCON^4; sbit TB8          = SCON^3; sbit RB8          = SCON^2; sbit TI           = SCON^1; sbit RI           = SCON^0; /*         P1         */ sbit T2EX         = P1^1; // 8052 only sbit T2           = P1^0; // 8052 only               /*         T2CON         */ sbit TF2           = T2CON^7; sbit EXF2          = T2CON^6; sbit RCLK          = T2CON^5; sbit TCLK          = T2CON^4; sbit EXEN2         = T2CON^3; sbit TR2           = T2CON^2; sbit C_T2          = T2CON^1; sbit CP_RL2 = T2CON^0;
相关资源