本文目录一览

1,CMPR是什么寄存器

比较寄存器,里面寄存了与计数寄存器相比较的值,当两个值相等时,发生一次比较跳变,输出的pwm波跳变

CMPR是什么寄存器

2,寄存器数量增多可以提高CPU运行速度但是不能太多太多会使地址

寄存器比内存快,可以存放运算的中间数据,数量多了就可以少访问内存;访问寄存器也需要知道哪个寄存器,地址当然也要编码在机器指令里,编码长度是寄存器数量的对数(以2为底),机器指令长度自然是越短越好处理。

寄存器数量增多可以提高CPU运行速度但是不能太多太多会使地址

3,fp 和int寄存器是什么意思

在C语言中,int是一种整数数据类型定义的标示符。int的位数在不同的编译器中是不同的,但不会少于16位,在16位编译器中,一个int是16位的,在32位的编译器中,一个int是32位的.这个你要看你所使用的编译器手册. EAX是一种32位通用寄存器。
搜一下:fp 和int寄存器是什么意思

fp 和int寄存器是什么意思

4,段寄存器有什么作用

1, 代码段寄存器CS:存放当前正在运行的程序代码所在段的段基值,表示当前使用的指令代码可以从该段寄存器指定的存储器段中取得,相应的偏移值则由IP提供。   2, 数据段寄存器DS:指出当前程序使用的数据所存放段的最低地址,即存放数据段的段基值。   3, 堆栈段寄存器SS:指出当前堆栈的底部地址,即存放堆栈段的段基值。   4, 附加段寄存器ES:指出当前程序使用附加数据段的段基址,该段是串操作指令中目的串所在的段。 段寄存器里放的是地址还是数据还是其他的东西? 是放的段基值,通俗说就是段的起始点(具体地址是段基值+偏移),这个数值是地址不是数据。

5,寄存器是什么

这么说吧,他是CPU里面的东西,他和内存一样,只是他存的东西小的多,像AX他只能存二个字节,不过计算机的运算的数据要靠他们来存储起来,一般他们都各自的属性,像段寄存器,累加寄存器什么的,实际寄存器也不是很多,我想你也知道他有多少吧,像EAX,BEX,等。只要你记得他是用来临时用来存储数据,而他们又有特定的功能,不能相互混都用。
数字电路中的一小部分。它可以由外界控制将输入的数据寄存在内部,也就是写的操作;也可以将寄存在内部的数据输出,也就是读的操作。但是这一切操作必须是在外界加电的前提下才可能实现的,不像硬盘那样断电后依然可以保存数据,所以我们叫它寄存器。

6,单片机数据手册里有很多寄存器怎么知道哪些需要初始化

按照功能和需求呀。比如说串口,涉及到串口的就有:IE :各种中断允许控制寄存器pcon:电源寄存器,它的最高位SMOD有关IP:中断优先权SCON:串口中断控制AUXR:辅助寄存器,涉及到串口波特率发生器的选择,还有分频选择等BRT:独立波特率发生器,装初值。还有定时器1,赋值初值等等。
#include "reg51.h" #include "intrins.h" typedef unsigned char byte; typedef unsigned int word; #define fosc 11059200l //system frequency #define baud 9600 //uart baudrate /*define uart parity mode*/ #define none_parity 0 //none parity #define odd_parity 1 //odd parity #define even_parity 2 //even parity #define mark_parity 3 //mark parity #define space_parity 4 //space parity #define paritybit even_parity //testing even parity sbit bit9 = p2^2; //p2.2 show uart data bit9 bit busy; void senddata(byte dat); void sendstring(char *s); void main() { #if (paritybit == none_parity) scon = 0x50; //8-bit variable uart #elif (paritybit == odd_parity) || (paritybit == even_parity) || (paritybit == mark_parity) scon = 0xda; //9-bit variable uart, parity bit initial to 1 #elif (paritybit == space_parity) scon = 0xd2; //9-bit variable uart, parity bit initial to 0 #endif tmod = 0x20; //set timer1 as 8-bit auto reload mode th1 = tl1 = -(fosc/12/32/baud); //set auto-reload vaule tr1 = 1; //timer1 start run es = 1; //enable uart interrupt ea = 1; //open master interrupt switch sendstring("stc89-90xx\r\nuart test !\r\n"); while(1); } /*---------------------------- uart interrupt service routine ----------------------------*/ void uart_isr() interrupt 4 using 1 { if (ri) { ri = 0; //clear receive interrupt flag p0 = sbuf; //p0 show uart data bit9 = rb8; //p2.2 show parity bit } if (ti) { ti = 0; //clear transmit interrupt flag busy = 0; //clear transmit busy flag } } /*---------------------------- send a byte data to uart input: dat (data to be sent) output:none ----------------------------*/ void senddata(byte dat) { while (busy); //wait for the completion of the previous data is sent acc = dat; //calculate the even parity bit p (psw.0) if (p) //set the parity bit according to p { #if (paritybit == odd_parity) tb8 = 0; //set parity bit to 0 #elif (paritybit == even_parity) tb8 = 1; //set parity bit to 1 #endif } else { #if (paritybit == odd_parity) tb8 = 1; //set parity bit to 1 #elif (paritybit == even_parity) tb8 = 0; //set parity bit to 0 #endif } busy = 1; sbuf = acc; //send data to uart buffer } /*---------------------------- send a string to uart input: s (address of string) output:none ----------------------------*/ void sendstring(char *s) { while (*s) //check the end of the string { senddata(*s++); //send current char and increment string ptr } }

文章TAG:什么是寄存器  CMPR是什么寄存器  
下一篇