原创 8脚51单片机介绍及头文件-STC15F104E

2011-2-15 15:16 11028 0 3 分类: MCU/ 嵌入式

上次买芯片无意间发现STC也有8个脚的单片机,在我印象中貌似只有ATMEAG有8只脚的。于是乎买了几个回来,今天下了手册研究以下。再次将心得写出来

STC的8脚单片机有直插和SOP两种形式的封装,其中有6个IO口,剩下2个是VCC和GND ,不需要带晶振内部自带有时钟发生电路,在此要说明这种型号的单片机有专用的烧录软件,在宏晶官网都有下载。这6个IO口实际上是我们普通单片机上的P3口,实际编程时也是使用P3.X来实现IO口操作。唯一的不同就是没有硬件的串口,需要用到定时器来模拟(这点不好),但是下载电路和STC的串口下载电路时一样的。不做修改。这个有点费解?下载时用到的是串口形式的下载电路,硬件上使用时却没有串口。杯具啊!

关于IO口的复用功能,除P3.1没有复用功能外,其他引脚均有复用功能。分别是5个外部中断,3个时钟输出,一个复位输入 。芯片默认是不需要复位电路的,上电自复位的。可以通过软件来选择引脚作为复位脚。同时在烧录软件上可以选择低压复位。手册上说的是8种。软件上只显示了6种-不解???让人惊喜的是烧录软件上提供硬件开启看门狗功能。还可以选择看门狗分频级数。还是蛮方便的嘛。。。程序又少了几句话 。最后要说一点的是该种单片机以E结尾的都有EEPROM喔。例如我买的STC15F104E。

有了这种小的单片机,大家以后做点简单的玩意也不拍浪费了。好东西。支持一下!特附上修改过的STC15F04E头文件

/*
STC15F104E单片机特殊功能寄存器头文件
*/
#ifndef __REG52_H__
#define __REG52_H__

/*  BYTE Registers  */

sfr P3    = 0xB0;
sfr PSW   = 0xD0;
sfr ACC   = 0xE0;
sfr B     = 0xF0;
sfr SP    = 0x81;
sfr DPL   = 0x82;
sfr DPH   = 0x83;
/*
BIT5 LVDF 低压检测标记位 只要VCC小于芯片门槛电压 自动置1 需软件清0 同时也是低压检测中断标记位
BIT1 PD 为1进入掉电模式  硬件清0
BIT0 IDL 为1进入空闲模式 硬件清0
*/
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;

/*  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 ELVD  = IE^6; //低压检测中断
sbit ET1   = IE^3;
sbit EX1   = IE^2;
sbit ET0   = IE^1;
sbit EX0   = IE^0;

/*  IP  */
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;
/*IO口的设置寄存器
 四种模式
 P3M0 P1M1
 0      0    与普通的IO口一样
 0      1    设置为强推挽模式
 1      0    设置为高阻输入模式
 1      1    设置为高漏输出模式
*/

sfr P3M0=0XB2;
sfr P3M1=0XB1;
/*
AUXR寄存器
BIT7 T0X12 定时器0速度为传统12倍
BIT6 T1X12 定时器1速度为传统12倍
*/
sfr AUXR=0X8E;//不可以位寻址的
/*
CLK_DIV
时钟分频寄存器控制系统时钟的分频数。12倍速单片机上电默认是不分频的
0 0 0-晶振时钟
0 0 1-晶振时钟/2
0 1 0-晶振时钟/4
。。。。依次类推
*/
sfr CLK_DIV=0X97;


/*
内部时钟输出
IRC_CLK0 BIT7 EN_IRCO 使能时钟输出
   BIT3 DIVIRCO 为1使能内部2分频
*/
sfr IRC_CLKO=0XBB;
/*
外部中断使能和时钟输出寄存器
INT_CLKO
BIT6 EX4 外部中断4使能   16 中断向量号
BIT5 EX3 外部中断3使能   11 中断向量号
BIT4 EX2 外部中断2使能   10 中断向量号  
BIT1 T1CLKO 允许P3.4管脚输出时钟  输出时钟频率由相应的定时器重装值来决定
BIT0 T0CLKO 允许P3.5管脚输出时钟
输出时钟频率=(sys_clk)/((256-TH0)*24)  工作在定时器方式28位自动重装模式下
*/
sfr INT_CLKO=0X8F;

