51单片机定时/计数器的问题 (代码)

红线圈起来的那一部分是什么意思?(其中,THCO=0XEE,TLCO=0X00)

TH0 = THC0; // 向TH0寄存器写入THC0常数,也就是0xEE

TL0 = TLC0; // 向TL0寄存器写入TLC0常数,也就是0x00

// 以上完成定时器0在16位模式下的初值加载,也就是0xEE00
TR0 = 1; // 开启定时器0的运行。此语句之后Timer0计数器才开始累加

ET0 = 1; // 开启定时器0的中断。此语句之后,Timer0计数器溢出才会产生中断标志

EA = 1; // 开启总中断开关。此语句之后,中断标志置位才会触发PC跳转到对应的中断向量

好好学习天天向上追问

我就是奇怪,他也没写定时器0的工作方式,而直接设置TH0和TL0了,这样可以吗

追答

“他也没写定时器0的工作方式”
你在开什么玩笑。程序的第一句就是设置TMOD。

追问

第一句TMOD=0x20,这是设置的定时器1,

追答

“第一句TMOD=0x20,这是设置的定时器1,”

低4位为0,也就是说定时器0工作在Mode 0,也就是13位模式。我修正一下刚才的描述,13位模式的初值加载相当于0x1DC0。

追问

哦哦,好的。我想再多问您一个问题,若函数的形式参数是指针类型,则实参可以是字符串吗?

追答

这个你要好好看看C语言的书哦,实参实际上并不真的是一个字符串实体,而是内存中这个字符串实体的地址,也就是一个指针。
具体来说这条语句,编译器在编译时会在内存中分配一个字符串(常量数组),而后将其地址作为实参传入 SendString() 函数中。
这方面你可以结合编译原理看一看加深理解。

温馨提示:答案为网友推荐,仅供参考
相似回答