C语言编程:8051单片机系统的时钟为11.0592MHz,把0~99从串行口输出
来源:互联网 发布:mac的桌面 编辑:程序博客网 时间:2024/05/01 18:01
/*
C语言编程:8051单片机系统的时钟为11.0592MHz,把0~99从串行口输出。
每个数据之间时间间隔10ms,波特率为9600,8位数据位,1位停止位,无奇偶校验位。
悬赏分:30 | 解决时间:2011-6-30 18:55
===============================================
最佳答案:
控制 51 单片机进行串口通信,编程是很简单的。
在 PROTEUS 中,有多种仿真调试串口的方法,采用虚拟终端,则最为简便。
仿真截图如下:
图片链接:http://hi.baidu.com/%D7%F6%B6%F8%C2%DB%B5%C0/album/item/3217548780d3d95f65096e63.html#
程序如下所示:
*/
#include <reg51.h>
#define XTAL 11059200 // 晶振频率
#define baudrate 9600 // 通信波特率
#define uchar unsigned char
#define uint unsigned int
char aa, bb = 0;
//-----------------------------------------------------------
void main(void)
{
PCON = 0x00; // 波特率不倍增.
SCON = 0x50; // 串行口工作方式.
TMOD = 0x21; // T1定时方式2, 产生波特率.
// T0定时方式1, 定时 5ms.
TL1 = (uchar)(256 - (XTAL / (384L * baudrate))); //T1初值.
TH1 = (uchar)(256 - (XTAL / (384L * baudrate)));
TR1 = 1; // 启动T1
TL0 = (65536 - 4608) % 256; //5ms@11.0592MHz
TH0 = (65536 - 4608) / 256;
TR0 = 1; // 启动T0
ET0 = 1;
EA = 1; // 中断总允许.
while(1);
}
//-----------------------------------------------------------
void T0_INT() interrupt 1
{
TL0 = (65536 - 9216) % 256; //5ms@11.0592MHz
TH0 = (65536 - 9216) / 256;
aa++;
aa %= 20; //2 代表 10ms
if (aa == 0) {
SBUF = (bb / 10) * 16 + (bb % 10);
bb++;
bb %= 100;
}
}
//===============================================
//回答时间:2011-6-30 18:06
//回答者: 做而论道 | 十五级采纳率:43%
//提问者对于答案的评价:非常感谢
//原题网址:http://zhidao.baidu.com/question/286274710.html
//===============================================
- C语言编程:8051单片机系统的时钟为11.0592MHz,把0~99从串行口输出
- 【程序】STM32L476RG单片机用寄存器通过PLL将MSI时钟倍频到72MHz并设为系统时钟
- C51-------时钟程序(C语言编写的单片机时钟)
- STM32F103 使用HSI配置系统时钟为64MHZ
- STC51单片机 晶振为11.0592MHZ延迟1S的函数
- MCS-51单片机的串行口
- 我是这样学习Linux下C语言编程的-把程序输出信息加到系统日志里去
- 我是这样学习Linux下C语言编程的-把程序输出信息加到系统日志里去
- 基于51单片机的12864液晶时钟C语言程序
- 单片机C语言编程
- 单片机C语言编程
- 使用内部的MSI振荡器给STM32L476RG单片机提供80MHz的时钟
- 单片机串行口
- 单片机C语言的编程规范
- 单片机C语言编程的基础知识
- c语言。利用交换概览把值从大到小输出
- CC2541设置外部时钟为32Mhz
- 浅谈单片机c语言模块化编程-附ds1302时钟芯片驱动程序
- linux下清除svn账号和密码
- P1 接 8 个独立按键,P2 接 8 个 LED,要求用按键控制 LED 的发光状态
- 设计一个显示ASCII码的程序
- 统计一个字符串中某个字母的个数
- LA2678
- C语言编程:8051单片机系统的时钟为11.0592MHz,把0~99从串行口输出
- 四个按键控制四个数字递增
- VS2015 ERROR
- 用C语言按照冒泡法进行数字排序
- C++ STL--stack/queue 的使用方法
- DEBUG里标志寄存器状态位英文全称
- WC四校联考总结
- 51单片机汇编语言编程:用定时器控制输出矩形波
- SQL四种语言:DDL,DML,DCL,TCL