单片机能跑什么系统问题

查看: 10503|回复: 2
电子专业单片机相关毕业答辩常见问题解答
&答:共同点:都是采用MCU-51内核,引脚和编程方面都是一样,所以统称为51单片机。大家一定要记住51单片机不是单单指的是AT89C51或者STC89C51,51单片机是属于一个系列都采用MCU-51内核。不同点:从这些单片机型号上来认识它们。①:开头的字母指的是生产的厂商。“STC”是宏晶科技、“AT”是Atmel公司;②:“89C”和“89S”这个是单片机型号。‘9’表示内部含有Flash存储器;‘C’表示CMOS产品;‘S’表示含有串行下载Flash存储器;③:“51”和“52”这是表示内部程序存储空间大小。其中“51”表示有4K程序存储空间,“52”有8K程序存储空间,另外还有“54”、“55”、“58”、“516”等依次类推即可。。。所以这个也是在设计中选择单片机具体型号上的一个关键地方。如果程序的大小为5K,那么用“51”的只有4K就装不下不可行,所以只能使用“52”。如果程序只有2K,那么使用“51”有4K的存储空间那就足够了,那么会问使用“52”行吗,这个当然是可以的,只有芯片的程序存储空间大于实际程序的大小就可以,这个好比U盘的大小,大家想下就知道了。答:首先,下载程序你就的有一根线将板子上的单片机和电脑进行连接起来(大家要注意这个不是那个圆孔的电源线,电源线只能用于供电而不能下载程序),那么这根线就叫作下载器。然后,电脑上需要装上下载器对应的驱动。(这个不难理解,就好比,你键盘或鼠标你买回来第一次插到电脑上没有安装驱动是不能用的,等驱动安装好才能使用)。再来,电脑上需要有下载程序的软件。下载程序的时候就只要再软件中选择好需要下载的程序然后点击下载就可以下载进入。(切记STC的单片机需要冷启动才能下载,所谓能启动就是板子上先关闭电源,在电脑上点击下载后,在将板子的电源打开。如果没有冷启动这个是没办法下载的)具备以上三个点就可以将程序从电脑下载到单片机中了。备注:STC和AT这两个单片机的下载程序方法是不一样的,STC单片机用串行下载线(如:PL2303)就可以了,而AT单片机需要用专门的下载器(如:SP200)。对应的下载器驱动也需要安装对应的。下载软件也是需要对应支持。我们下载程序的时候下载软件(STC采用
1.001.jpg (1.71 KB, 下载次数: 11)
15:37 上传
1.002.jpg (1.41 KB, 下载次数: 13)
15:37 上传
)。具体的教程可以下载资料中《11-相关软件下载》文件夹中《程序下载软件《普中下载软件》》的下载链接进行下载,里面有具体的下载教程。答:我们使用的单片机STC89C51/52、AT89C51/52、AT89S51/52中的任何一种都是具有40引脚。其中32个IO口,分为P0、P1、P2、P3四组八位IO口。P0、P1、P2这三组只能作为普通IO口用(正常的输入输出操作),而P3具有普通IO的功能外还可以使用第二功能(如串口通讯,计数器输入,外部中断触发等)。答:51单片机的P0口时漏极开路输出。作为输出:如果没有接上拉电阻(排阻)的话输出电流非常低,输出低电平的时候为0,但是输出高电平是处于高阻态并非5V,也就是说输出高电平不稳定。所以需要添加上拉电阻(排阻)(即:一端连接到VCC),由VCC通过这个上拉电阻给负载提供电流,使得高电平输出稳定。作为输入:当P0作为输入时可以不加上拉电阻(排阻),不过需要在读之前先将P0置1,使P0口处于高阻浮空状态,这样所输入高电平才能被读取,否则无法正确读取到高电平。综合以上,P0加上拉是有必要的,不管作为输入还是输出。输入这个必须的加,输出的话如果没有加在每次读取都得先置1程序上显得麻烦,添加了上拉就不需要多余这一步。答:在51单片机上晶振通常采用的是12MHZ或者11.0592MHZ。采用6MH、24MHZ等也是可以,只要再单片机晶振频率范围之内就可以。如果采用12MHZ晶振的话,经过12分频后一个指令周期刚好1us,这样对于需要计时的程序就非常有帮助了。刚好1us计算非常方便。如果采用11.0592MHZ晶振的话,对于波特率的产生可以作为理论0误差(晶振本身也不可能刚好11.0592MHZ,所以不可能说百分百的)。而采用12MHZ或者别的晶振的时候就可以产生非常大的误差这样就会导致通讯失败。所以在红外遥控,串口通讯上我们都是采用11.0592MHZ。我们在除了以上两种特殊情况选择11.0592MHZ外,其余的都一致采用12MHZ。答:5个。分别为:外部中断0、定时/计数器中断0、外部中断1、定时/计数器中断1、串口中断。优先级(也就是同时发生情况下先执行哪一个中断):外部中断0&定时/计数器中断0&外部中断1&定时/计数器中断1&串口中断。答:&&&&&&&&&&&&& 原理图采用的是DXP软件绘制,而仿真图采用的是Proteus软件绘制。大家会问如果焊接是看哪一个图?焊接的时候最好就是看PCB图,PCB图上的元件尺寸和布局都是最接近实物的,而原理图和仿真图是没有布局,原理图上的元件也没具体的尺寸,仿真图上可能有的元件使用别的代替所有。首先仿真这只是一个模拟现实的虚拟环境,它是处于理想的一个环境下模拟现实情况,然后在显示中可能会出现各种各样的问题,所以告诫大家仿真可行的,你做出东西来也不一定可以运行,大家千万别以为仿真可以的做出来的东西就可以(不过大家仿真我们做的仿真和实物都是经过调试OK的)。比如:在仿真中的单片机你不用接VCC和GND,而在事物上你没接连电都没有还怎么运行;在仿真中复位电路和晶振电路也可以不接,而在实际上不接就等同于一个人没有心脏(无法运行);还有仿真中DS1302时钟芯片在每次开启仿真时都会自动校准电脑上的时间(也就是电脑上时间多少仿真里就多少),而实际就没办法只能靠备用电池提供电源继续供电,才能保持时间的准确;还有仿真中可能很多器件是没有的比如酒精传感器、烟雾传感器、震动传感器等等,没有怎么办?那就得根据这些传感器特性找到对应的起来来替代,酒精传感器、烟雾传感器这两种可以用电位器来模拟输出的电压,震动传感器可以用按按键来模拟实际中是否震动产生。。。除了以上列举的几种不一样的地方还有很多这里就不一一列举。答:电位器。作用:首先这个电位器接入的是LCD1602第3引脚,查阅LCD1602手册可以知道第3引脚是调节灰度的,而且是采用电压进行控制,在0.5~1V左右显示正常。所以我们采用一个电位器通过连接电源进行分压后输入第3引脚,然后调节电位器就可以得到合适的电压值使得显示清晰。可是有人会问那为什么不直接计算一个合适的电阻进行分压接进去就好了,用电位器多麻烦。这个也是考虑过但是为什么还选择电位器,而不是固定电阻,不是省什么成本。而是,供电电压可能不会那么稳定的是5V,那么我们计算的时候就按一个电压进行计算出来这样就进去就一小范围的适合。如果是电位器的话我不管你电源电压多少,我调节电位器都可以调节出合适的电压值出来。答:并口通讯。最多能够同时显示16*2字符(字符就是像数字、字母这种)内容。答:MQ-3是半导体气敏传感器,它的电导率会随着空气中酒精气体浓度的增加而增加,输出的电压与环境中的酒精浓度呈现出近视线性的关系,电压每升高0.1V,气体浓度增加20PPM。答:首先要知道LED灯上串联的电阻为分压作用。而LED灯工作电流在4~20ma,工作电压3V。根据串联的原理,下图中R1电阻上的电流也应该为4~20ma,而电阻两端的电阻就为:电源电压VCC& -& LED灯工作电压3V=2V。根据R=U/I,可以得到R1阻值在100~500Ω。而如果采用500Ω电阻的话LED灯过于亮,长时间容易烧坏,所以加大了R1阻值到1K。
1.003.jpg (2.89 KB, 下载次数: 18)
15:37 上传
答:采用的是有源蜂鸣器。有源蜂鸣器在控制的时候只需要施加高低电平(具体看驱动电路的设计)就可以控制发出声音。无源蜂鸣器在控制的时候需要脉冲信号才能控制蜂鸣器鸣叫。答:单片机刚上电的时候所有的IO口会处于短暂的高电平状态。如果采用NPN三极管的话是高电平三极管导通,蜂鸣器鸣叫,这时在上电的时候就会出现鸣叫一声。如果采用PNP三极管的话是低电平三极管导通,蜂鸣器鸣叫,这时在上电的时候处于的高电平并不会对蜂鸣器造成影响。作用:由于单片机的IO口输出电流比较低,而蜂鸣器的工作电流又比较大所以需要三极管进行放大电流才能使得蜂鸣器正常的工作。答:&&&&8位AD转换芯片。具有两个通道输入。可以实现四种采集方式,即通道0、通道1、通道0为正通道1为负差分输入、通道0为负通道1为正差分输入。
15:39 上传
点击文件名下载附件
下载积分: 黑币 -5
54 KB, 下载次数: 49, 下载积分: 黑币 -5
可以,谢谢
真的很有用
无效楼层,该帖已经被删除
无效楼层,该帖已经被删除
Powered by单片机的问题_百度知道
单片机的问题
1.unsigned char code
dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; 这是定义了一个一维数组dispbit,可是code在这里是什么意思啊???
2.void T1zd(void) interrupt 3
//3定时器1的中断号
1定时器0的中断号 0外部中断1 2外部中断2
我有更好的答案
1。“code”是单片机C语言特有的关键字在单片机中RAM的空间特别小,特别珍贵。RAM空间,存放变量。而一些常量,比如码表等常量放在ROM中。所以单片机中code就是告诉单片机这个数据放入ROM中。本例中dispbit[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdF,0xbF,0x7F}; 数组内容为常量,故加上code,以节约RAM的空间。其实code放在unsigned char 前也可以,比如code unsigned char dispbit[8]效果一样。2.关于void T1zd(void) interrupt 3
“interrupt ”是单片机c语言中断关键字,至于后面的0,1,2,3,4,5,分别表示0-外部中断01-定时器02-外部中断13-定时器14-串口中断5-定时器2“interrupt ”是单片机c语言中断关键字,是c51 语言在单片机中规定的,在程序编译时指明中断的类型。当相应的中断发生时,并执行这个中断函数。本例中当定时器计数时间一到(即 TH1和TL1全部计满,并溢出 ),便执行下面程序,将0x1c放到 TH1中
0x18放到TL1 中,再开始重新计数(不断加1),每计满一次
LedNumVal值 加1。如此下去。。。
采纳率:59%
1.code 是把数组固定到ROM里面,而不是放在RAM里面,减少RAM的使用量,例如使用51单片机的时候如果数组大于256B,那么RAM就不够用了,所以把不会改变的数组放到ROM里面,当然,如果是会时常变化的数组,是不能固定到ROM中的;2.都是这么用,应该是编译器设定的,你就当成是在KEIL编译器下编写51中断程序的模块吧。
1,code的意思就是告诉编译器将这个一维数组做为常量存放在程序存储器ROM或flash里面2,不用定义,直接写就好就像写调用的子程序一样
为您推荐:
其他类似问题
单片机的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。关于51单片机内存问题,一直是个疑惑大家的问题,因为51单片机是个很另类的单片机。下面我给楼主讲解一下:51单片机之所以另类,是因为,他寻址内存的空间,不是靠总线,是用指令的方式。51单片机有以下几个内存模块组成:1】ROM或者Flash,叫程序存储区,你写的程序是存在这里面的,上电后从这里面执行。程序存储区也分为片内和片外,一般来说,现在的51很多已经做到了64K,所以很少有外扩片外Flash或者片外的Rom了,Flash或者Rom不管是片内还是片外的,只能用来定义常量,是用code来修饰,也就是说,用code来修饰的东西,在程序运行过程中,不能修改;2】RAM有------内部RAM的低128位(00-7F),对应C语言就是data,比如我定义一个变量,&&&&&&&&&&&&& data unsigned char Var = 0;那么,这个Var变量就是放在内部的低128位Ram中&&&&&&&&&&&&&& -------内部RAM的高128位(80-FF),对应C语言就是idata,比如我定义一个变量,idata unsigned char Var = 0;那么,这个Var变量就是放在内部的高128位Ram中&&&&&&& -------特殊功能寄存器(SFR)(80-FF),对应C语言就是Sfr比如我定义一个变量,Sfr unsigned char Var = 0x90;那么,这个Var变量就是放在内部的特殊功能寄存器中,这是你对Var操作,相当于操作一个特殊的寄存器,但是小心,不能随便定义Sfr变量,很危险&&&&&&&&&&&&& ------外部RAM 64K(0000-FFFF)外部的RAM可以扩展到65536个,但是前256个算是一页,这一页比较特殊,是用pdata来修饰的,当然,也可以用xdata来修饰。除了第一页的256个以外的其他65280个空间,只能用xdata来修饰;回过头来讨论pdata和xdata,这两个都能修饰外部Ram的第一页,但是,Pdata只能修饰第一页,即最前面的256个外部Ram,那么,这最前面的256个到底用Pdata还是Xdata好的呢?答案是Pdata,因为Xdata修饰的变量,用的是DPTR寻址,Pdata用的是R0和R1.DPTR因为是16位的,所以可以覆盖整个的64K外部Ram,R0和R1是8位,所以只能寻址最前面的256个,也就是外部Ram的第一页,但是,用R0寻址,比DPTR快一倍,代码也小的很多楼主又疑惑了,好多地址是重复的,比如,我向80H地址写一个数值,单片机怎么知道读的是内部的高128位RAM?还是SFR?还是外部64K的RAM呢?答案是用指令,如果是直接寻址,那么访问的就是SFR,如果是R0或者R1间接寻址,就是内部高128位RAM,如果是DPTR或者是R0,R1间接寻址,且配合的是MovX指令,那么就是访问外部64KRAM中的第80H个地址。概括一下来说,51的内存由以下组成:1----程序存储器(包括片内Flash或Rom,也包括片外Flash或Rom,C语言用Code定义)2----内部低128位Ram,C语言用data定义3---内部高128位Ram,C语言用idata定义4---内部SFR,C语言用Sfr定义5---外部65536个Ram(通常,很多单片机厂家不会给你扩展那么多的,一般来说扩展256个字节或者1024个字节就差不多了,最近宏晶的出了个扩展4096字节的。这65536字节的Ram,前256个可以用Pdata修饰,也可以用Xdata修饰,超过256个之后的,只能用Xdata修饰)以上所说的只是针对51内核的单片机,其他内核的,像ARM之类的,不是这种结构的。最后,回答楼主的问题:片外存储区是什么?这个问题太模糊,答案可以是外扩的Flash,也可以说是外扩的RAM,如果问题是这么问的:程序或者常量存储在片外存储区,这个片外存储区指的是什么?答案是外扩F如果问题是---变量存储在片外存储区,这个片外存储区指的是什么?答案是外扩RAM;一般来说,如果不指明的话,外内存储区,行业内人士指的是外部的Ram。片内存储器是什么?是不是就是内部的E2PROM?片内存储区一般来说,指的是内部的Ram,包括高128位(idata)和低128位(data)片内存储器,这个说法我没听说过,可能是EEPROM吧。
阅读(...) 评论()鍙?渶涓

我要回帖

更多关于 单片机型号有哪些 的文章

 

随机推荐