导航:首页 > 操作系统 > 单片机c51答案

单片机c51答案

发布时间:2023-06-02 13:08:12

⑴ 请问C51单片机的这道选择题怎么做

1)要对外部信号电平持续时间进行计数,就需要到内部计数脉冲信号,所以 C/T=0;

2)要用外部信号来启动定时/计数器,就要令 GATE=1;

3)因此从给出的选项看,只有 80 和 09 符号要求;

80 是启动 定时器1,方式0,13位计时计数器 (8192)

09 是启动定时器0;方式1,16位计时计数器 (65536)

⑵ 单片机原理与应用及c51程序设计 第二版 课后习题答案 杨加国 谢维成编着

指导教师签字
学生签字
2009年3月15日

题目来源
指导教师推荐□v 自选□ 其它□

题目类别 基础研究□ 应用研究□v 其它□

一、调研资料的准备
时钟模块主要是用于对时、分、秒、年、月、日和星期的计时。该模块采用的芯片为DS12C887 时钟芯片。此芯片集成度高,其外围的电路设计非常的简单,且其性能非常好,计时的准确性高。
DS12C887为双列直插式封装。其具体与单片机的连接如下所述:AD0~AD7双向地址/数据复用线与单片机的P0口相联,用于向单片机交换数据;AS 地址选通输入脚与单片机的 ALE 相联用于对地址锁存,实现地址数据的复用;CS 片选线与单片机的 P2.6 相联,用于选通时钟芯片;DS 数据选通读输入引脚与单片机的读选通引脚相联,用于实现对芯片数据的读控制;R/W 读/写输入与单片机的写选通引脚相联,用于实现对时钟芯片的写控制;MOT 直接接地,选用 INTEL 时序。IRQ引脚与 8051 的 INT1 相连,用于为时间的采集提供时间基准。
二、选题依据
当前,在世界范围内,一个以微电子技术,计算机和通信技术为先导的,以信息技术和信息产业为中心的信息革命方兴未艾。为使我国尽快实现经济信息化,赶上发达国家水平,必须加速发展我国的信息技术和信息产业。而计算机技术怎样与实际应用更有效的结合并有效的发挥其作用是科学界最热门的话题,也是当今计算机应用中空前活跃的领域。
三、选题目的
本次实验的完成证明了单片机的储存功能, 从另一个角度上,我们可以看到这种功能的发展前景。当前,时髦的储存器比比皆是,我们的这个小小的设计也许在这些MP3,MD3面前算不了什么, 但是如果我们能在这个领域发展到微型芯片的程度,我们也许可以领导一代储存器的新潮流。
四、选题要求
五、进度安排
第一阶段 2008年12月---2009年2月 资料准备阶段
大量阅读与该课题有关的资料及相关的论文,酝酿课题实施方案及相关措施
第二阶段 2009年3月---2009年4月中旬 初稿写作
根据开题报告及指导教师对课题内容、完成形式的要求得到相应的资料及结果。及时听取导师的意见,完善方案措施;继续开展研究;争取有一定的成果并完成初稿接受检查。
第三阶段 2009年4月中旬
根据导师对初稿的评定结果进行改进,以利于论文的继续进行。
第四阶段 2009年4月下旬---2009年6月定稿
完成毕业论文的写作并交导师评阅,根据导师提出的要求进行必要修改,进一步完善论文的攥写
六、完成毕业论文所需条件
在指导教师的帮助下,通过仔细查阅书籍、期刊,进一步在互联网上搜索学习与选题有关的专业知识,完成对相关知识的掌握。并适当进行调研及相关实验等。
七、主要参考文献
《单片机原理与接口技术》,余锡存主编,西安电子科技大学出版社,2001.7.
《MCS-51单片机原理与应用》,蔡美琴主编,高等教育出版社,1992.8.
《单片机原理与应用技术》,张友德、谢伟毅主编,机械工业出版社,2004.3.
单片机原理接口与应用》,黄遵熹主编,西北工业大学出版社,2002.5.
《单片机原理与应用》,刘华东主编,电子工业出版社,2003.8.
刘文涛.MCS-51单片机培训教程(C51版).北京:电子工业出版社,2005.
《51系列单片机及C51程序设计》,王建校、杨建国主编,科学出版社,2002.4.
《单片机原理与应用》,朱月秀、濮阳槟、骆经备主编,科学出版社,2004.3.
《新编单片机原理与应用》,潘永雄主编,西安电子科技大学出版社,2003.2.
《单片机原理与应用》,孙俊逸主编,清华大学出版社,2006.2.
《单片机原理与应用》,李全利主编,清华大学出版社,2006.2.
《单片机原理及其接口技术》第二版,胡汉才主编,清华大学出版社,2004.2.
夏继强. 单片机实验与实践教程. 北京:北京航空航天大学出版社, 2001.
杨将新,李华军,刘东骏.单片机程序设计及应用.北京:电子工业出版社,2006.
谢维成,杨加国.单片机原理与应用及C51程序设计.北京:清华大学出版社,2006.

