51单片机(一)——总览,adam,embedded的博客 - 皇冠云
香港256IP千兆站群服务器BGP专线240元起!
华为云香港物理机精品线路全面上线![特价]
企业级CN2 GIA双程专线高速回国 T3机房
香港美国韩国海外独立物理服务器特价热销中! 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
一、前言
之前花了一点时间阅读了编译器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元礼包,点我领取
- 随机文章
- 热门文章
- 热评文章
- C#使用win32 api sendmessage怎么发送鼠标消息到窗体?
- 玩转云端(云服务器使用详解)
- 深度学习-深度学习集群管理方案
- 百度云远程连接自己的云服务器,
- Linux-系统运维监控工具-开源监控产品1
- 邮箱POP3及SMTP服务器地址大全
- Win10 IIS Web服务器安装与配置
- NAS服务器和文件服务器区别