宏晶科技 STC8G1K系列单片机教程「四」规则-切换-复位-存储器

大家好,我是远方,这一章我们来学习下STC8G1K系列单片机的命名规则,功能引脚的切换,系统复位,存储器。我们下一章正式进入IO端口的操作。

STC8 系列单片机命名规则

宏晶科技 STC8G1K系列单片机教程「四」规则-切换-复位-存储器

这个是对STC8整个系列的命名规则。

拿我们学习的STC8G1K12举例来说。8G就是STC8G系列,当然还有8A就是STC8A系列,8F就是STC8F系列,1K指的是SRAM大小,12指的是程序空间为12K。

这里为什么要讲下这个命名规则,主要是让大家看到这个型号就知道这个芯片的配置如何。给大家在项目开发选型时提供一些依据。评估好自己的程序大概有多大。

功能脚切换

STC8G 系列单片机的特殊外设串口 1、串口 2、SPI、PCA、I2C 控制脚可以在多个 I/O 直接进行切换,以实现一个外设当作多个设备进行分时复用。功能脚的切换可以大大提高PCB布线的灵活性。因为在画PCB的过程种,有时候会出现从这边走线很难走通,从那边走线,一下子就走通了。所谓的分时复用就是,比如说一个SPI接口,可以当作二个独立的SPI接口用。比如A端口是SPI接口,通过功能脚切换,使B端口也具备SPI接口。就这样频繁的功能引脚切换,可以实现了二个SPI接口。

宏晶科技 STC8G1K系列单片机教程「四」规则-切换-复位-存储器

宏晶科技 STC8G1K系列单片机教程「四」规则-切换-复位-存储器

宏晶科技 STC8G1K系列单片机教程「四」规则-切换-复位-存储器

我们通过P_SW1 寄存器和P_SW2寄存器的配置,就可以实现功能脚的切换了。

比如我们要把 串口 1 功能脚选择位 切换到P3.6 和 P3.7

P_SW1 &= ~(1 << 7);

P_SW1 |= (1 << 6);

通过这二条语句就实现了串口 1 功能脚选择位 切换到P3.6 和 P3.7。

其他功能引脚的切换大家参考手册自行设置。

系统复位

STC8G 系列单片机的复位分为硬件复位和软件复位两种。

我这里主要讲下软件复位。因为我们实际开发过程中,会遇到有些软件运行到某个地方,想让系统复位。这个时候就会用到软件指令复位系统。但是有些工业产品运行中是不能复位的,一复位就会出现大问题。视情况而定。

宏晶科技 STC8G1K系列单片机教程「四」规则-切换-复位-存储器

通过设置IAP_CONTR(IAP 控制寄存器) 就可以达到系统复位的效果。

IAP_CONTR &= ~(1<<6);

IAP_CONTR |= (1<<5);

这样就设置:软件复位后从用户程序区开始执行代码。用户数据区的数据保持不变。

IAP_CONTR |= (1<<6);

IAP_CONTR |= (1<<5);

这样就设置:软件复位后从系统 ISP 区开始执行代码。用户数据区的数据会被初始化。

数据存储器

我这里主要说下单片机的RAM。

宏晶科技 STC8G1K系列单片机教程「四」规则-切换-复位-存储器

内部 RAM 共 256 字节,可分为 2 个部分:低 128 字节 RAM 和高 128 字节 RAM。其他都是在内部扩展的。

一般我们在定义的时候。我一般是局部变量一般定义在data区或idata区,全局变量定义在xdata区。

unsigned char data temp = 0; //把变量定义在data区

unsigned char idata temp = 0; //把变量定义在idata区

unsigned char xdata temp = 0; //把变量定义在xdata区

好了,讲到这里我们就讲完了。希望大家多多关注我的原创文章。谢谢。


分享到:


相關文章: