单片机C51编程的几个问题(详细情况在里面,欢迎高手)

来源:百度知道 编辑:UC知道 时间:2024/06/04 01:07:19
题目:设单片机的时钟频率为12MHz,利用定时中断在其P1.0引脚输出周期为20ms的方波。
问题一: sbit P1_0=P^0 我知道这是异或,但不知表示什么含义?
问题二:TH0=-(12500/256)这是设置计数初值,问什么前面有个负号??

答:1。那个不是异或,你的P^0写错了,比如P0^0的意思是P0.0口,sbit P1_0=P1^0,意思是把P1.0口定义为P1_0,相当于给P1.0口取个其它的名字而已。
2.-12500在C中是用补码表示的,等价于65536-12500,把这两个数都换成十六进制相减,结果和-12500的补码是一样的!!!

问题一: 是位定义 不是异或, 意思是把P0.0口定义为P1_0,P1_0可以写成任意格式,但是P^0必须这么写,即你也可以这样定义sbit s1=P^0.

问题二: 前面加符号的意思是求其补码还是反码,你自己看下这方面的运算,这是给定时器赋初值,我一般这样写TH0=(65536-12500)/256,直观方便