/*
ISP/IAP控制寄存器
BIT7 IAPEN IAP操作使能
BIT6 SWBS 为1从ISP启动区启动 为0从用户应用程序区启动
BIT5 SWRST 为1产生软件复位
BIT4 CMD/FAIL ISP不成功该位置1
BIT2/1/0
*/
sfr IAP_CONTR=0XC7;
/*
看门狗控制寄存器
WDT_CONTR
BIT7 WDT_FLAG 看门狗溢出标记
BIT5 EN_WDT 看门狗允许位
BIT4 CLR_WDT 清看门狗 为1看门狗计数值清零
BIT3 IDLE_WDT 为1在空闲模式下看门狗仍然工作
BIT2/1/0看门狗溢出时间选择
可硬件启动看门狗
*/
sfr WDT_CONTR=0XC1;

#endif

文章评论3条评论)

登录后参与讨论

huijianc_887927708 2011-10-2 11:13

单片机开发,程序设计,价格便宜,有需要请联系. QQ:420649048 专供商业级8脚,14脚,工业级,8脚,20脚单片机.

芯际争霸 2011-2-15 19:15

价格在2块钱左右吧,NXP也有啊,还真不知道...受教了...

popctrl 2011-2-15 17:13

弱弱地问一下:该款51什么价位呢? 貌似NXP,MICROCHIP都有8脚的MCU。
相关推荐阅读
芯际争霸 2011-03-31 18:32
新塘Cortex-M0武汉站培训见闻感受
今天受供应商邀请去参加了新塘在理工大举办的M0培训。以下分享一下今天的见闻感受。为了不迟到,今天特地起个早去参加培训,原本8:30到9:00的报道时间,当我8:30到的时候已经发现来了很多学生。竟然已...
芯际争霸 2011-03-16 12:57
致敬315-电子打假那些事
昨天回家看了央视的315晚会。感觉是甚为给力啊!今天抱着务必敬仰的心情揭露一些身边的电子忽悠事件。还望各位网友也能分享自己经历的那些忽悠事。 事件1:记得那时我还在读初中,当时我天天中午回家看CCTV...
芯际争霸 2011-03-16 10:51
初入维修部-拆解UPS及大吉手台充电器
最近工作好忙,很长时间没写博客。加上公司维修的老师傅退休了。所以我也被临时安排到维修部。俗话说:“一个好的开发人员首先一定是好的维修人员”。带着无比崇敬的心情我来到了维修部。先上图介绍哈工作环境   ...
芯际争霸 2011-02-24 13:41
Cortex-M0修行心得-3
 M0的看门狗和普通51单片机的看门狗类似。比较简单。在配置完看门狗寄存器后看门狗模块就会随程序一直执行不能关闭。唯一关闭的方法就是系统发生复位。狗狗工作标记位就会由硬件自动清零而不工作了。在对看门狗...
芯际争霸 2011-02-22 09:03
Cortex-M0修行心得-2
M0的中断系统-M0的外部中断是所有的IO口都可以实现的,这一点比较特殊。今天试了试LPC1114的外部中断功能,本以为很简单的问题还遇到了麻烦,问题如下,根据ZLG提供的工程例子将程序烧写可以正常运...
芯际争霸 2011-02-18 17:53
Cortex-M0修行心得-1
大半年前去ZLG公司办事。偶然间得知ZLG的Cortex-M0开发板免费赠送,于是也申请了个。后来因为忙一直没时间研究,最近手头事不多加上EDN开展M0助学活动。因为偶决定痛下决心开始研究M0。在此将...
广告
我要评论
3
0
广告
关闭 热点推荐上一条 /5 下一条