⑴ 为什么在读51,系列单片机的并行端口之前要先对端口初始化
保证读入数据不出错。
51系列单片机在并行口PO、Pl、P2或P3作输入数据的端口时,先给此8位并行口送去全1,然后再读这些并行端口,才能保证读入的数据不会出错。这是由于单片机在设计之初存在的一个缺陷。
⑵ 简述单片机应用时串行口初始化的内容
设置定时器工作方式:装入定时初值,启动定时器,设置串口工作方式。
当执行一条指令时,先把它从内存中取到数据寄存器中,然后再传送到指令寄存器。当系统执行给定的指令时,必须对操作码进行译码,以确定所要求的操作,指令译码器就是负责这项工作的。其中,指令寄存器中操作码字段的输出就是指令译码器的输入。
(2)单片机端口初始化扩展阅读:
在单片机中主要包含CPU、只读存储器ROM和随机存储器RAM等,多样化数据采集与控制系统能困樱够让单片机完成各项复杂的运算,无论是对运算符号进行控制,还是对系统下达运算指令都能通过单片机完成。
单片机就是一块芯片,这块芯片组成了一个系统,通过集成电路技术的应用,将数据运算与处理能力集成到芯片中,实现对数瞎源据的高速化处理。
参汪神丛考资料来源:网络-单片机
⑶ 如何给单片机系统进行初始化
复位电路和晶振电路属于纯硬件,不用理会,其它的需要软件做好初始化。软件的初始化一般是以下几个步骤。
如果采用的是汇编语言,一般有如下几项内容
1、设置堆栈地址:比如MOV SP, #60H。
2、设定PSW值,也就是缺省的工作寄存器区。
3、设定与定时器、中断、串口相关的特殊功能寄存器
4、设定各IO口的初始状态,比如将连接键盘的输入输出口均设为1,红外发射电路的初始状态。
5、内存中需要赋初值的寄存器赋初值,比如上电后要显示的内容最好先赋个初值。
6、打开中断允许、启动定时器(这一步也可根据具体需要放在前面或其它地方)
7、开始主程序循环
对前两项的设置可能不是必须的,但是应该成为一种好的习惯。
如果是C语言,除了第1、2项不用管,其它也一样。
如果整个系统在上电后,需要一段时间才能进入稳定状态,可在一开始加入一段循环延时程序,然后再进行其它初始化操作。
⑷ 单片机中,当I/O口作输入时,应先初始化为什么
因为IO口作为输入时初始被置1, 这样就可以被外部器件拉低, 检测IO口的电平高低就可以知道有没有被外部器件拉低了
⑸ 单片机程序初始化要做些什么啊
分二点解释:
1、单片机初始化主要是对单片机所用到的功能或外设进行初始化。
比如,用到了定时器T0,则需要在开始对T0进行初始化,其相关SFR为:TMOD,TH0,TL0,TR0。其他类似。
2、当然如果你使用汇编编写程序,在程序比较大时,可以考虑对堆栈等进行初始化,保证程序运行的可靠性。这点,对于初学者来说,我觉得能理解最好,不理解不用着急。
对于C语言设计来说,堆栈的初始化则考虑较少,一般编译器会帮助进行优化。
⑹ 单片机的输入输出口初始化是0还是1
初始状态是高电平
以后根据程序的功能去定义它们的状态。
⑺ 单片机 IO口初始化
1、首先注意51单片机上电的时候会有个复位的操作,复位的时候不执行单片机内部程序,复位之后51单片机的所有io口都为高电平;
2、在单片机复位之后在main函数里执行程序,如果要使io口初始化为低电平,就要在while循环的上方把io置低;例如:
一般程序的结构是这样的:
void
main()
{
....
io
=
0
;
//在while的上方对io置低,
......
while(1)
{
}
}
3、基于上面的原理,在设计单片机外围电路的时候,为了不让外围电路误动作,一般把外围电路设置成单片机io口低电平的时候
尽心动作,
比如:
点亮led灯的时候,,一般把led的负极接io口,,这样单片机上电的时候,没有进入程序之前,led是不会亮的,