tag 标签: 单片机学习方法

相关博文
  • 热度 18
    2010-9-6 09:15
    4829 次阅读|
    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;
  • 热度 12
    2010-9-6 09:09
    2217 次阅读|
    0 个评论
                     想说说关于max232的几点注意:             1、max232是电平转换电路,232电平的高电平是-15伏到-3伏,低电平是+3伏到+15伏,TTL电平的高电平的理想值是+5伏,低电平是0伏。因此接口时要转换。             2、max232旁边的四个电容是什么作用呢? 是倍压的(升压的) , 也就是说和芯片一起共同作用把电压从+5伏变到+10伏,负的变到-10。要注意 很多 教材 上都说是抗干扰的,错了.如有疑问请参考原版的生产厂家的英文资料max232.pdf.             3、如果是3伏的工作电压,电平能不能转换,当然可以。可以把正电压倍到+6伏,把负的变到-6伏。只要是串口线不太长,就可以工作。当然也有本来就是3伏工作电压的232芯片。              4、波特率越低,传输的距离越远,最长有人做到300米长,还能正常工作。              5、max232很廉价,就是传输速度不是太快,但在大部分情况下就够用了。               6、上位机界面用VB的mscomm控件,就很容易。