求单片机高手解答

核心提示1.单片机应用系统是由?软件?和?硬件?组成的。2、除了单片机和电源外,单片机最小系统包括?复位和时钟?电路。3、MCS-51系列单片机的XTAL1和XTAL2引脚是晶振?引脚。4、MCS-51系列单片机的应用程序一般存放在程序存储器?中。

1.单片机应用系统是由?软件?和?硬件?组成的。

2、除了单片机和电源外,单片机最小系统包括?复位和时钟?电路。

3、MCS-51系列单片机的XTAL1和XTAL2引脚是晶振?引脚。

4、MCS-51系列单片机的应用程序一般存放在程序存储器?中。

5、MCS-51系列单片机的复位电路有两种,即上电复位电路和按键复位电路电路。

6、C51中定义一个可位寻址的变量P2_1访问P2口的P2.1引脚的方法是sbit?P2_1=P2^1?

7、123(十进制)=?1111011?B(二进制)=7B?H(十六进制)。

8、若采用12MHz的晶体振荡器,则MCS-51单片机的振荡周期为1/12?us?机器周期为_1us_?。

9、利用总线法对P1口0、2、4、6位输出高电平;1、3、5、7位输出低电平,C语言的程序写为:P1=0x55?。

10、定时器方式寄存器TMOD的作用是设置定时/计数器0,1的工作方式和工作模式?

11、定时器控制寄存器TCON的作用是:控制定时/计数器0,1的启动,停止?

1、Intel8051单片机的CPU是?C?位的。

A.?16?B.4C.8D.准16位

2、程序是以D形式存放在程序存储器中的。?

A.?C语言源程序?B.汇编语言C.BCD码D.二进制编码

3、使用单片机开发系统调试C语言程序时,首先应新建文件,该文件的扩展名是?A?。

A.?.cB.?.hex? C.?.binD.?.asm

4、MCS-51系列单片机的4个并行I/O端口作为通用端口使用,在输出数据时,必须外接上拉电阻的是?D?。?A.P3口?B.?P2口?C.?P1口D.?P0口

5、C?程序总是从?A?开始执行。A.主函数?B.主程序?C.子程序D.主过程

6、在C51程序中常常把?D?作为循环体,用于消耗CPU的时间,产生延时效果。

A.赋值语句B.表达式语句C.循环语句?D.空语句

7、在C51的数据类型中,unsigned?char型的数据长度和值域为B?。

A.?单字节,-128~127B.?单字节,0~?255

C.双字节,-32768~+32767?D.双字节,0~65535

8、单片机的定时器/计数器工作模式2是A。

A、8位计数器结构B、2个8位计数?C、13位计数结构D、16位计数结构

9、在C51中,没有专门的循环语句,我们可以用库文件C.h?中的函数______完成一个字节的循环左移,?函数______完成一个字节的循环右移。?

A、intrins.h?_crol_?_cror_B、intrins.h?_cror_?_crol_

C、reg51.h?_crol_?_cror_?D、reg51.h_cror_?_crol_

10、MCS-51系列单片机的定时器T0用做定时方式时,采用工作方式1,则初始化编程为?A?.?A.TMOD=0x01B.TMOD=0x50C.TMOD=0x10D.TMOD=0x02

1.coms工艺

2.利用编程器将用户程序送人单片机的存储器,检查程序,修改程序,监视单片机的工作状态。

3.51有5个中断源

4.Mcs-51是8位单片机;I/O的特点有具有双向通道,数据锁存,输入缓冲;P3.0和P3.1分别是串行输入口和WR串行输出口;作为输入时应该注意*****。

5.Mcs-51单片机中振荡电路,片内有一个高增益反向放大器,用于构成振荡器。外接晶振,反相器的输入端和输出端跨接石英晶体和两个电容就构成了稳定的自激振荡器。

6.51单片机的封装引脚有三种类型:40脚DIP,44脚PLCC,48脚DIP,52脚PLCC,68脚PLCC。引脚定义:1--8:P0.0--0.7,9:RST/Vpd,10--17:P3.0-P3.7,18:XTAL2,19:XTAL1,20:Vss,21--28:P2.0-P2.7,29:~PSEN ,30:ALE/~PROG,31:~EA/pp,32--39:P0.7-P0.0,40:Vcc。

7.单片机片内,片外存储器的选择:(程序存储器)由硬件控制信号~EA/Vpp决定,(数据存储器)由软件指令是MOVX还是MOV决定;

8.MCS-51的程序存储器用于存放运算中间结果。

9.PSW是一个8位的专用寄存器,用于存程序运行中的各种状态信息。

10.决定程序执行顺序的寄存器是程序计数器PC。

11.ALE引脚的特点:(访问外部存储器时)信号上升沿可作16为地址低8位的所存信号,信号在两个机器周期中出现一次;(不访问时)向外输出振荡频率1/6的脉冲信号,可作其他外部接口的时钟信号。通过该信号可以判断 CPU是否正常工作

12.MOVC的功能:用于读取程序存储器表格的数据传送

13:51的指令寄存器是对指令寄存器中的指令进行译码,将指令转变为执行此指令所需的电信号。

完整的指令格式:由操作码和操作数组成

DAC0832的输入电平与TTL电平兼容。

AD与DA的作用是:AD的作用是把模拟信号转换成数字信号,DA的作用是把数字信号转换成模拟信号。 0809是8位的AD转换器及有11个模拟输入通道,4位地址输入选择。17.? DAC0832是电流输出型数模转换芯片,分辨率8位,三种工作方式:直通,单缓冲,双缓冲。

