单片机 Mooc 课程讨论区问题集锦
-
单片机和嵌入式系统的根本区别和联系是什么?
答:单片机和嵌入式系统的根本区别在于是否使用操作系统,没有采用 OS 的 32 位的ARM 处理器就是 32 位单片机。
-
在没有学过微机原理的情况下学习单片机要注意哪些问题?
答:该课程就是给没有计算机基础的大二同学讲的,只要坚持就能学会学好。
-
51 单片机是最基础的单片机,是不是相当于打基础?换用其他类型的单片机是不是要重新学啊?还是基本和 51 相通啊!
答:打个比方:学 51 单片机就像学英语,英语学会了,换了法语、德语等,虽然还有再学习,但比起没有英语基础的要好很多。
-
关于购买单片机开发板 http://item.taobao.com/item.htm?id=540658633255&spm=2014.21600712.0.0。淘宝店铺:清翔电子直销店。
-
老师,你这款单片机支持win10 的么?
答:win7,win8,win10 有 32 位和 64 位,对我们所用的开发软件的兼容都不同,建议的终极解决方法是装虚拟机 VM,在虚拟机里再装 win XP,就什么问题都没有了。以后再学习嵌入式系统也没有问题了。
-
可以用天祥 TX-1C 单片机来做课程中的实验演示吗?
答:可以用,但一般都没有在线仿真功能,JD51 实验板具备在线仿真功能,它可以起到事半功倍的作用。
在线仿真对应的是常用的下载模式,下载模式的工作原理是编好程序,只要语法没有问题就可以把二进制代码下载到单片机中执行,但出现问题后只能自己找源代码中的错误;在线仿真可以单步执行程序,每条指令有错误都能发现并及时修改,还可以断点调试,即怀疑哪里有问题,就在这条指令前让程序停止,即可看错在哪里了。 keil+proteus 可以实现在线仿真,与 keil+JD51 的区别是:前者仿真成功,不一定真的在硬件上成功,但后者调试成功在硬件上即成功。
-
总线是干啥的?
答:总线,英文:BUS,在计算机里就是数据的公共通道。
-
我们学的是MSP430 单片机,适合看这个课程吗?
答:不太适合。
-
老师能不用 protus,直接用 51 单片机做作业吗?
答:如果你有 JD51 开发板或其它 51 板也可以做作业的。但学会proteus 仿真可以在没有硬件的情况下调试程序和外围电路。
-
不会编程能学好单片机吗?
答:本课程基本上可以零起步。
-
我不是本校的,我们的课本讲的是 AT89S51 和这个 JD51 实验方式一样么?
答:JD51 可以替代 AT89C51 ,并且资源更多、功能更强大。实验方式比它多了重要的在线仿真调试功能。
-
老师,你那个用的有电路那个软件名字是什么?
答:KEIL 和PROTEUS。
-
老师,问一下关于单片机和开发板的关系的问题。
答:单片机使用比较灵活,但是外围电路要自己弄,开发板容易用,但是电路没法改变,用途就要单一一点。
-
老师,您好,我有一块同学送的stc12 的板子,能学这个吗?
答:可以的,stc12 和 51 非常相似,就是加了一些其他功能,更容易用一些。然后需要注意在延时的时候,不能直接照搬,指令执行速度不同
-
我有C 语言基础,总感觉汇编语言不好理解 老师如何看?
答:有 C 语言基础,可直接用 C51,很快就能上手,编程的效率还高,网上可参考的代码多。汇编语言对单片机工作原理的理解是不可替代的,对硬件的操作及对软件执行时间要精确的毫秒的一些应用汇编语言要好的多,C51 有时无法实现。C 语言一般可以自学,汇编语言一般难以自学。
-
为什么要中断呢?
答:有了中断,单片机就能干更多的事了。就像人有了手机,就可以及时处理很多事了(手机来电或信息相当于中断)。
-
我想问一下有关下载程序的问题,为啥有的 stc 下载器 TXD 接 P3.0 RXD 接P3.1 ,和书上的不一样,书上RXD 接P3.0 TXD 接P3.1这是为什么?
答:RS-232 接口是点对点通信方式,需要将两点之间的 txd rxd 交叉连接才能正常通信,你所碰到的现象是因为交叉连接实现的位置不同导致的,看电路图就明白了。
-
请问,arduino uno r3 开发板与 51 单片机的关系。
答:不是 51 单片机,是另一种架构的单片机。在本课程中不能用。
-
总是感觉汇编语言没有语言好用。
答:是。汇编语言难学也难懂,51 单片机的汇编相对还是容易的,网上有很多只用 C51 的学习的工具,也能做到能用单片机,但要深入应用单片机、理解单片机工作原理,汇编是最好的。
-
求可安装与win10 的KEIL 和PROTEUS 的软件?
答:win8/win10 直接装 keil 和 proteus 若运行有问题,还可以采用win8/win10+vmware+win xp+keil 和 proteus 的方式
-
请问该课程是教汇编语言还是C 语言?
答:汇编语言。
-
用STC12C5A60S2 的板子型号交作业可以吗
答:是和 51 兼容的,可以。
-
我们老师是教我们用汇编语言写单片机,你的课程是用 C 还是用汇编啊。
答:用汇编语言即可。交大本科生的要求是最好用"双语"。即:汇编与 C51。
-
想学习单片机然后进入嵌入式系统设计,不知道怎么学习,您可以指点下需要学习什么东西,怎样学吗?
答:先学单片机,再学嵌入式系统。需要C 语言基础。
-
1k 是什么?
答:1K=1024=2 的 10 次方。
-
关于本课程所用到的仿真软件资源。仅供学习:链接:http://pan.baidu.com/s/1nuZajVj 密码:4i12
-
一般电炉的温度控制系统都是买现成的温控,但是我想做的一个装置,市场常见温控不能实验,就一个 51 单片机能够很好的控制吗?
答:单片机和能控制多少功率的电炉没有关系,单片机只是发出指令,控制电炉的是功率部分,而且你是打算用继电器控制还是 PID 控制或是怎么,电路差异是比较大的,比如需要 PWM 波的话,就用 STC 的,继电器的 51 也可以,但是超调量大,误差大。
-
程序寄存器里的东西是不能改变的吧?只能读取?
答:程序寄存器里的东西是只能读取,只有用特殊方法才能写入,如:编程器,下载器等。
-
程序计数器就是微机原理的IP 吗?
答:是的。
-
为什么要把 DPTR 和程序计数器设计成 16 位的?
答:因为有 64K 地址空间,2 的 16 次方是 64K.
DPTR,是一个十六位的指针,是由两个八位的寄存器所组成,主要用来读取片外扩展的程序存储器,或者读写片外扩展的数据存储器。
-
2.5 节I/O 端口中介绍P1 时讲到准双向口,突然跳了一小段,直接跳到P2 口了,老师可以再讲一下什么是准双向口吗?
答:因作为输入方式时,对应的口锁存器必须先置 1,以关断输出驱动器,引脚上拉电阻可将电平拉到高电平,然后进行输入。也就是和内部电路有关。所以是准双向输入/输出口。
-
**是不是程序存储器的存储空间最大是 64KB,如果装上了 64KB 的外部存储器,要么是只用其中的 60KB,再配合内部 ROM 的 4K 起使用,形成 64KB,要么是只用 64KB 的外部存储器,内部 ROM 不再使用,形成 64KB。也就是说 8051 即使装上了 64KB 的外部存储器,实际上最多也只能使用 64KB 的程序存储空间,而不是 68K。对吗?这是不是受程序计数器的寻址范围所决定的?
答:访问程序存储器用 MOVC 指令,PC 是指令指针,两个都不区分内、外。有扩展外部程序存储器的话,先访问内后外。
- 关于内部数据存储器的使用,是不是要么内部 RAM(128B)+SFR(128B),要么内部 RAM(128B)+内部 RAM(128B)。可不可以是例如内部RAM(128B)+SFR(8B)+内部 RAM(120B)这种形式?
答:8051 内有 128B 数据存储器加上特殊功能寄存器
- 数据指针 DPTR 和程序技术器 PC 的区别是不是就是一个是用来对片外数据存储器进行寻址,一个是用来对程序存储器进行寻址?如果是这样,那么片内数据存储器的寻址是由什么寄存器来负责的?是不是片内数据寄存器不需要由特定的寄存器来进行寻址?
答:访问外部数据存储器用MOVX 指令
- 程序写入单片机后可不可以删除?删除后里面会不会留下痕迹?可以用来恢复的那种?
答:使用专用工具或软件可以删除,不会留下痕迹,不能恢复
- 视频说单片机工作的两种模式:下载模式和仿真模式,这两种模式是什么,有什么用?
答:简单说下载模式就是把编译成功后的二进制代码烧进 flash rom里,单片机直接全速运行程序,但不能单步运行。在线仿真模式则可以单步运行,可以调试你编写的程序,发现其中的 bug。一般而言,在线仿真是下载运行的基础。
- 我学习了 AT89S51 单片机的硬件结构。我想问下MCS-51 单片机和 AT89S51 单片机有什么异同?
答:MCS-51 是 intel 公司的叫法,AT89S51 是后来 Atmel 公司基于 intel MCS-51 单片机的授权加入 flash rom 而推出的替代产品,完全兼容于MCS-51。
- 请教老师:复位后的 P1、P2、P3 不是全为 1 状态吗?其内容咋为 00H 呢?
答:复位后各个端口是"1"。
- 请问一下TX-1C51 和JD51 是有怎样的本质区别?
答:JD51 有在线仿真功能,电脑连上 JD51 实验板,可以每执行一条指令停下来看看是否执行正确,也可以在认为可能出错的地方让程序停下来观察执行结果,对与初学者或职业工程师是必备的开发工具。
- ROM 和RAM 到底是什么意思?
答:ROM :read only memory,掉电后存储器内容仍然存在。RAM: random access memory,对于易失性RAM,掉电后存储器内容消失。
-
复位后单片机 P0-P3 的内容是什么?我只知道复位后他们的初始状态为全 1,怎么判断内容了?
答:读P0~P3 口即可知道。
-
老师您好,我们需不需要学习制作面包板?里面的电路也不懂,怎么设计呢?后期的课程里面有讲解吗?
答:不用学PCB 板的制作,本课程只是单片机学习的基本部分。
-
EA 为 1,用内部 4K,用完之后用外部的,从外部的哪里开始?0000H?还是 1000H?EA 为 0,是不是全部用外部的?
答:从 0000H 开始。
-
视频上说课程的学时是 32 学时。那请教下,每周的课程相当于课堂上的多少学时?
答:每周的课程相当于课堂的 3 学时左右。网上学习有特殊性,我们也不断探索中。
-
程序存储器叫 ROM,ROM 不是只读的吗?怎样往里面写指令呀?
答:程序存储器 EPROM 要用下载程序才能写入。
-
请问寻址空间和寻址储存空间是什么区别?例如为什么直接寻址的寻址空间是内部数据存储器,寻址存储空间是程序存储器和了 SFR。
答:寻址是寻找操作数地址的方法,操作数可以存放在数据存储器中也可以存放在程序存储器,这样就有各种寻址方法,立即、寄存器、直接、间接等等
-
双向并行 I/O 口中的'双向'是什么意思?是不是既可以输入又可以输出,也就是双工的意思?锁存器的作用是什么?
答:是,双工方式是串行通信里提到的,学串行时你再去理解。锁存器一般是用来锁存地址的
-
老师,在后续学习中,除了你推荐的开发板,还需购置什么硬件扩展。
答:掌握了JD51 后,在应用中需要什么就买什么硬件即可。
-
请问一下老师开发板可以怎么用,就可以液晶屏显示字和指示灯亮吗,还有其他功能?
答:去看视频 1.11 讲了都能实现什么功能。
-
MOV. P1,#0FFH 为什么是直接寻址而不是立即寻址?
答:对于源操作数#0FFH 来说是:立即寻址。
-
内部结构不包括晶振?
答:振荡器要外接晶振
-
DPTR 指向片外存储器,那么是指向扩展的程序 ROM,还是扩展的数据RAM?
答:这个数据指针要通过指令寻址方式理解;寄存器间接寻址是寻址外部数据存储器,基址+变址间接寻址可以应用到 MOVC 指令里。要结合指令和寻址方式理解
-
加 1 指令好像有 5 条啊,课件上没有INC DPTR。
答:是的。有:INC DPTR,但没有 DEC DPTR
-
老师,能不能发一下这些元器件的完整封装?
Comment Footprint Designators 1 U5 红外传感器 SIP3 INFA 2 POWER 电源座 PWR J3 3 SST89E58RD SST89E58RD DIP40 U1 4 MAX232 MAX232 DIP16 U2 5 LEDSEG7_4 4 位 LED SEGLED(共阳) U4 6 1602LCD 16 针排座 SIP-16 J2 7 DS18B20 温度传感器 SIP3 1 8 DB9(母) 串口(母) DB-9RA/F J1 9 Comment mini USB 头 USBFOOT USBPOWER 10 BUZZER 蜂鸣器 BUZZER B1 11 74HC573 74HC573 DIP20 U3 12 470*8 排阻 470*8 SIP-9 RS1 13 470 电阻 470 AXIAL-0.4 R2-R7 14 22pF 瓷片电容 RAD-0.1 C2-C3 15 11.0592 晶振 XTAL1 Y1 16 10uF 电解电容 10uF C0.2 CE1 17 10K*8 排阻 470*8 SIP-9 RS2 18 10K 电阻 10k AXIAL-0.4 R1,R9-R12 19 100uF 电解电容 100uF C0.26 CE2 20 1.5K 电阻 1.5k AXIAL-0.4 R8 21 0.1uF 瓷片电容 0.1uF RAD-0.1 C1 22 1uF 电解电容 1uF C0.2 C4-C7 23 1N4148 二极管 POLAR0.3 D1 24 LED 发光二极管 LEDQ D1-D8 25 S8550 PNP 三极管 PNP Q1-Q5 26 按键 按键 BP4 27 开关 开关 PB6 SP 28 DIP 座 DIP 座 DIP40 29 DIP 座 DIP20 30 DIP 座 DIP16
-
为什么我的开发板开机的时候蜂鸣器不是响 4 下,只听到咯噔咯噔的声音?
答:蜂鸣器不是响 4 下,只听到咯噔咯噔的声音,是蜂鸣器有问题或焊反了,你应该找商家处理。
-
8088 这样的微处理器有什么区别 它们的结构指令都很像 是用的地方不一样吗?两个都能完成一样的功能吗?
答:学汇编语言程序设计一定是要对 CPU 型号,不同的型号对应的指令不一样,但基本原理类似。
-
寄存器间接寻址时片类数据存储器的低 128 单元只能采用 R0 和 R1,我一直不知道这两个寄存器是哪里的寄存器。工作寄存器区有 4组R0~R7,这两个寄存器是指的这 4 组中的R0 和R1 吗?
答:寄存器间接寻址时片内数据存储器的高 128 单元只能采用@R 或 @R1(51 系列单片机中的 52 单片机)。这两个寄存器通常在工作寄存器区有 0 组 R0~R7,也就是地址:00H-07H。Ri(i=0、1)通常在工作寄存器区有 0 组,可以通过 PSW 来设置成 1、2、3 区,这时 Ri的地址就是 08H、10H、18H 开始的 2 个单元了。
-
为什么ORL P1,#0FFH 不能使P1 口的最低位置 1 呢?
答:题意是仅仅将P1 的最低位置位,不改变其它位。
-
堆栈安排在内部RAM 中,不是从 20H~7FH 吗
答:一般从 30H 开始
-
p=0 和 1 区别在哪里?
答:P=1 表示累加器A 中 1 的个数为奇数。
-
老师上课说的 SJMP 是短转移、AJMP 是绝对转移、JMP 是相对转移,有些版本是这样的:SJMP 相对转移、AJMP 短转移、JMP 散转移
答:课上说的是SJMP 是短转移(-128 到127)、AJMP 是为了兼容MCS48系列单片机而设计的 2K 范围内转移(可以不用)、LJMP 是绝对转移,在全地址跳转(64K).
-
感觉在课中说的PC 有多种含义,每种好像指的不是一个东西?
答:程序计数器:Porgram Counter。
-
题目:指令 MUL AB 执行前,(A)=18H ,(B)=05H,则执行后,A、B 的内容分别是( )。A.90H,00H B.90H,05H C.78H,00H D.78H,05H 老师答案为啥不是B?
答:乘积低 8 位放在A 里,高 8 位放在B 里。注意进制转换。
-
能够使 PI 口的最低位置 1 的是()。老师这个是填 SETB PI.0 吗?
答:SEB P1.0 对。
-
教材 2.2.1 运算部件中,关于累加器 A 的描述"累加器A 是一个 8位的累加器 但需要说明的是A 的进位标志位 CY 是位处理器的一位累加器",这里不是太明白,请教老师,A 也有进位标志位吗?还是指PSW 的进位标志位?A 还有什么其他的位?
A 是 8 位累加器,CY 是一位累加器。CY 还是进位/借位标志位。PSW 里的标志位是表示算术和逻辑运算结果状态的,也就是运算结果有加法有进位或减法有借位时 CY=1。
-
堆栈指针 SP 复位后等于 07H,这不是工作寄存器的地址范围(00H~1FH)吗?
答:对。
-
A1=F1H 是怎么回事呢?
答:XRL 是执行逻辑异或的操作指令(二进制数对应位相同为 0 相异 1),并将操作结果存放到目的操作数地址中。A 的内容转换为二进制数是 10000111,30H 的内容转换为二进制数是 01110110,相异或后的二进制数是 11110001,即为 F1H。
-
MCS-51 的立即寻址方式不懂。
答:就是直接把一个具体的数放到指定的程序存储器中。
-
操作码是什么?
答:操作码表示一条指令要完成的功能。
-
老师您好,参加了循迹小车的比赛,编小车的程序,我是用 C 语言还是用汇编让它更加灵敏?
答:C 语言编程能够描述复杂的算法。
-
老师在 2.6 复位电路一节中说 SP 复位后,为 07H,为什么呢?
答:00-07H 是第一组工作寄存器,也就是默认的 0 区。因为绝大多数的应用只用 0 区,所以 SP 指向 07H,要使用堆栈需要+1,也就是说真正的堆栈是从 08H 开始的。因为寄存器 1-3 区基本不用,所以从 30H 还是从 55H,是根据你对内部 RAM 的应用及堆栈的长度决定,其实从哪里都可以。
-
既然在未知指令的 PC 地址时,用 AJMP 易出错,且 LJMP 的寻址范围更大,为什么还要有 AJMP 呢,AJMP 的特殊用途或优点是什么呢?
答:SJMP AJMP LJMP 分别是 1、2、3 字节指令,AJMP 是兼容 51 上一代 48 系列单片机的。
-
您在课程中说:bdata 片内可寻址范围,是 20~3F,这是 32Byte,应该是 20~2F 吧?
答:是 20H~2FH。
-
请问R1 和R0 是不是也具有 DPTR 的功能?
答:是,但 R0、R1 是 8 位,通常用于内部 RAM ,DPTR 是 16 位,通常用于外部RAM 或ROM。
-
对于那些可位寻址但却没有位定义的特殊功能寄存器来说,位寻址有何意义?
答:位寻址只是为了配合位指令采用的一种寻址方式,访问的是一位数据。
-
请问如果学会了 51 的编程,那么其他的单片机编程就会了吗?
答:基本原理是相通的
-
老师给了一个烧写软件,可是我不会用?
答:下载之前,先要测试 JD51 板与PC 机是否连接好了。运行下载软件,选中需要下载的 HEX 文件,选择下载的速率,点击下载即可。
-
课程设计(一)的课件在手机上播放看不清楚,而且请问老师有没有相应程序可以下载?
答:作为课程设计,老师是不会提供答案程序的,你可以编,也可以按视频写,也可以在网上找,无论你用哪种方法能够完成设计,你都有很大进步,关键是对单片机有了信心,也就达到我的目的了。
-
老师,请问执行中断处理程序最后一句指令 RETI 后,到底返回的是等待中断的那一句还是它的下一句?
答:RETI 后,返回的是被打断的下一句。
-
老师,前天我们做实验了,我们是用汇编语言,在学校机房电脑上把keil 考了回去,自个编写源程序,结果在编译源程序时,都显示 targct1 not created 这个是不是和我们个人电脑cpu 有关系?
答:一定与 CPU 无关,与你的程序安装与文件的路径不同有关。
-
请问该课程的实验是自己编写还是有写好的程序呢?因为视频一开头让打开程序 但是并没有在资料中看到这些程序呀?
答:JD51 用 KEIL 编译,也有自己的下载程序。实验的程序,可以自己写,也可以在网上找,然后自己修改,都可以起到学习的作用。
-
老师你好,我想知道这里的FFH 是指什么?
答:0FFH 是十六进制,对应二进制是:11111111,对应十进制是:255。
-
我按照课上说的做,结果发现电平无法驱动 JD51 蜂鸣器,因为是无源蜂鸣器,所以需要振荡源。希望课程能够改进一下。
答:蜂鸣器根据结构不同分为压电式蜂鸣器和电磁式蜂鸣器;而两种蜂鸣器又分为有源蜂鸣器和无源蜂鸣器,这里的源特指振荡源;有源蜂鸣器直接加电就可以响起,无源蜂鸣器需要我们给提供振荡源。理想的振荡源为一定频率的方波。
需要通过编写程序控制一定频率的方波输出来驱动蜂鸣器,这正是我们教学的目的。如果只是加上电平就响,那就起不到教学的效果了。注意:方波频率要控制在声音频率范围内。实际上利用此设备还可以播放简单歌曲。
人的耳朵可以听到 20Hz-20000Hz 的声音. 但是最敏感是 1000Hz-3000Hz 之间的声音。这个方面每个无源蜂鸣器基本都是相同的。
-
如何利用r0 r1 寻外部ram
答:片外RAM 的访问,需要MOVX 指令:
MOVX A,@Ri ;A←((Ri)),i=0,1 MOVX @Ri, A ;(Ri) ←(A),i=0,1
还可以用如下指令:
MOVX A,@DPTR ;A←((DPTR)) MOVX @DPTR, A ;(DPTR) ←(A)
-
内部数据存储器和外部数据存储器,这里的内部是指的 CPU 吗?内部的程序存储器也是指的 CPU 内部吗?
答:不是。内部是单片机内。
-
老师课上用到的延时 20ms 的程序,如下:
D20MS: MOV R4, #100 DY1: MOV R3, #100 DY2: DJNZ R3, DY2 DJNZ R4, DY1 RET
就是这一句DY2: DJNZ R3, DY2 执行完是 2μs×100 的时间,在下一次执行这条语句之前,又执行了DJNZ、RET、MOV,个人认为也消耗一定的时间,不是简单的 100 次 2μs×100 的时间长度?
答:你的思考是对的,实际上是可以精确的计算每一条指令的执行时间,一定是大于 200 的。说 20mS 是因为主要用在按键的去抖动的延时,不需要太精确。
-
能使累加器A 高 4 位不变,低 4 位置F 的指令?
答:ORL A,#0FH
-
指令 MUL AB 执行前,(A)=18H ,(B)=05H,则执行后,A、B 的内容分别是( )。怎么解?
答:两种方法,一是手工用二进制算,按指令的定义分别放在 A B 中,二是用KEIL 调试,直接就能看到结果。
-
程序储存器的全部内存加上全部拓展的外部内存合起来是有 64K还是 68K。
答:只能用 64K,注意EA 引脚的说明。
-
请问电路要自己在 Proteus 上画吗?如果要自己画 这里课件没有proteus 的教程课件啊?
答:你可以不用PROTEUS,直接用 JD51,如果没有JD51 你需要你自学PROTEUS 的使用(不难)。
-
请问答辩计时器用了哪些芯片?有没有电路图呢?
答:可以直接用 JD51 上的数码管和蜂鸣器,电路就是 JD51 的部分电路。
-
十进制数 127 其对应的无符号十六进制数可表示为( )。A.7EH B.7FH C.80H D.81H
答:00000000--11111111 8 位二进制数可以表示为无符号的 0--255 或有符号的 -128—127。所以:7F 对应无符号数 127
-
哪一节是介绍pwm 波的?
答:所谓 PWM 指的是占空比可控的矩形波(没有读懂的去百度吧)通常用 51 单片机的定时器通过软件发PWM。
-
我提交的视频,1 分钟左右就 70M 了,是我压缩的问题吗?
答,建议视频采用 WMV 格式,分辨率 1280720,如果还大,改为:1024600。
-
后面加个H 是什么意思
答:H 是指十六进制数。
-
reg51.h,这个函数库从哪里来,要去网上下吗?
答:KEIL 里就有,最好在JD51 样例程序里修改并写程序。