郭天祥单片机教程习题整理
- 格式:doc
- 大小:94.50 KB
- 文档页数:26
单片机实训总结(集锦10篇)单片机实训总结第1篇单片机是一门应用性和综合性很强的学科,它综合了电子技术中的模拟电路和数字电路方面的知识,特别是数字电路,因为数字电路在单片机里面的应用很多。
由于单片机涉及的知识很多,所以我们只能循序渐进的学习,逐步的积累,没有什么捷径可循。
在大二的时候,我就听学长介绍过单片机,当时感觉很神奇,从此就对单片机特别感兴趣,也感觉它特别有用。
于是经学长推荐,在大二上学期我利用学习之余在图书馆借书,学习了KILE和Proteus软件,刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知道它有什么作用。
通过学习才大体知道了单片机的一些知识。
由中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口、定时器/计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。
也算给我正式学习单片机打下一个基础。
在大二下学期,我购买了一套单片机学习开发板和郭天祥主编的《新概念51单片机C语言教程》,从此正式开启我的单片机学习之路。
在刚开始学时,就完全模仿郭天祥主编的这本书再结合开发板一步一步的学,从点亮一个发光二级管,流水灯,数码管,定时器,中断,矩阵键盘,AD、DA,串口通行,I2C总线等一步一步的深入学习。
此时,我虽然能看懂程序,一些简单的程序可以自己编写,但一些比较复杂的自己编不出来。
在大二暑假,我发现了郭天祥主讲的《十天学会单片机》视屏,于是我坚持天天看视屏,然后在自己根据视屏内容结合开发板写程序,调程序,就这样学了一个暑假。
通过这个视屏,我初步了解了单片机的硬件结构,编程方法及调试方法(用KILE软件调试和用开发板调试),寄存器的使用,学会了如何看芯片资料,初步开始利用芯片时序图来编程。
可以说这个视屏对我学习单片机有巨大的帮助,更夸张的说是这个视屏将我带进了单片机的世界,让我尽情的体验单片机带给我的快乐!在大三上学期,我有幸参加了教改班的单片机课程学习。
单片机题库一:判断题您的姓名: [填空题] *_________________________________1、#define LED P2是宏定义,即用P2来代替LED。
[判断题] *对错(正确答案)2、X>>1表示将X中的各个位都向左移动1位,右边空出来的位用0补足。
[判断题] *对错(正确答案)3、在C语言中,函数体部分需要用{ }括起来。
() [单选题] *A、对(正确答案)B、错4、a==1表示将变量a赋值为1 [判断题] *对错(正确答案)5、51单片机的每个中断源都具有高低两个中断优先级。
[判断题] *对错(正确答案)4、int型数据和无符号int型数据的取值范围是一样的。
[判断题] *对错(正确答案)5、数组中的数据可以是不同类型的。
[判断题] *对错(正确答案)6、在C语言中,常量可以是数值型常量也可以是符号型常量 [判断题] *对(正确答案)错7、数组可以分为一维数组,二维数组和多维数组。
[判断题] *对(正确答案)错8、在LED闪烁方式控制的电路所用的发光二极管具有单向导通性。
[判断题] *对(正确答案)错9、#define LED P2是宏定义,即用P2来代替LED。
[判断题] *对错(正确答案)10、算数运算符%表示取余运算,10%3的结果是1。
[判断题] *对(正确答案)错11、C语言中一个分号可以作为一个执行语句。
[判断题] *错12、拉幕灯实验中使用到的LED灯是发光二极管,它具有单向导通性。
[判断题] *对(正确答案)错13、同级优先级不能相互断。
[判断题] *对(正确答案)错14、除法运算7/3的结果是1。
[判断题] *对错(正确答案)15、void delay_1ms(uint x)该函数有一个参数x [判断题] *对(正确答案)错16、陶瓷电容和电解电容在结构上是相同的,在硬件电路中可互换。
[判断题] *对错(正确答案)13、8段LED数码管显示器只有共阳极结构。
嵌入式学习心得体会嵌入式学习心得体会14月10号,为期一个阶段的Linux开发基础培训课程圆满结束,回首这些天所留下的点点滴滴,感触深深,学习上知识点的积累,灵活运用的过程中感受到了Linux操作的快速高效性能,这也是我所追求的效率!当初初涉培训课程的第一门课程时,都说Linux操作很繁琐复杂,心里总有些顾忌,带着种种不安与些许拼博的决心,开始了自我提升阶段的“充电”,由徐海兵老师教授我们基础课程的培训,我们则像着小学生般认真的记着笔记,仔细听着并学会如何去在实践中运用所学的Linux下的各种强大的命令集。
在Unit 1中,徐老师详细生动的为我们讲述了有关Linux的诞生、初成长以及辉煌的发展至今,今后应用范围则愈来愈广泛,讲解了为Linux这个伟大的OS做出巨大贡献的一位位出色的、伟大的人物,他们那种学习钻研的精神、锲而不舍的信念、勇于把握住难得的机会,从小处着手,踏踏实实的创造出了对人类科技发展做出卓越贡献的Linux(Unix)系统,他们的种种,都值得我们去深刻反省、刻苦学习、传承并永远发展下去。
查看ip地址和重启网络服务是我学的第一个命令: ifconfig eth0、ifconfig eth0 IP地址、service network restart。
了解到远程登录软件可用xmanager。
secureCRT是我们常用的,安装好后利用其登录到了Red hat Linux,需要知道Linux主机的ip 地址。
徐老师为我们介绍了重要内容:SHELL,即运行程序的程序,如echo $$SHELL可查看SHELL的环境变量是csh还是bash。
指令pwd 可查看当前所在路径,passwd:更改Linux下的密码,仅限root用户有此权限,当然我们是利用虚拟机VMware程序来运行Linux OS的,懂得了如何设置虚拟机的网卡设置、暂停、恢复、全屏等。
简单的学习后进入Unit 2,命令行的句法让我懂得了用法规则,一系列的命令功能强大:date 显示当前年月时间星期之类的;more指令与less重要但不常用;cat用于查看短小的文件内容,常用!mkdir命令用于在当前目录下创建新的目录;ls 显示当前目录下所有文件;cd 更改文件路径,如cd 、cd . 当前目录;rmdir 删除空文件夹;rm指令很强大,用于删除空目录及非空目录下的指定或全部文件;man 真男人,帮助手册;history指令用于显示编写过的命令集,以history 序号可显示序号所指命令;echo回写命令,很重要,我需要继续学习;exit 指从多重SHELL退出来。
《MCS-51单片机系统及接口技术》课程习题集【说明】:本课程《MCS-51单片机系统及接口技术》(编号为09001)共有单选题,判断题,阅读分析,问答与作图题, 填空题等多种试题类型,其中,本习题集中有[阅读分析]等试题类型未进入。
一、单选题1.下面哪些指令是访问ROM的指令?(A)MOVX A,@DPTR (B)MOVC A,@A+PC(C)MOVC A,@A+DPTR (D)MOVX @DPTR,A2.下面哪些指令执行后,能够对PSW寄存器产生影响?(A)DEC 3FH (B)ADD A,3FH(C)SUBB A,R0(D)CJNE A,3FH,rel3.要访问MCS-51单片机的特殊功能寄存器应使用的寻址方式是(A)寄存器间接寻址,(B)变址寻址,(C)直接寻址,(D)相对寻址4.要确定51单片机P1口的输入、输出工作方式,下面哪种说法是正确的?(A)由编程决定;(B)由输入/输出设备决定;(C)由读引脚或写引脚指令决定;(D)由CPU读写命令决定;5.微机设置堆栈的目的是:(A)起数据缓冲作用;(B)存放将要处理的数据;(C)保存程序断点地址;(D)保存程序断点地址和数据。
6. CPU访问外部存储器的时候,下面哪种说法是正确的?(A)DPTR既可以存放ROM的地址又可以存放RAM的地址;(B)DPTR只能存放ROM的地址;(C)DPTR只能存放RAM的地址;7.在程序设计中使用MOV PSW,#10H 指令的目的是:(A)当前程序使用第2组工作寄存器(B)程序初始化(C)给一个单元赋初值(D)将立即数10H暂存入PSW中8. 51单片机的堆栈操作,应该是:(A)先入栈,再修改指针(B)先修改栈指针,再出栈(C)先修改栈指针,再入栈(D)以上都不对。
9.执行返回指令时,返回的断点是:(A)调用指令的首地址(B)调用指令的末地址(C)调用指令下一条指令的首地址(D)返回指令的末地址10.可以使程序循环转移的指令是:(A)AJMP addr11 (B)DJNZ R n ,rel(C)SJMP rel (D)ACALL addr1111. CPU响应中断后,将产生哪些操作?(A)保护现场(B)自动到中断服务程序去执行(C)断点地址进栈(D)断点地址进栈,将矢量地址装入PC12. 51单片机外扩8155芯片后,可以扩展的I/O口线是:(A)16根(B)22根(C)24根(D)32根13.下面哪一个部件不属于CPU的部件?(A)IP (B)ALU (C)PC (D)PSW14.要把P1口高4位变为0,低4位不变,应使用下列哪条指令?(A)ORL P1,#0FH (B)ORL P1,#0F0H(C)ANL P1,#0F0H (D)ANL P1,#0FH15. CPU响应中断后,原来程序的断点地址和数据应该由下面哪一条来完成?(A)由CPU自动完成(B)在中断响应中完成(C)应由硬件和中断服务程序完成(D)在主程序中完成16.某种存储器芯片的容量是16KB,那么它与地址总线连接的根数是:(A)11根,(B)12根,(C)13根,(D)14根,(E)15根17.定时器T0、T1的启动/停止应由下面哪一条来完成?(A)由程序来完成(B)由硬件自动完成(C)当GATE=0时,由TR0、TR1置位、清0完成18. 51单片机直接寻址指令中的直接地址单元有哪些?(A)产品厂家给出的地址单元(B)20H~7FH单元和部分SFR寄存器(C)30H~7FH单元(D)片内RAM和SFR寄存器19.下面哪些指令执行后,能够对PSW寄存器产生影响?(A)DEC 3FH (B)ADD A,3FH(C)SUBB A,R0(D)CJNE A,3FH,rel20. 6264芯片是(A)64KB EPROM (B)8KB RAM (C)64KB RAM21.指令LCALL addr16 执行后,硬件会自动产生下列操作。
数字逻辑电路,东南大学(视频教程,64讲) /bbs/disp bbs.asp?boardID=30&ID=1287&page=1可编程控制器,东南大学(视频教程,40讲) /bbs/disp bbs.asp?boardID=30&ID=1281&page=1单片机及应用,东南大学(视频教程,32讲) /bbs/disp bbs.asp?boardID=30&ID=1272&page=1单片机技术,吉林大学(视频教程,32讲)/bbs/dis pbbs.asp?boardID=30&ID=1270&page=1可编程逻辑器件(视频教程,15讲)/bbs/di spbbs.asp?boardID=30&ID=1269&page=1EDA技术及应用CPLD (视频教程,36讲)/bbs/dis pbbs.asp?boardID=30&ID=1639&page=1电路电子技术,东南大学(视频教程,72讲) /bbs/disp bbs.asp?boardID=30&ID=1433&page=1DSP技术,电子科技大学(视频讲座,28讲)/bbs/disp bbs.asp?boardID=30&ID=1525&page=1北航单片机视频教程(共24讲, 1.73G) /bbs/dis pbbs.asp?boardID=30&ID=1675&page=1嵌入式系统开发应用技术(视频教程,39讲) /bbs/disp bbs.asp?boardID=30&ID=1488&page=1自动检测技术,同济大学(视频教程,36讲) /bbs/disp bbs.asp?boardID=30&ID=2095&page=1模拟电子技术,石油大学(视频教程,30讲) /bbs/disp bbs.asp?boardID=30&ID=1953&page=151单片机C语言,哈工大(视频教程,09讲) /bbs/di spbbs.asp?boardID=30&ID=2556&page=1机器人原理及应用,东南大学(视频教程48讲)/bbs/di spbbs.asp?boardID=30&ID=2626&page=1AVR视频教程——力天电子/bbs/d ispbbs.asp?boardID=7&ID=9059&page=1十天学会AVR单片机视频教程——天祥电子/bbs/di spbbs.asp?boardID=7&ID=9065&page=1十天学会PIC单片机——郭天祥/bbs/ dispbbs.asp?boardID=27&ID=8990&page=1学ARM和学单片机一样简单,视频教程/bbs/ dispbbs.asp?boardID=5&ID=9115&page=1十天学会msp430视频教程——天祥电子/bbs/ dispbbs.asp?boardID=7&ID=9025&page=1ARM视频嵌入式linux培训班视频/bbs /dispbbs.asp?boardID=5&ID=8972&page=1Altium Designer6.9 PCB设计视频教程/bbs/ dispbbs.asp?boardID=2&ID=9143&page=1CPLD 系统设计及VHDL 语言的视频教程/bbs/d ispbbs.asp?boardID=4&ID=9015&page=1人工智能原理视频教程清华大学/bbs/dispbbs.asp?b oardID=30&ID=3346&page=1微型计算机技术视频教程-清华大学/bbs/dispbbs.asp? boardID=30&ID=3347&page=1计算机系统结构视频教程清华大学/bbs/dispbbs.asp? boardID=30&ID=3348&page=1操作系统视频教程17讲清华大学/bbs/dispbbs.asp?b oardID=30&ID=3349&page=1数字电路视频教程清华大学/bbs/dispbbs.asp?boardI D=30&ID=3350&page=1数字系统设计自动化视频教程清华大学/bbs/dispbbs. asp?boardid=30&id=3351模拟电路视频教程石油大学/bbs/dispbbs.asp?boardi d=30&id=3352嵌入式系统应用开发技术视频教程电子科大/bbs/dis pbbs.asp?boardid=30&id=3354操作系统视频教程山东石油大学/bbs/dispbbs.a sp?boardid=30&id=3353计算机电路基础视频教程(1) 中央电大/bbs/dispbbs.as p?boardid=30&id=3371单片机技术视频教程中央电大 /bbs/dispbbs.a sp?boardid=30&id=3372电路视频教程哈工大 /bbs/dispbbs.a sp?boardID=30&id=3373接口技术视频教程哈工大/bbs/dispbbs.a sp?boardid=30&id=3374电工电子学视频教程东南大学/bbs/dispbbs.a sp?boardID=30&id=3365单片机视频教程37讲深圳职业学院/bbs/dispbbs.as p?boardID=30&ID=3382单片机视频教程北航(1.7G)/bbs/dispbbs.as p?boardID=30&ID=3377电路电子技术视频教程吉林大学/bbs/dispbbs.asp?b oardID=30&ID=3395电工电子学视频教程东南大学/bbs/dispbbs.asp?b oardID=30&ID=3365电路原理视频教程浙江大学/bbs/dispbbs.asp?boar did=30&id=3402电力电子技术视频教程浙江大学/bbs/dispbbs.asp?b oardid=30&id=3403电机与拖动视频教程浙江大学/bbs/dispbbs.asp?bo ardid=30&id=3404电力系统分析视频教程浙江大学/bbs/dispbbs.asp?b oardid=30&id=3405电子基础整理电子基础PPT /bbs/dispbbs.asp?boardID=8&ID=81 1&page=1三极管资料(比较全面)/bbs/dispbbs.asp?boardID=8&I D=600&page=1跟我学模拟电子技术 /bbs/dispbbs.asp?boardID=8&ID =580&page=1运放资料和运放用法 /bbs/dispbbs.asp?boardID=8&ID =285&page=3跟我学数字电子技术 /bbs/dispbbs.asp?BoardID=8&ID =573&replyID=&skin=151单片机教程整理:芯源老师的单片机教程+电路图(通俗易懂的单片机教程,推荐初学者使用)h ttp:///bbs/dispbbs.asp?boardID=7&ID=7&page=1单片机实验汇编C对照学习教程(有很多实例,实验练习的首选)http://www. /bbs/dispbbs.asp?boardID=7&ID=23&page=1c51轻松入门/bbs/dispbbs.asp?boardID=7&ID=87&pa ge=18050单片机C语言彻底应用/bbs/dispbbs.asp?boardI D=7&ID=278&page=1平凡老师的经典单片机教程下载/bbs/dispbbs.asp?boa rdID=7&ID=571&page=1单片机实用教程[下载] /bbs/dispbbs.asp?boardID=7&I D=1261&page=1单片机基础[下载] /bbs/dispbbs.asp?boardID=7&ID=1 262&page=2微机原理/bbs/dispbbs.asp?boardID=7&ID=901&page =251单片机软件整理:伟福编译器/bbs/dispbbs.asp?boardID=7&ID=30&pag e=2ISP下载软件+图/bbs/dispbbs.asp?boardID=7&ID=2 8&page=5AVR单片机教程整理:AVR系列单片机C语言编程与应用实例/bbs/dispbbs.as p?boardID=7&ID=108&page=1AVR高速嵌入式单片机原理与应用(修订版)/bbs/disp bbs.asp?boardID=7&ID=113&page=1嵌入式C编程与Atmel AVR /bbs/dispbbs.asp?boardID =7&ID=114&page=1AVR单片机原理及应用/bbs/dispbbs.asp?boardID=7&I D=111&page=1AVR高速嵌入式单片机原理与应用/bbs/dispbbs.asp?bo ardID=7&ID=112&page=1AVR单片机C语言开发入门指导/bbs/dispbbs.asp?boar dID=7&ID=109&page=1AVR单片机应用设计/bbs/dispbbs.asp?boardID=7&ID =110&page=2PIC单片机教程整理:PIC单片机C语言学习教程/bbs/dispbbs.asp?boardID= 7&ID=282&page=1PIC16F84单片机的内部硬件资源/bbs/dispbbs.asp?bo ardID=7&ID=86&page=1PIC16F877单片机编程实例教程/bbs/dispbbs.asp?boar dID=7&ID=280&page=2PIC单片机编程常用子程序库/bbs/dispbbs.asp?boardI D=7&ID=283&page=3PIC18系列单片机指令中文讲解/bbs/dispbbs.asp?boar dID=7&ID=281&page=3PIC16C5X单片机编程指南/bbs/dispbbs.asp?boardID= 7&ID=279&page=3EDA软件大全Altium Protel 2004 SP3免安装(已安装) /bbs/dispbbs. asp?boardID=2&ID=115&page=1protel99SE下载+自制库和汉化3D补丁/bbs/dispbbs.a sp?boardID=2&ID=81&page=1PADS 2005 下载/bbs/dispbbs.asp?boardID=2&ID=9 4&page=1WG2004/bbs/dispbbs.asp?boardID=2&ID=262&pag e=1ADS2004A /bbs/dispbbs.asp?boardID=2&ID=1288&p age=1orCAD10.3下载/bbs/dispbbs.asp?boardID=2&ID=93 &page=2WG2005 下载/bbs/dispbbs.asp?boardID=2&ID=570& page=3Altium.Designer.v6.9破解版下载/bbs/dispbbs.asp?bo ardID=2&ID=9676&page=2EDA教程Protel DXP视频教程/bbs/dispbbs.asp?boardID=2&ID =329&page=1PADS制作元件教程---wang1jin原创/bbs/dispbbs.asp? boardID=2&ID=575&page=1Protel99SE电路设计与仿真/bbs/dispbbs.asp?boardID =2&ID=1243&page=1PCB(高速)电磁兼容的设计研究/bbs/dispbbs.asp?boar dID=2&ID=584&page=1安裝OrCAD10.3步骤图解/bbs/dispbbs.asp?boardID= 2&ID=92&page=1CADENC软件使用中的问题汇总(Answer)/bbs/dispbb s.asp?boardID=2&ID=1246&page=2PADS POWER基础教程/bbs/dispbbs.asp?boardID=2& ID=96&page=3Protel DXP 指导教程中文教程/bbs/dispbbs.asp?boar dID=2&ID=88&page=3ORCAD仿真资料整理打包/bbs/dispbbs.asp?boardID= 2&ID=593&page=3PowerPCB教程/bbs/dispbbs.asp?boardID=2&ID=98& page=5教你在英文protel 99 se中怎么写汉字/bbs/dispbbs.as p?BoardID=8&ID=810&replyID=&skin=1Altium Designer6.9 PCB设计视频教程/bbs/dispbbs.as p?boardID=2&ID=9143&page=1仿真软件Proteus6.7 破解版/bbs/dispbbs.asp?boardID=22&ID =456&page=2Proteus7.12破解版/bbs/dispbbs.asp?boardID=22&ID =1619&page=1Multisim10.0破解版/bbs/dispbbs.asp?boardID=22&ID =1643&page=140多M的MP3DIY资料打包下载/bbs/dispbbs.asp? boardID=7&ID=480&page=2现代高频开关电源实用技术/bbs/dispbbs.asp?board ID=8&ID=301&page=1。
/**********************************51单片机头文件单片机头文件原理及内部接口技术王俊涛整理修改QQ:853210627page页码为郭天祥《新概念51单片机c语言教程》中页码将其复制到文本文档改扩展名为.h***********************************//*--------------------------------------------------------------------------REG51.HHeader file for generic 80C51 and 80C31 microcontroller.Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.--------------------------------------------------------------------------*/#ifndef __REG51_H__#define __REG51_H__/* BYTE Register */// 四个IO口全部能位寻址sfr P0 = 0x80; //三态双向IO口P0口//低8位地址总线/数据总线sfr P1 = 0x90; //准双向IO口P1口//用户专用sfr P2 = 0xA0; //准双向IO口P2口//高8位地址总线/无外部ram或rom时为用户IO口sfr P3 = 0xB0; //双功能//1.准双向IO口P3口//2.P30 RXD串行数据接受// P31 TXD串行数据发送// P32 外部中断0 信号申请// P33 外部中断1 信号申请// P34 定时/计数器T0 外部计数脉冲输入// P35 定时/计数器T1 外部计数脉冲输入// P36 WR 片外RAM写脉冲信号输入// P37 RD 片外ram读脉冲信号输入sfr PSW = 0xD0; // 可以位寻址//程序状态寄存器Program Status WORD ()程序状态信息//psw.7(CY) 进位标志//psw.6(AC) 辅助进位标志位低四位向高四位进位或借位时AC=1// 主要用于十进制调整//psw.5(F0) 用户可自定义的程序标志位//psw.4(RS1)//psw.3(RS0)// 工作寄存器选择位// 任一时刻只有一组寄存器在工作// 0 0 0区 00H~07H// 0 1 1区 08H~0fH// 1 0 2区 10H~17H// 1 1 3区 18H~1FH////psw.2(OV) 溢出标志位//psw.1( ) 保留为,不可使用//psw.0(P) 奇偶校验位sfr ACC = 0xE0; //累加器A 特殊功能寄存器可位寻址sfr B = 0xF0; //寄存器B 主要用于乘除运算sfr SP= 0x81; //堆栈指针寄存器SP 存放站定栈顶地址sfr DPL = 0x82; //sfr DPH = 0x83; //数据指针寄存器DPTR//对片外RAM及扩展IO进行存取用的地址指针sfr PCON = 0x87; //电源控制寄存器不能位寻址page131//管理单片机的电源部分包括上电复位、掉电模式、空闲模式等//单片机复位时PCON被全部清0//D7 SMOD该位与串口通信波特率有关// SMOD=0 串口方式1 2 3 波特率正常// SMOD=1 串口方式1 2 3 波特率加倍//D6 SMOD0//D5 LVDF//D4 P0F// 这三位STC特有功能//D3 GF1//D2 GF0// 两个通用工作标志位//D1 PD 掉电模式设定位// PD=0;正常工作模式// PD=1;进入掉电模式,// 由外部中断低电平触发或下降沿触发或硬件复位触发// 掉电模式中:外部晶振,cpu,定时器,串行口全部停止工作// 只有外部中断继续工作//D0 IDL 空闲模式设定位// IDL=0;正常工作状态// IDL=1;单片机进入空闲模式// 空闲模式中,除CPU不工作外,其余仍然继续工作// 可由任意个中断或硬件复位唤醒sfr TCON = 0x88; //定时器/计数器控制寄存器可以位寻址page70//D7 TF1 定时器1溢出标志位//D6 TR1 定时器1运行控制位//D5 TF0 定时器0溢出标志位//D4 TR0 定时器0运行控制位//D3 IE1 外部中断1请求标志//D2 IT1 外部中断1 触发方式选择位//D1 IE0 外部中断0请求标志//D0 IT0 外部中断0 触发方式选择位sfr TMOD = 0x89; //定时器/计数器工作方式寄存器不能位寻址//确定工作方式和功能page70//D7 GA TE 门控制位// GA TE=0;定时器/计数器由TRX(x=0,1)来控制// GA TE=1;定时器/计数器由TRX(x=0,1)// 和外部中断引脚(init0,1)来共同控制//D6 C/T 定时器、计数器选择位// 0 选择定时器模式// 1 选择计数器模式//D5 M1//D4 M0// M1 M0 工作方式// 0 0 方式0 13位定时器/计数器// 0 1 方式1 16位定时器/计数器// 1 0 方式2 8位自动重装定时器/计数器// 1 1 方式3 仅适用T0 分成两个8位计数器,T1停止计数//D3 GA TE 门控制位// GA TE=0;定时器/计数器由TRX(x=0,1)来控制// GA TE=1;定时器/计数器由TRX(x=0,1)// 和外部中断引脚(init0,1)来共同控制//D2 C/T 定时器、计数器选择位// 0 选择定时器模式// 1 选择计数器模式//D1 M1//D0 M0// M1 M0 工作方式// 0 0 方式0 13位定时器/计数器// 0 1 方式1 16位定时器/计数器// 1 0 方式2 8位自动重装定时器/计数器// 1 1 方式3 仅适用T0 分成两个8位计数器,T1停止计数sfr TL0 = 0x8A; //定时器/计数器0高8位容器加1 计数器sfr TL1 = 0x8B; //定时器/计数器1高8位容器sfr TH0 = 0x8C; //定时器/计数器0低8位容器sfr TH1 = 0x8D; //定时器/计数器1低8位容器sfr IE = 0xA8; //中断允许寄存器可以位寻址//D7 EA 全局中断允许位//D6 NULL//D5 ET2 定时器/计数器2中断允许位interrupt 5//D4 ES 串行口中断允许位interrupt 4//D3 ET1 定时器/计数器1中断允许位interrupt 3//D2 EX1 外部中断1中断允许位interrupt 2//D1 ET0 定时器/计数器0中断允许位interrupt 1//D0 EX0 外部中断0中断允许位interrupt 0sfr IP= 0xB8; //中断优先级寄存器可进行位寻址//D7 NULL//D6 NULL//D5 NULL//D4 PS 串行口中断定义优先级控制位// 1 串行口中断定义为高优先级中断// 0 串行口中断定义为低优先级中断////D3 PT1// 1 定时器/计数器1中断定义为高优先级中断// 0 定时器/计数器1中断定义为低优先级中断//D2 PX1// 1 外部中断1定义为高优先级中断// 0 外部中断1定义为低优先级中断//D1 PT0// 1 定时器/计数器0中断定义为高优先级中断// 0 定时器/计数器0中断定义为低优先级中断//D0 PX0// 1 外部中断0定义为高优先级中断// 0 外部中断0定义为低优先级中断sfr SCON = 0x98; //串行口控制寄存器可以进行位寻址page134//D7 SM0//D6 SM1// SM0 SM1 串行口工作方式// 0 0 同步移位寄存器方式// 0 1 10位异步收发(8位数据),波特率可变(定时器1溢出率控制)// 1 0 11位异步收发(9位数据),波特率固定// 1 1 11异步收发(9位数据),波特率可变(定时器1溢出率控制)//D5 SM2 多机通信控制位主要用于方式2和方式3//D4 REN 允许串行接收位//D3 TB8 方式2,3中发送数据的第9位//D2 RB8 方式2,3中接受数据的第9位//D1 TI 发送中断标志位//D0 RI 接受中断标志位sfr SBUF = 0x99; //串行数据缓冲区/*****************************************************************************下面是位寻址区上面做过解释的就不在下面一一解释了******************************************************************************/ /* BIT Register *//* PSW */sbit CY= 0xD7;sbit AC = 0xD6;sbit F0 = 0xD5;sbit RS0 = 0xD3; sbit OV = 0xD2; sbit P = 0xD0;/* TCON */ sbit TF1 = 0x8F; sbit TR1 = 0x8E; sbit TF0 = 0x8D; sbit TR0 = 0x8C; sbit IE1 = 0x8B; sbit IT1 = 0x8A; sbit IE0 = 0x89; sbit IT0 = 0x88;/* IE */sbit EA= 0xAF; sbit ES = 0xAC; sbit ET1 = 0xAB; sbit EX1 = 0xAA; sbit ET0 = 0xA9; sbit EX0 = 0xA8;/* IP*/sbit PS = 0xBC; sbit PT1 = 0xBB; sbit PX1 = 0xBA; sbit PT0 = 0xB9; sbit PX0 = 0xB8;/* P3 */sbit RD = 0xB7; sbit WR = 0xB6; sbit T1 = 0xB5; sbit T0 = 0xB4; sbit INT1 = 0xB3; sbit INT0 = 0xB2; sbit TXD = 0xB1; sbit RXD = 0xB0;/* SCON */ sbit SM0 = 0x9F; sbit SM1 = 0x9E; sbit SM2 = 0x9D;sbit TB8 = 0x9B; sbit RB8 = 0x9A; sbit TI = 0x99; sbit RI = 0x98;#endif。
一、填空题1. P2口通常用作___高8位地址线____,也可以作通用的I/O口使用。
2.MCS-51单片机扩展程序存储器所用的控制信号为 PSEN/ ,扩展数据存储器所用的控制信号为 WR/和 RD/ 。
3.定时器/计数器的工作方式3是指得将 T0 拆成两个独立的8位计数器。
而另一个定时器/计数器此时通常只可作为定时器使用。
4.中断服务程序最后一条指令是 RETI 。
5.采用I2C 总线进行数据传送时,与数据传送有关的信号有起始信号,终止信号,应答信号非应答信号,总线数据位。
6.假定(SP)=30H, (39H)=40H,(40H)=50H。
执行下列指令:POP DPHPOP DPL后,DPTR的内容为,SP的内容是。
7. 单片机要扩展一片EPROM2764需占用条地址线。
8. 若由程序设定RS1、RS0=01,则工作寄存器R0~R7的直接地址为______。
9.MCS-51单片机位单元有个。
10.MCS-51单片机有条I/O线。
11.异步串行数据通信的标准主要有三类,分别是、、。
12.存储器地址引脚数N与容量Q之间的关系为。
13.单片机系统中经常采用的地址译码技术包括和方法。
14.MCS-51单片机在物理上有________个独立的存储器空间。
15.MCS-51单片机有________个16位可编程定时器/计数器,有________种工作方式。
16.共阴极数码管显示2的七段码是。
17.消除键抖动的措施有和。
18.当fosc=6MHz,一条双周期指令执行时间为。
19.MCS—51的存贮器配置在物理结构上有四个存储空间,它们是:。
20.一个EPROM的地址有A0----A11引脚,它的容量为。
21.单片机要扩展一片EPROM2764需占用条P2口线。
22.在存储器扩展电路中74LS373的主要功能是。
23.在用接口传信息时,如果用一帧来表示一个字符,且每一帧中有一个起始位、一个结束位和若干个数据位,该传送属于。
《单片机初级教程》作业2(第四章内容)一、填空1.变址寻址方式以或为基址寄存器,以为变址寄存器。
2.A=AEH,R1=81H,CY=1,执行指令”ADDC A,R1”后,A= ,Cy= ,OV= ,AC= ,P= .3.对于条件转移指令JZ rel,有(A)≠0,则顺序执行,PC=PC+2,若(A)=0,则PC= 。
4.ORL A,#0F0H是对A的高4位置1,而低4位。
5.80C51有2个位的可编程定时/计数器,T1有种工作方式,T0有种工作方式,由寄存器中方式选择位M0M1组合确定。
6.访问片内数据存储器时,可以用做间址寄存器,访问片外数据存储器时,可以用做间址寄存器。
7.变址寻址方式以或为基址寄存器,以为变址寄存器。
8.假定(SP)=40H , (39H)=30H,(40H)=60H。
执行下列指令:POP DPHPOP DPL后,DPTR的内容为,SP的内容是。
二、选择1. 执行如下三条指令后,30H单元的内容是()。
❖ MOV R1,#30H❖ MOV 40H,#0EH❖ MOV @R1,40HA.40H B. 0EH C.30H D.FFH2. MCS—51 单片机在执行 MOVX A,@DPTR或 MOVC A,@A+DPTR指令时,其寻址单元的地址是由 __________ 。
A.P0 口送高 8位,P1口送高 8位B. P0口送低 8位,P2 口送高 8位C.P0口送低 8位,P1口送低 8位D.P0 口送高 8位,P2口送低 8位3. 下列指令能能使累加器 A低 4位不变,高 4位置 F的是()。
A.ANL A,#0FH B.ANL A,#0F0OHC.ORL A,#0FH D.ORL A,#0F0H4. 下列指令能能使累加器 A的最高位置 1的是()。
A.ANL A,#7FH B.ANL A,#80HC.SETB ACC.7 D.ORL A,#80H5. 在 MCS—51指令中,下列指令中()是无条件转移指令。
单⽚机练习题⼀、单选题。
1.计算机中最常⽤的字符信息编码是()A ASCIIB BCD码C 余3码D 循环码2.要MCS-51系统中,若晶振频率屡8MHz,⼀个机器周期等于( ) µsA 1.5B 3C 1D 0.53. 以下不是构成的控制器部件():A 程序计数器、B指令寄存器、C指令译码器、D存储器4.以下不是构成单⽚机的部件()A 微处理器(CPU)、B存储器C接⼝适配器(I\O接⼝电路) D 打印机5.16位⼆进制所表⽰的⽆符号整数,其相应的⼗进制数范围是()A.0~65536B.1~65536C.1~65535D.0~655356.-49D的⼆进制补码为.( )A 11101111B 11101101C 0001000D 111011007.⼗进制29的⼆进制表⽰为原码()A 11100010B 10101111C 00011101D 000011118. ⼗进制0.625转换成⼆进制数是()A 0.101B 0.111C 0.110D 0.1009使⽤8255可以扩展出的I/O⼝线是()16根(B)24根(C)22根(D)32根10.PSW=18H时,则当前⼯作寄存器是()(A)0组(B)1组(C)2组(D)3组11.控制串⾏⼝⼯作⽅式的寄存器是()(A)TCON (B)PCON (C)SCON (D)TMOD12.MCS-51的中断允许触发器内容为83H,CPU将响应的中断请求是( )(A) T1, (B)T0,T1 (C)T1,串⾏接⼝(D) ,T013、MOVX A,@DPTR指令中源操作数的寻址⽅式是()(A)寄存器寻址(B)寄存器间接寻址(C)直接寻址(D)⽴即寻址14、ORG 0003HLJMP 2000HORG 000BHLJMP 3000H 当CPU响应外部中断0后,PC的值是()(A)0003H (B)2000H (C)000BH (D)3000H15、执⾏PUSH ACC指令,MCS-51完成的操作是()(A ) SP+1 SP (ACC)(SP)(B)(ACC)(SP)SP-1 SP (C)SP-1 SP (ACC)(SP) (D)(ACC)(SP)SP+1 SP16、CALL指令操作码地址是2000H,执⾏完相⼦程序返回指令后,PC=()(A)2000H (B)2001H (C)2002H (D)2003H17、6264芯⽚是()(A) EEPROM (B)RAM(C)FLASH ROM (D)EPROM18、下⾯条指令将MCS-51的⼯作寄存器置成3区()(A)MOV PSW,#13H (B)MOV PSW,#18H(C)SETB PSW.4 CLR PSW.3 (D) SETB PSW.3 CLR PSW.419、⽤MCS-51⽤串⾏扩展并⾏I/O⼝时,串⾏接⼝⼯作⽅式选择()(A) ⽅式0 (B)⽅式1 (C)⽅式2 (D)⽅式320、当8031外出扩程序存储器8KB时,需使⽤EPROM 2716()(A) 2⽚(B)3⽚(C)4⽚(D)5⽚21、ORG 0000HAJMP 0040HORG 0040HMOV SP,#00H当执⾏完左边的程序后,PC的值是()(A) 0040H (B)0041H (C)0042H (D)0043H22、对程序存储器的读操作,只能使⽤()(A) MOV指令(B)PUSH指令(C)MOVX指令(D)MOVC指令23某种存储器芯⽚是8KB*4/⽚,那么它的地址线根线是()(A) 11根(B)12根(C)13根(D)14根24要使MCS-51能够响应定时器T1中断、串⾏接⼝中断,它的中断允许寄存器IE的内容应是()(A)98H (B)84H (C)42 (D)22H25. MCS-51外扩ROM,RAM和I/O⼝时,它的数据总线是()(A) P0 (B)P1 (C)P2 (D)P326.⽤MCS-51串⾏接⼝扩展并⾏I\O⼝时,串⾏接⼝⼯作⽅式应选择( )(A)⽅式0 (B)⽅式1 (C)⽅式2 (D)⽅式327.MCS-51有中断源()(A)5个(B)2个(C)3个(D)6个28.使⽤定时器T1时,有⼏种⼯作模式()(A)1种(B)2种(C)3种(D)4种29、MCS-51的中断源全部编程为同级时,优先级最⾼的是()(A) INT1 (B)TI (C)串⾏接⼝(D)INT030.MCS—51系列单⽚机8031⽚内EPROM有()A.0KBB.4KBC.2KBD.8KB31.⼗进制数215转换成⼆进制数表⽰,是()A.11010111BB.10001101BC.11011111BD.11110101B32.8031单⽚机所⽤的电源是()A.±15VB.+15VC.+5VD.±5V33.8031单⽚机内有_________定时器/计数器。
// 用位操作点亮2,4,5,6发光管. // 适用 TX-1C单片机实验板 // 晶振为11.0592M /*********************************************************/ #include //52单片机头文件 sbit led2=P1^1; //单片机管脚位声明 sbit led4=P1^3; //单片机管脚位声明 sbit led5=P1^4; //单片机管脚位声明 sbit led6=P1^5; //单片机管脚位声明 void main() //主函数 { led2=0; //将单片机P1.1口清零 led4=0; //将单片机P1.3口清零 led5=0; //将单片机P1.4口清零 led6=0; //将单片机P1.5口清零 while(1); //程序停止在这里,在后面会讲到为什么这样写。 } // 用总线操作点亮2,4,5,6发光管. // 适用 TX-1C单片机实验板 // 晶振为11.0592M /*********************************************************/ #include //52单片机头文件 void main() //主函数 { P1=0xc5; //将单片机P1口的8个口由高到低分别赋值为11000101 while(1); //程序停止在这里,在后面会讲到为什么这样写。 } // 尝试让第一个发光管闪烁.(程序看不懂没关系,后面章节会有详细讲解) // 适用 TX-1C单片机实验板 // 晶振为11.0592M /*********************************************************/ #include //52单片机头文件 sbit led1=P1^0; //单片机管脚位声明 void main() //主函数 { unsigned int i; //定义一个int型变量 while(1) { i=50000; //变量赋初值为50000 led1=0; //点亮灯 while(i--); //延时 i=50000; led1=1; //熄灭灯 while(i--); } } // 尝试写出流水灯程序(程序看不懂没关系,后面章节会有详细讲解) // 适用 TX-1C单片机实验板 // 晶振为11.0592M /*********************************************************/ #include //52单片机头文件 void main() //主函数 { unsigned int i; //定义一个int型变量 while(1) { i=50000; //变量赋初值为50000 P1=0xfe; //点亮第一个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xfd; //点亮第二个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xfb; //点亮第三个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xf7; //点亮第四个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xef; //点亮第五个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xdf; //点亮第六个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0xbf; //点亮第七个灯 while(i--); //延时 i=50000; //变量赋初值为50000 P1=0x7f; //点亮第八个灯 while(i--); //延时 } } // 第一个发光管以间隔200ms闪烁 // 适用 TX-1C单片机实验板 // 晶振为11.0592M /*********************************************************/ #include //52单片机头文件 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit led1=P1^0; //单片机管脚位声明 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() //主函数 { while(1) //大循环 { led1=0; //点亮小灯 delay(200); //延时200毫秒 led1=1; //熄灭小灯 delay(200); //延时200毫秒 } } // 8个发光管由上至下间隔1s流动 //,其中每个管亮500ms,灭500ms,亮时蜂鸣器响 //,灭时关闭蜂鸣器,一直重复下去。 // 适用 TX-1C单片机实验板 // 晶振为11.0592M /*********************************************************/ #include //52单片机头文件 #include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit beep=P2^3; 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; a=0xfe; while(1) //大循环 { P1=a; //点亮小灯 beep=0; //开启蜂鸣器 delay(500); //延时500毫秒 P1=0xff; //熄灭小灯 beep=1; //关闭蜂鸣器 delay(500); //延时500毫秒 a=_crol_(a,1); //将a变量循环左移一位 } } //8个发光管来回流动, 每个管亮100ms,流动时让蜂鸣器发出"滴滴"声。 /*********************************************************/ #include //52单片机头文件 #include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义 sbit beep=P2^3; 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; while(1) //大循环 { a=0xfe; //赋初值 for(i=0;i<8;i++) //左移 { P1=a; //点亮小灯 beep=0; //开启蜂鸣器 delay(50); //延时50毫秒 beep=1; //关闭蜂鸣器 delay(50); //再延时50毫秒 a=_crol_(a,1); //将a变量循环左移一位 } a=0x7f; for(i=0;i<8;i++) //右移 { P1=a; //点亮小灯 beep=0; //开启蜂鸣器 delay(50); //延时50毫秒 beep=1; //关闭蜂鸣器 delay(50); //再延时50毫秒 a=_cror_(a,1); //将a变量循环右移一位 } } } //用8个发光管演示出8位二进制数累加过程。 /*********************************************************/ #include //52单片机头文件 #include //包含有左右循环移位子函数的库 #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; while(1) //大循环 { a++; P1=~a; delay(200); } } //8个发光管间隔200ms由上至下, 再由下至上,再重复一次, 然后全部熄灭再以300ms间隔 全部闪烁5次。重复此过程 /*********************************************************/ #include //52单片机头文件 #include //包含有左右循环移位子函数的库 #define uint unsigned int //宏定义 #define uchar unsigned char //宏定义