C51单片机程序

TH0 = 0xf6;
TL0 = 0xff;
TH1 = 0xfd;
TL1 = 0xfd;
TMOD = 0x21;
PCON = 0x00;
WDCON = 0x00;
SCON = 0x50;
SCON1 = 0x40;
这段程序是什么意思?起的作用是什么?为什么要这么写?

TH0 = 0xf6;

TL0 = 0xff;

上两行是定时器/计数器T0的初值,因为T0是16位的,所以用TH0表示高八位,TL0表示低八位

TH1 = 0xfd;

TL1 = 0xfd;

T1初值

TMOD = 0x21;

定时器/计数器模式控制寄存器  如图

GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1

GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。

C/T=0时为定时功能,C/T=1时为计数功能

M0、M1——方式选择功能

M1M0 工作方式 计数器模式 TMOD(设置定时器模式)

  0 0 方式0 13位计数器 TMOD=0x00

  0 1 方式1 16位计数器 TMOD=0x01

  1 0 方式2 自动重装8位计数器 TMOD=0x02

  1 1 方式3 T0分为2个8位独立计数器,T1为无中断重装8位计数器 TMOD=0x03

PCON = 0x00;

PCON主要是为CHMOS型单片机的电源控制而设置的专用寄存器

WDCON = 0x00;清狗

SCON =  0x50;

SCON1 = 0x40;

串口控制寄存器

追问

TMOD=0x21;表示的是T1是方式2,T0是方式1吗?是不是TR0=1,TR1=1才启动T0和T1?

追答

TMOD=0x21,表示的是T1是方式2,T0是方式1。
TR0=1,TR1=1时启动T0和T1,但是还跟GATE有关,当GATE=1,且INT1为高电平时,TR1置“1”启动定时器1;当GATE=0,TR1置“1”启动定时器1;当GATE=1,且INT1为高电平时,TR0置“1”启动定时器0;当GATE=0,TR0置“1”启动定时器0。
你先让GATE=0,就是你说的那样了。

追问

能否加下QQ?我还有很多问题不懂。。

追答

1012638939 注明你是谁

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-10-13
TH0 = 0xf6; //T0定时器初值 -2303
TL0 = 0xff;
TH1 = 0xfd; //波特率9600
TL1 = 0xfd;
TMOD = 0x21; //定时器0位模式1,定时器2位模式2
PCON = 0x00; //波特率不加倍
WDCON = 0x00; //清狗
SCON = 0x50; //串口0工作与模式1,启动接收
SCON1 = 0x40; //串口1工作与模式1,用于发送本回答被网友采纳
第2个回答  2011-08-23
这些是单片机寄存器的初始化 ,要学习,必须根据每个寄存器每一位代表什么具体意思来判断,TH0 TL0 是定时器0 的高8位 和低8位,其他的同理,至于为什么要那么写,是要看整个程序要实现什么具体的功能来判断,需要用到单片机的什么资源,就必须得线初始化,慢慢学把,51系列单片机还是挺简单的。
第3个回答  2011-08-24
定时/计数器,TH高八位,TL低八位,T0是计时,T1是串口通讯

c51单片机c语言交通灯的程序
使用C语言为C51单片机编写交通灯控制程序是完全可行的,通过合理地设置定时器、I\/O端口以及逻辑控制,可以实现交通灯的定时切换和状态显示。接下来,我将详细解释如何为C51单片机使用C语言编写交通灯控制程序。首先,我们需要了解C51单片机的基本结构和资源,包括其I\/O端口、定时器\/计数器等。通常,交通灯系...

C51单片机发送字符串程序怎么写
1、打开C51程序书写软件,新建工程,在弹出的对话框编辑工程名并保存到要保存的地方。2、保存之后会弹出如下的窗口,点击Atmel的加号,选择AT89s52并确定。3、此时就要开始建立程序了,点击如图的图标,新建程序,注意保存的时候一定要在名字后面加“.c”。4、此时点击左边的文件夹,双击,会出现下一级的...

c51流水灯单片机程序
\/\/假设有8个LED通过上拉电阻接到P1端口, 高电平灯灭,低电平灯亮,逐个循环点亮 include <reg51.h> unsigned char data tab1[9]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80,0x00};void delay(){ unsigned int data n;for (n=0;n<40000;n++){ ;} } void main(){ unsigned char...

51系列单片机及C51程序设计目录
第六章C51程序设计的基本语法,全面讲解了数据类型、常量、变量、存储模式、typedef定义、运算符、表达式、语句结构、条件语句、开关语句、循环语句、函数定义、调用、递归、中断服务函数、变量存储方式、数组和指针概念、数组引用、字符数组、数组元素赋值、指针引用、函数参数、数组指针、指针计算、函数型指针、...

C51单片机的简单显示程序(有小数点)C语言程序
TL1=0x78;P2=1<<scanled;if(scanled==2)P0=~(ledtab[disdat[scanled]] | 0x80);else P0=~ledtab[disdat[scanled]]; scanled++; scanled%=6;}main(){ TMOD=0x10; TH1=0xec; TL1=0x78; TR1=1; ET1=1; EA=1;while(1);} ...

设单片机系统如何编写一个完整的C51程序使P1.6和P1?
设单片机系统编写一个完整的C51程序使P1.6和P1,可以使用正确编码加上解压即可。一、过程:1、TMOD = 0X02;\/\/工作方式寄存器;2、TH0 = 56;\/\/8位的用TH;3、TL0 = 0;\/\/16位跟13位两个都用;4、EA = 1;\/\/开总中断;5、TR0 = 1;\/\/定时器开始计数,return。二、单片机简介:1、...

C51单片机程序
TL1 = 0xfd;T1初值 TMOD = 0x21;定时器\/计数器模式控制寄存器 如图 GATE=1时,由外部中断引脚INT0、INT1来启动定时器T0、T1 GATE=0时,仅由TR0,TR1置位分别启动定时器T0、T1。C\/T=0时为定时功能,C\/T=1时为计数功能 M0、M1——方式选择功能 M1M0 工作方式 计数器模式 TMOD(设置定时器...

C51写单片机程序如何插入汇编指令.
C51些单片机程序插入汇编指令的方法如下:1、以#pragma asm开始,以#pragma endasm结束,用pragma asm和#pragma endasm这两个伪指令将汇编代码包起来。比如:2、但是如果直接这样嵌入汇编代码的时候,编译时会报错,错误代码是:'asm\/endasm' requires src-control to be active 解决办法是:在工程中,...

如何用C51单片机做出以下程序 “秒表是倒计时,从100秒开始倒计时 用数...
假设P0 P2接数码管,静态驱动,程序如下:include<reg52.h> define uchar unsigned char define uint unsigned int uchar num=100;uchar time=0;\/\/共阴数码管七段码 uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d, 0x07,0x7f,0x6f,0x77};void Delay1ms(uint i) \/\/1ms延时...

c51单片机c语言交通灯的程序
程序如下:include <reg51.h> define uchar unsigned char define uint unsigned int uchar data buf[4];uchar data sec_dx=20;\/\/东西数默认 uchar data sec_nb=30;\/\/南北默认值 uchar data set_timedx=20;uchar data set_timenb=30;int n;uchar data b;\/\/定时器中断次数 sbit k1=P1^...

相似回答