1. 51单片机波特率如何设置啊
串行口的四种工作方式对应三种波特率。由于输入的移位时钟的来源不同,所以,各种方式的波特率计算公式也不相同。 方式0的波特率 = fosc/12 方式2的波特率 =((2^SMOD)/64)• fosc 方式1的波特率 =((2^SMOD)/32)•(T1溢出率) 方式3的波特率 =((2^SMOD)/32)•(T1溢出率) 注意:SMOD为PCON寄存器的最高位(即PCOM<7>)。 T1 溢出率 = fosc /{12×[256 -(TH1)]} --将该公式代人方式1或3 最后推出公式:TH1=256-(fosc*2^SMOD)/(baudrate*12*32); 呵呵 如果你用方式2(波特率 =((2^SMOD)/64)• fosc )的话 12M的晶振就不能得到9600波特率了(除非你改变你的晶振,但是那样的晶振好像没有卖) 所以你只能选择方式1或3 而且12M的晶振在串口传输时会有误差,就如你上面算的那样结果会有小数点 TH1又只能是整数的 所以传输时会有误差. 参考: #include #define baudrate 9600UL #define fosc 11059200UL//其中,UL是不能省略的,代表长整型。 unsigned char a,flag; void serial_init(void) { unsigned char S_MOD=1; TMOD=0x20;//T1工作在方式2 SCON=0x50;//SM0=0 SM1=1->串口通信在模式1, //SM2=0->多级通信中使用的位,REN=1; PCON=0; if((PCON&0x80)==0x80) S_MOD=2; TH1=256-(fosc*S_MOD)/(baudrate*12*32);//其中SMOD=0, TL1=256-(fosc*S_MOD)/(baudrate*12*32); TR1=1;ES=1;EA=1; }
2. MCS-51单片机外部中断的触发方式如何设定和选择
1、打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。
3. 51单片机里面如何嵌入网页啊请高手指点
你在单片机里面嵌一个UCOSII差不多,然后选个有大RAM和ROM的单片机,UCOSII官网上有关于TCP/IP部分的移植代码,可以参考一下吧。
4. 怎样用51单片机在WEBsever上显示汉字
是使用哪个网络模块的呢?需要有具体的模块才好操作。
5. 51单片机波特率如何设置
51单片机波特率设置主要有以下两种方式:1) 工作方式0 ,2)工作方式1 。x0dx0a1) 工作方式0 x0dx0aSM0=0且SM1=0时,串口选择工作方式0,实质这是一种同步移位寄存器模式。 其数据传输的波特率固定为Fosc/12,数据由RXD引脚输入或输出,同步时钟由TXD引脚输出。x0dx0a2)工作方式1 x0dx0a当SM0=0且SM1=1时,串口选择工作方式1,其数据传输的波特率由定时/计数器T1、T2的溢出速率决定,可通过程序设定。当T2CON寄存器中的RCLK和TCLK置位时,用T2作为发送和接收波特率发生器,而RCLK=TCLK=0时,用T1作为波特率发生器,两者还可以交叉使用,即发送和接收采用不同的波特率。数据由TXD引脚发送,由RXD引脚接收。
6. 51单片机怎么通过IE,IP两个寄存器的来设置几个中断的优先级
所有中断源默认优先级为0级(加电或者复位后),但是仍然有优先次序,如图示;
当将对应的中断事件置1,即提升为最高优先级,如 PX0=1;
同样的,如果有几个中断源被设置为最高优先级,那么就是按同级的优先次序等待中断响应;
还不明白的可追问;
7. 51单片机具体如何设置IP值改变优先级
51单片机设置IP值改变优先级的方法:
【1】51有默认的中断优先级,在有中断标志时,MCU查询的顺序是:
1、外部中断0;
2、定时器中断0;
3、外部中断1;
4、定时器中断1;
5、串口中断。
这个不用设置几句可以实现你上述的功能的。当然,你要这样自行管理中断的优先级也是好事,是编程的好习惯。
51本来就能嵌套两级中断,可以通过设置中断优先级寄存器IP设置为最高或者最低优先级。
其实,只要了解了中断的原理,压实现中断嵌套式很简单的事情。多看看51的DataSheet,学东西就不要怕不厌其烦,一定要多看Datasheet。
【2】设置IP = 0x10,即设置串口中断为最高优先级,则串口中断可以打断任何其他的中断服务函数实现嵌套,且只有串口中断能打断其他中断的服务函数。若串口中断没有触发,则其他几个中断之间还是保持逻辑优先级,相互之间无法嵌套。
【3】T1中断会一直等待cpu执行完T0中断函数再执行T1中断函数。一直要等到T0中断函数执行完毕后才会处理T1中断。如果在执行T0中断的过程中T1第二次相应中断,也要等T0全部执行完之后再相应T1中断,这时候T1中断只会被执行一次。
8. 51单片机具体如何设置IP值改变优先级
51单片机设置IP值改变优先级的方法:
【1】51有默认的中断优先级,在有中断标志时,MCU查询的顺序是:
1、外部中断0;
2、定时器中断0;
3、外部中断1;
4、定时器中断1;
5、串口中断。
这个不用设置几句可以实现你上述的功能的。当然,你要这样自行管理中断的优先级也是好事,是编程的好习惯。
51本来就能嵌套两级中断,可以通过设置中断优先级寄存器IP设置为最高或者最低优先级。
其实,只要了解了中断的原理,压实现中断嵌套式很简单的事情。多看看51的DataSheet,学东西就不要怕不厌其烦,一定要多看Datasheet。
【2】设置IP = 0x10,即设置串口中断为最高优先级,则串口中断可以打断任何其他的中断服务函数实现嵌套,且只有串口中断能打断其他中断的服务函数。若串口中断没有触发,则其他几个中断之间还是保持逻辑优先级,相互之间无法嵌套。
【3】T1中断会一直等待cpu执行完T0中断函数再执行T1中断函数。一直要等到T0中断函数执行完毕后才会处理T1中断。如果在执行T0中断的过程中T1第二次相应中断,也要等T0全部执行完之后再相应T1中断,这时候T1中断只会被执行一次。
9. 51单片机引脚输入设置要怎么设置
楼上的都对。
根据51引脚的定义,对该引脚置1,可以作为输入使用。
而51单片机的所有IO引脚,在启动后默认都是1。因此,如之前没有对此引脚进行过置0操作的话,可以直接读该引脚。但为了保险起见,也为了使程序通用、可移植,最好在读取之前对此引脚置1。