单片机的复位电路的特点:简单而重要,上电复位靠电容充电,按键复位靠RC微分电路产生正脉冲和电阻与VCC电源接通。是第9引脚复位。单片机开始工作前需要复位,单片机受到干扰后程序跑飞需要复位。

单片机最小系统硬件设计图。由复位电路、晶振电路和单片机组成,单片机~EA端一般接高。

MCS—51单片机最小系统的振荡周期,机器周期,时钟周期的关系:12个振荡周期=1个机器周期=6个时钟周期。

8051在存储结构上采用哈佛结构。

串行通信中按数据流的方向分成哪三种基本的传送方式,

8051与8031的区别是:有无ROM存储器。

程序状态字寄存器PSW的特点:保存指令执行结果的特征信息。由硬件自动生成。

计算机总线的分类:数据总线,地址总线,控制总线。或片内总线,片外总线。

80C51单片机的程序存储器最大寻址范围256B。

编程:跑马灯程序编写:8个发光二极管流水灯程序编写

LED跑马灯(从右至左)

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<255;i++);

}

}

void main()

{

P1=0xfe;

while(1)

{ if(P1==0x7f)

P1=0xfe;

else

P1=_crol_(P1,1);

DelayMS(80);

}

}

LED跑马灯(从左至右)

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<255;i++);

}

}

void main()

{

P1=0x7f;

while(1)

{ if(P1==0xfe)

P1=0x7f;

else

P1=_cror_(P1,1);

DelayMS(40);

}

}

LED跑马灯(左右循环)

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<255;i++);

}

}

void main()

{

uchar i;

P1=0x7f;

while(1)

{

for(i=0;i<7;i++)

{P1=_cror_(P1,1);

DelayMS(40); }

for(i=0;i<7;i++)

{P1=_crol_(P1,1);

DelayMS(40); }

}

}

单个LED的闪烁

#include <reg52.h>

#define uchar unsigned char

#define uint unsigned int

sbit LED = P1^0;

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=120;i>0;i--);

}

}

void main()

{

while(1)

{

LED = ~LED;

DelayMS(150);

}

}

连绵灯

#include<reg51.h>

#include<intrins.h>

#define uchar unsigned char

#define uint unsigned int

void DelayMS(uint x)

{

uchar i;

while(x--)

{

for(i=0;i<255;i++);

}

}

void main()

{

P1=0x0e;

while(1)

{ if(P1==0xc1)

P1=0x0e;

else

P1=_crol_(P1,1);

DelayMS(80);

}

}

#include<reg52.h> //52单片机头文件#include <intrins.h> //包含有左右循环移位子函数的库#define uint unsigned int //宏定义#define uchar unsigned char //宏定义void delay(uint z) //延时函数,z的取值为这个函数的延时ms数,如delay(200);大约延时200ms.{ //delay(500);大约延时500ms. uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); }void main() //主函数{ uchar a,i,j; for(j=0;j<3;j++) //寄偶交替 { P1=0x55; //点亮小灯 delay(300); //延时300毫秒 P1=0xaa; delay(300); //延时300毫秒 } for(j=0;j<3;j++) //流水灯 { a=0xfe; for(i=0;i<8;i++) { P1=a; //点亮小灯 delay(300); //延时300毫秒 a=_crol_(a,1); } } P1=0xff; for(j=0;j<3;j++) //从两边往中间流 { P1=0x7e; //点亮小灯

delay(300); //延时300毫秒 P1=0xbd; delay(300); //延时300毫秒 P1=0xdb; //点亮小灯 delay(300); //延时300毫秒 P1=0xe7; delay(300); //延时300毫秒 } P1=0xff; for(j=0;j<3;j++) //从中间往两边流 { P1=0xe7; //点亮小灯 delay(300); //延时300毫秒 P1=0xdb; delay(300); //延时300毫秒 P1=0xbd; //点亮小灯 delay(300); //延时300毫秒 P1=0x7e; delay(300); //延时300毫秒 } P1=0xff; for(j=0;j<6;j++) //全部闪烁 { P1=~P1; //点亮小灯 delay(300); //延时300毫秒 } P1=0xff; while(1);} a=_crol_(a,1); } } for(j=0;j<3;j++) { a=0xfa; for(i=0;i<5;i++) { P1=a; delay(300); a=_crol_(a,1); } } P1=0xff; for(j=0;j<3;j++) //从两边往中间流 { P1=0x7e; //点亮小灯 delay(300); //延时300毫秒 P1=0xbd; delay(300); //延时300毫秒 P1=0xdb; //点亮小灯 delay(300); //延时300毫秒 P1=0xe7; delay(300); //延时300毫秒 } P1=0xff; for(j=0;j<3;j++) //从中间往两边流 { P1=0xe7; //点亮小灯 delay(300); //延时300毫秒 P1=0xdb; delay(300); //延时300毫秒 P1=0xbd; //点亮小灯 delay(300); //延时300毫秒 P1=0x7e; delay(300); //延时300毫秒 } for(j=0;j<5;j++) { P1=0x66; delay(300); P1=0x99; delay(300); } P1=0xff; for(j=0;j<6;j++) //全部闪烁 { P1=~P1; //点亮小灯 delay(300); //延时300毫秒 } P1=0xff; while(1);}

 
友情链接
鄂ICP备19019357号-22