当前位置:首页 > 云服务器 > 正文内容

51单片机(一)——总览,adam,embedded的博客 - 皇冠云

来源于网络2个月前 (05-20)云服务器1
香港256IP千兆站群服务器BGP专线240元起! 华为云香港物理机精品线路全面上线![特价] 企业级CN2 GIA双程专线高速回国 T3机房 香港美国韩国海外独立物理服务器特价热销中!

一、前言

之前花了一点时间阅读了编译器sdcc的man文档,算是对这款交叉编译器有了基本的了解。但要写重新写单片机程序,还要对相应的知识做进一步的复习。下面我将阅读芯片的datasheet和application guide,结合一些实际的应用,对单片机的知识进行复习。我开发板上的芯片是stc90c51,不同型号的51芯片可能会略有差异。

二、外围电路

要使单片机正常工作,需要在VCC脚上给予5v/3.3v的电压,将GND脚接地。为了滤波 ,VCC和GND之间接两个电容。XTAL上接一个外部振荡器,RST脚上接外部复位电路。

虽然这些都已经标准化,无关编程。但在某些特殊情况下(比如晶振、稳压芯片坏了,虚焊等等),需要配合示波器等作出硬件故障的排除,就需要检查外围电路的工作状态。

三、片内资源

3.1 特殊功能寄存器&相关模块

这里贴一下sdcc下c51通用的头文件。可以清晰得看到控制GPIO,定时器,中断,串口的相关寄存器。

#ifndef REG8051_H#define REG8051_H/*  BYTE Register  */__sfr __at (0x80) P0   ;__sfr __at (0x81) SP   ;__sfr __at (0x82) DPL  ;__sfr __at (0x83) DPH  ;__sfr __at (0x87) PCON ;__sfr __at (0x88) TCON ;__sfr __at (0x89) TMOD ;__sfr __at (0x8A) TL0  ;__sfr __at (0x8B) TL1  ;__sfr __at (0x8C) TH0  ;__sfr __at (0x8D) TH1  ;__sfr __at (0x90) P1   ;__sfr __at (0x98) SCON ;__sfr __at (0x99) SBUF ;__sfr __at (0xA0) P2   ;__sfr __at (0xA8) IE   ;__sfr __at (0xB0) P3   ;__sfr __at (0xB8) IP   ;__sfr __at (0xD0) PSW  ;__sfr __at (0xE0) ACC  ;__sfr __at (0xF0) B    ;/*  BIT Register  *//* P0 */__sbit __at (0x80) P0_0 ;__sbit __at (0x81) P0_1 ;__sbit __at (0x82) P0_2 ;__sbit __at (0x83) P0_3 ;__sbit __at (0x84) P0_4 ;__sbit __at (0x85) P0_5 ;__sbit __at (0x86) P0_6 ;__sbit __at (0x87) P0_7 ;/*  TCON  */__sbit __at (0x88) IT0  ;__sbit __at (0x89) IE0  ;__sbit __at (0x8A) IT1  ;__sbit __at (0x8B) IE1  ;__sbit __at (0x8C) TR0  ;__sbit __at (0x8D) TF0  ;__sbit __at (0x8E) TR1  ;__sbit __at (0x8F) TF1  ;/* P1 */__sbit __at (0x90) P1_0 ;__sbit __at (0x91) P1_1 ;__sbit __at (0x92) P1_2 ;__sbit __at (0x93) P1_3 ;__sbit __at (0x94) P1_4 ;__sbit __at (0x95) P1_5 ;__sbit __at (0x96) P1_6 ;__sbit __at (0x97) P1_7 ;/*  SCON  */__sbit __at (0x98) RI   ;__sbit __at (0x99) TI   ;__sbit __at (0x9A) RB8  ;__sbit __at (0x9B) TB8  ;__sbit __at (0x9C) REN  ;__sbit __at (0x9D) SM2  ;__sbit __at (0x9E) SM1  ;__sbit __at (0x9F) SM0  ;/* P2 */__sbit __at (0xA0) P2_0 ;__sbit __at (0xA1) P2_1 ;__sbit __at (0xA2) P2_2 ;__sbit __at (0xA3) P2_3 ;__sbit __at (0xA4) P2_4 ;__sbit __at (0xA5) P2_5 ;__sbit __at (0xA6) P2_6 ;__sbit __at (0xA7) P2_7 ;/*  IE   */__sbit __at (0xA8) EX0  ;__sbit __at (0xA9) ET0  ;__sbit __at (0xAA) EX1  ;__sbit __at (0xAB) ET1  ;__sbit __at (0xAC) ES   ;__sbit __at (0xAF) EA   ;/*  P3  */__sbit __at (0xB0) P3_0 ;__sbit __at (0xB1) P3_1 ;__sbit __at (0xB2) P3_2 ;__sbit __at (0xB3) P3_3 ;__sbit __at (0xB4) P3_4 ;__sbit __at (0xB5) P3_5 ;__sbit __at (0xB6) P3_6 ;__sbit __at (0xB7) P3_7 ;__sbit __at (0xB0) RXD  ;__sbit __at (0xB1) TXD  ;__sbit __at (0xB2) INT0 ;__sbit __at (0xB3) INT1 ;__sbit __at (0xB4) T0   ;__sbit __at (0xB5) T1   ;__sbit __at (0xB6) WR   ;__sbit __at (0xB7) RD   ;/*  IP   */__sbit __at (0xB8) PX0  ;__sbit __at (0xB9) PT0  ;__sbit __at (0xBA) PX1  ;__sbit __at (0xBB) PT1  ;__sbit __at (0xBC) PS   ;/*  PSW   */__sbit __at (0xD0) P    ;__sbit __at (0xD1) F1   ;__sbit __at (0xD2) OV   ;__sbit __at (0xD3) RS0  ;__sbit __at (0xD4) RS1  ;__sbit __at (0xD5) F0   ;__sbit __at (0xD6) AC   ;__sbit __at (0xD7) CY   ;/* BIT definitions for bits that are not directly accessible *//* PCON bits */#define IDL             0x01#define PD              0x02#define GF0             0x04#define GF1             0x08#define SMOD            0x80/* TMOD bits */#define T0_M0           0x01#define T0_M1           0x02#define T0_CT           0x04#define T0_GATE         0x08#define T1_M0           0x10#define T1_M1           0x20#define T1_CT           0x40#define T1_GATE         0x80#define T0_MASK         0x0F#define T1_MASK         0xF0/* Interrupt numbers: address = (number * 8) + 3 */#define IE0_VECTOR      0       /* 0x03 external interrupt 0 */#define TF0_VECTOR      1       /* 0x0b timer 0 */#define IE1_VECTOR      2       /* 0x13 external interrupt 1 */#define TF1_VECTOR      3       /* 0x1b timer 1 */#define SI0_VECTOR      4       /* 0x23 serial port 0 */#endif

3.2 内部Ram&Rom

最初的51单片机有128byte的片内Ram和4K的片内的Rom,现在的51单片机可以有1K的片内Ram和64K片内的Rom。至于如何选择芯片型号要根据项目的实际需要和成本,参考选型指南、供应市场的具体情况作出。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/adam_embedded/article/details/45842023

宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取

扫描二维码推送至手机访问。

版权声明:文章来源于互联网公开页面遵守互联网分享协议,若涉及侵权请联系客服处理。

本文链接:https://www.idchg.com/info/201082/

分享给朋友:

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。