微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 求高手解释一下51单片机特殊功能寄存器的有关问题。

求高手解释一下51单片机特殊功能寄存器的有关问题。

时间:10-02 整理:3721RD 点击:
因为实在搞不懂,所以可能问的都不太清楚,请各位见谅。   
就比如说在写C程序要用到定时器和中断的时候,要写到TMOD、TCON、TR1、T0等等....首先这里面的TMOD我在网上看到内部结构是有8位的,那TMOD到底是单片机上的一个I/O口还是像
P1、P2那样是8个I/O口?如果只是一个I/O口,那为什么它内部的各个位还能单独赋值?

为了更好说明,下面是一部分代码:
        TMOD=0x11;//设置定时器0为工作方式1
        TH0=(65536-10000)/256;
        TL0=(65536-10000)%256;
        TH1=(65536-20000)/256;
        TL1=(65536-20000)%256;
        EA=1;//开总中断
        ET0=1;//开定时器0中断
        ET1=1;
        TR0=1;//启动定时器0
        TR1=1;
好像我在看80C51单片机资料的时候引脚图上也没这些符号....
另外一个问题是:如果要用定时/计数器,中断啥的,那在硬件电路上有什么要求呢?比如我现在有个最小系统,芯片是stc89c52rc,在P1口接了几个灯,想用定时器实现灯以一秒间隔流动,需要在原来板子基础上怎么改?


可以看出,小编对51单片机的实际并不了解哈,这个肯定是要下载芯片的datasheet,看看每个外设寄存器的属性啊,哪一bit是做什么的之类的。那样才能对单片机的整个架构了解清楚,才能不被任何形式的代码产生疑惑
不是我在这儿故弄玄虚,从小编问的问题来看,小编确实还在单片机的入门路上,一定要打好51的基础,才能进阶更加高级的单片机(ARM系列)行列哦
建议:看芯片的datasheet或者找一本单片机开发的书籍看看,就可以轻易解决您的问题啦

//我来答,小编好奇心还是蛮强的嘛。很爱思考嘛!
//以下我的思考,个人观点仅供参考
1、其实所有单片机内核都可以看成是一个存储器,对的你没看错就是存储器,只是就是存放代码的,0、1。
2、当然只是存起来并没有什么卵用,单片机还做了一件事,把0/1代码变成我们预先设计的“动作”,是的“取址”、“译码”、“执行”。
3、不同的地址存储不同的内容,有些内容是我们需要看见的,需要我们改变的,有些内容是我们不需要看见的,对的,需要看见的改变的就通过引脚引出来了,有些我们不需要看见的就没有引出来,所以你看见有些东西芯片上没有,这就是不需要我们看见的;比如我们需要定时器跑起来,怎么办呢,我们就向这些地址写不同的值,不同的值就实现不同的功能,好吧,这些地址还有个名字叫做“寄存器”。
4、其实只是些地址也是并没有用,地址嘛存的还是0/1.怎么办,单片机厂商还做了些“外设”将这些地址的功能表现出来将这些功能放大,比如IO口。
5、这样就好了有了单片机架构,有了外设,单片机可以工作了。其实一个地址可以存的数据一般是8位的所以可以赋8位的data。那为什么有的寄存器只赋一位呢,因为他就是一位只是取了个名字而已,去看看单片机的Datasheet就可以了。说明一下其实IO芯片上的引脚和寄存器虽然是对应的但是不能单单把引脚看成寄存器。
6、嗯,讲了这么多废话,我也不知我在说什么,你大概也没有明白,还是听楼上的去看看Datasheet吧,去看书吧。

TMOD、TCON、TR1、T0等是集成在单片机内部的特殊功能寄存器,与IO口并没有关系。
如果你用定时器中断的话,并不需要修改电路。
多看看书

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top