评委评语及其建议:
选题依据充分,意义、目的明确,调研资料准备丰富,进度安排合理;完成任务所需条件具备,可以进行论文的写作。

评委签字:
系(院、部)部盖章:
2009 年 3月10-16 日

⑶ 关于C51单片机单片机的几个问题

1、徐汉斌版单片机微型计算机原理教材P144上说“中断服务程序最后一条指令必须是中断返回指令RETI”,
这句话是不是错了?
如果最后一句话是跳转指令不是也可以么,只不过程序不会回到断点处罢了,PC也会填充跳转处PC地址

--写跳转指令、或者写其它什么指令,都行,随你便。单片机都会执行。
--只是,单片机没有执行 RETI 指令,中断程序就没有结束。
--如果,你不写 RETI,中断后,单片机就永远处于中断程序之内。

2、在方式0定时器T0的初值为1E0CH,则TH0,TL0的初值分别为()
这题答案给的居然是F0H、0CH,我觉得分明是1EH、0CH啊,是不是答案错了

--写成二进制:1E0CH = 0001 1110 0000 1100B
--取其低 13 位,写成高八位、低五位:11110000、01100
--方式0的初值,就应该是:F0、0C。

3、”MCS 51的程序计数器PC不能被用户使用,因为他没有地址“,
首先,不能被用户使用指的收拾什么?其次,它没有地址那他到底在哪?
--PC 的数值,时时刻刻,在自动加一,这个特点,用户对其,不可控制。
--但是,用户,可以用 JMP 指令,改变 PC 的数值。
--说 PC 不能被用户使用,实际上是他不会用。
--51 单片机里面,确实没有 PC 的地址,因为,谁都不需要这个地址。

4、MOV 20H,@DPTR 这个语句错了是因为DPTR只能用于片外寻址么
--这个指令,并不存在。
DPTR只能用于片外寻址么
--查一下指令表,就知道了。

5、”80C51单片机子程序调用时能自动保护断点和现场“,
这句话错了是不是因为只能自动保护断点不能自动保护现场?
--中断时,51 单片机,采用压栈的方法,自动的保护断点地址。

--保护现场 ?
--单片机,不知道你的现场是什么。
--把单片机和保护现场联系在一起,就是狗戴嚼子,胡勒!

6、MOV A,#33H 是把33H当成无符号数吧?那么如果我想移入一个带符号数呢

就写上负号即可。
MOV A, #-33H
这就行了。

7、向前转移的偏移量为什么等于(目的地址+0100H)-(原地址+3),0100H是什么?
--编写程序,现在都用编译软件来进行编译。
--编译软件,会自动计算程序中的偏移量。
--编程人,根本不用讨论偏移量的计算,以及推导公式。
--有些教材,作者的思维,还停留在人工编译的阶段,抱残守缺,不用理他。
--0100H,是256。

⑷ 求解!有关c51单片机的填空题,有谁会啊

(1)c51单片机的中断控制寄存器为( IE )该寄存器各位对应相应的中断
源为( EA,ET2,ES,ET1,EX1,ET0,EX0 )TCON的定义是( 定时器、计数器控制寄存器 )
(2)c51单片机的定时/计数器的2个控制寄存器分别为( T0 )和( T1 ),其对应的
单片机引脚分别为( P3.4 )和( P3.5 )
(3)当c51单片机采用12MHZ晶体时,每个周期为( 1us )使用定时器T0定时10毫秒,定时器的初始值分别为( F0 )和( D8 )定时器的T0的控制位为( TR0=1 )

⑸ 单片机原理与应用及C51编程技术/高玉芹/机械工业出版社 课后答案

