串行口通信 单片机在数码管显示AD采集值
}
void timer0() interrupt 1
{
}
void ser() interrupt 4
{
}
三. 程序小结
1) 串口初始化中先设定串口模式, 再容许串口接收,即顺序是SM0 = 0;SM1 = 1;REN=1;(这三位都在串口控制寄存器SCON里)
这样做的原因是单片机刚上电时SCON被清0,因为串口方式为方式0,串行口为同步移位寄存器的输入输出方式,当执行完REN为1的
语句后,直接从RXD接收数据,不管连接的系统有无发送数据.把REN放在模式设置的后面可以避免串口模式还未设置下就读取数据.
2) 调用printf()或者puts()前需要手动将TI置1, 因为这两个函数需要对TI进行检测, 以代表是否发送完毕.
3) 调用printf()或者puts()前还需要手动关闭串口中断(ES = 0).如不关闭串口中断,每发送一个字节,程序就会申请加入串口中断,从而导致程序出错.
4) ad_val * 5.0/256.0可以得到浮点数表示的AD实际采集到的电压标准值.
5) 如果要程序接受十六进制的01或者字符格式的1, 那么需要将串口中断子程序中的if(a == 1)改成if(a == 1 || a == 1),
串行口通信单片机数码管显示AD采集 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)