mcs 51系列单片机

1.       89C51系列单片机属于什么工艺类型的单片机?2.       编程器的作用?3.       51有几个中断源?4.       MCS—51单片机是几位的单片机,其中I/O有什么特点,尤其是P3.0和P3.1口是什么口?作为输入时该注意什么?5.       MCS—51单片机中振荡电路,外接晶振电路?6.       51系列单片机的封装引脚定义及其功能。7.       单片机片内、片外存储器如何选择?8.       MCS—51的程序存贮器用于存放运算中间结果。9.       PSW是一个8位的专用寄存器,用于存程序运行中的各种状态信息。10.   决定程序执行顺序的寄存器是什么?11.   ALE引脚的特点是什么?12.   MOVC的功能是什么?13.   51的指令寄存器是对指令寄存器中的指令进行译码,将指令转变为执行此指令所需要的电信号。14.   完整的指令格式由什么构成?15.   DAC0832的输入电平与TTL电平兼容。16.  AD与DA的作用是什么? 0809是几位的什么转换器?及通道?几位的?17.  DAC0832是什么输出型数模转换芯片?分辨率几位?三种工作方式?18.  单片机的复位电路的特点?是第几引脚复位?什么情况下复位?19.  单片机最小系统硬件设计图?20.  MCS—51单片机最小系统的振荡周期,机器周期,时钟周期的关系?21.  8051在存储结构上采用什么结构?22.  串行通信中按数据流的方向分成哪三种基本的传送方式?23.  8051与8031的区别是什么?24.  程序状态字寄存器PSW的特点?25.  计算机总线的分类?26.  80C51单片机的程序存储器最大寻址范围?27.  编程:跑马灯程序编写;8个发光二极管流水灯程序编写。

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);
}
}
/* 花样流水灯程序 间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。*//*********************************************************/#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);}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-10-18
你这是考试题,还是自己看书吧,书上写的很清楚…
相似回答