吴鉴鹰单片机实战精讲中有相关问题的解释。
在单片机开发过程中,从硬件设计到软件设计几乎是开发者针对本系统特点亲自完成的。这样虽然可以降低系统成本,提高系统的适应性,但是每个系统的调试占去了总开发时间的2/3,可见调试的工作量比较大。单片机系统的硬件调试和软件调试是不能分开的,许多硬件错误是在软件调试中被发现和纠正的。但通常是先排除明显的硬件故障以后,再和软件结合起来调试以进一步排除故障。可见硬件的调试是基础,如果硬件调试不通过,软件设计则是无从做起。本文结合作者在单片机开发过程中体会,讨论硬件调试的技巧。
当硬件设计从布线到焊接安装完成之后,就开始进入硬件调试阶段,调试大体分为以下几步。
1 硬件静态的调试
1.1排除逻辑故障
这类故障往往由于设计和加工制板过程中工艺性错误所造成的。主要包括错线、开路、短路。排除的方法是首先将加工的印制板认真对照原理图,看两者是否一致。应特别注意电源系统检查,以防止电源短路和极性错误,并重点检查系统总线(地址总线、数据总线和控制总线)是否存在相互之间短路或与其它信号线路短路。必要时利用数字万用表的短路测试功能,可以缩短排错时间。
1.2排除元器件失效
造成这类错误的原因有两个:一个是元器件买来时就已坏了;另一个是由于安装错误,造成器件烧坏。可以采取检查元器件与设计要求的型号、规格和安装是否一致。在保证安装无误后,用替换方法排除错误。
1.3排除电源故障
在通电前,一定要检查电源电压的幅值和极性,否则很容易造成集成块损坏。加电后检查各插件上引脚的电位,一般先检查VCC与GND之间电位,若在5V~4.8V之间属正常。若有高压,联机仿真器调试时,将会损坏仿真器等,有时会使应用系统中的集成块发热损坏。
2 联机仿真调试
联机仿真必须借助仿真开发装置、示波器、万用表等工具。这些工具是单片机开发的最基本工具。
信号线是联络8031和外部器件的纽带,如果信号线连结错误或时序不对,那么都会造成对外围电路读写错误。51系列单片机的信号线大体分为读、写信号线、片选信号线、时钟信号线、外部程序存贮器读选通信号(PSEN)、地址锁存信号(ALE)、复位信号等几大类。这些信号大多属于脉冲信号,对于脉冲信号借助示波器(这里指通用示波器)用常规方法很难观测到,必须采取一定措施才能观测到。应该利用软件编程的方法来实现。例如对片选信号,运行下面的小程序就可以检测出译码片选信号是否正常。
MAIN:MOVDPTR,#DPTR
;将地址送入DPTR
MOVXA,@DPTR
;将译码地址外RAM中的内容送入ACC
NOP;适当延时
SJMPMAIN;循环
执行程序后,就可以利用示波器观察芯片的片选信号引出脚(用示波器扫描时间为1μs/每格档),这时应看到周期为数微秒的负脉冲波形,若看不到则说明译码信号有错误。
对于电平类信号,观测起来就比较容易。例如对复位信号观测就可以直接利用示波器,当按下复位键时,可以看到8031的复位引脚将变为高电平;一旦松开,电平将变低。
总而言之,对于脉冲触发类的信号我们要用软件来配合,并要把程序编为死循环,再利用示波器观察;对于电平类触发信号,可以直接用示波器观察。
下面结合在自动配料控制系统中键盘、显示部分的调试过程来加以说明。本系统中的键盘、显示部分都是由并行口芯片8155扩展而成的。8155属于可编程器件,因而很难划分硬件和软件,往往在调试中即使电路安装正确没有一定的指令去指挥它工作,也是无法发现硬件的故障。因此要使用一些简单的调试程序来确定硬件的组装是否正确、功能是否完整。在本系统中采取了先对显示器调试,再对键盘调试。

⑹ C51单片机程序设计题,要求用C语言做,模拟交通灯控制单片机电路,答案要详细具体。

晚上随手写,也未调试,权当看看

程序有不严谨地方还得调试修改

#include<REGX51.H>

#defineSTATUS_1S 1

#defineSTATUS_2S 2

#defineSTATUS_3S 3

#defineSTATUS_4S 4

#defineSTATUS_5S 5

#defineSTATUS_15S 15

#defineSTATUS_28S 28

#defineSTATUS_29S 29

#defineSTATUS_30S 30

unsignedcharflag,status,status_temp=1,status_temp_;

sbitK1 = P0^0;

sbitK2 = P0^1;

sbitRLED = P0^2;

sbitYLED = P0^3;

sbitGLED = P0^4;

voidInit(void)

{

ET0=1;

TR0=1;

RLED=0; //亮

YLED=0;

GLED=0;

while(status_temp)

{

switch(status)

{

caseSTATUS_1S: //1S

{

RLED=1; //灭,闪一次

YLED=1;

GLED=1;

} break;

caseSTATUS_2S: //1S

{

RLED=0; //亮,闪一次

YLED=0;

GLED=0;

} break;

caseSTATUS_3S: //1S

{

RLED=1; //灭

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

voidInit_Timer0(void)

{

TMOD=0x01;

// ET0=1;

// TR0=1;

EA=1;

TH0=0X3C;

TL0=0XB0; //未计算,偷楼上的

}

voidM_Start(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0; //红亮

while(status_temp)

{

switch(status)

{

caseSTATUS_1S:

{

if(status_temp_==1)

{

YLED=0;

}

} break;

caseSTATUS_2S:

{

if(status_temp_==1)

{

YLED=1;

}

} break;

caseSTATUS_3S:

{

if(status_temp_==1)

{

YLED=0;

status_temp_=0;

}

} break;

caseSTATUS_15S: //15S灭,绿亮

{

RLED=1;

GLED=0;

} break;

caseSTATUS_28S:

{

GLED=1;

} break;

caseSTATUS_29S:

{

GLED=0;

} break;

caseSTATUS_30S:

{

GLED=1;

status=0;

status_temp_=1;

} break;

}

}

ET0=0;

TR0=0;

status=0;

status_temp=1;

YLED=1;

}

voidM_End(void)

{

TH0=0X3C;

TL0=0XB0;

ET0=1;

TR0=1;

RLED=0; //亮1次

YLED=0;

GLED=0;

while(status_temp)

{

switch(status)

{

caseSTATUS_1S: //1S

{

RLED=1; //灭一次

YLED=1;

GLED=1;

} break;

caseSTATUS_2S: //1S

{

RLED=0; //亮二次

YLED=0;

GLED=0;

} break;

caseSTATUS_3S: //1S

{

RLED=1; ////灭二次

YLED=1;

GLED=1;

} break;

caseSTATUS_4S: //1S

{

RLED=0; ////亮三次

YLED=0;

GLED=0;

} break;

caseSTATUS_5S: //1S

{

RLED=1; ////灭三次

YLED=1;

GLED=1;

status_temp=0;

} break;

}

}

status_temp=1;

ET0=0;

TR0=0;

}

main()

{

Init();//单片机初始化

Init_Timer0();//定时器初始化

while(1)

{

if(K1==0)

M_Start();//模拟开始

if(K2==0)

M_End();//模拟结束

}

}

voidinterrupt_time0()interrupt1 //核对头文件,一致就好

{

TH0=0X3C;

TL0=0XB0;

flag++;

if(flag==20)

{

status++;

flag=0;

}

}

⑺ 单片机C51编程两个问题(里面详细,欢迎高手)

12个晶振周期为一个机器周期,在单片机里面的指令都以机器周期来计算的,所以要乘以12,至于那个2^16-计数初值那就是定时器的溢出计算式,也就是从计数初值到溢出所占用的机器周期来计算的!~

那个延时的问题,我看有问题。也不知道你用的是多少的晶振。
不过大致的计算式是:震荡周期*12*125*500=延时时间。这个是大致的,有一定的误差,如果你真要精确算,那你得用外部高精度晶振,然后用汇编语言取算。

阅读全文

与单片机c51答案相关的资料

热点内容
加密思维币 浏览:688
魅族访客文件夹 浏览:50
添加的文件夹怎么找 浏览:615
程序员涉黄 浏览:698
maven编译resources下的js 浏览:519
ubuntu文件移动命令 浏览:227
安卓i怎么查找苹果手机 浏览:949
云服务器宕机概率 浏览:229
在线买药用什么app知乎 浏览:813
ubuntu解压xz文件 浏览:674
宏杰加密时电脑关机 浏览:388
自己写单片机编译器 浏览:598
单片机按键闪烁 浏览:380
为什么icloud总是显连接服务器失败 浏览:888
如何设置域控服务器 浏览:738
想在上海租房子什么app好 浏览:185
编译程序各部分是必不可少的吗 浏览:886
编程不超过十行 浏览:764
数电编译器的作用 浏览:338
时间算法与现在有什么区别 浏览:164