《单片机应用项目式教程——基于Keil和Proteus第2版案例汇总第1--6章思考和练习解答.docx》由会员分享,可在线阅读,更多相关《单片机应用项目式教程——基于Keil和Proteus第2版案例汇总第1--6章思考和练习解答.docx(20页珍藏版)》请在课桌文档上搜索。
1、第1章思考和练习解答1.1 什麽是单片机?单片机学习指导及习题解答(第2版),复习思考题解答1.21.2 单片机应用的主要领域有哪些?试举出10个以上的应用实例。本书任务1.11.3 80C51共有几个8位并行I/O?各有什么功能?其中P3口的第二功能是什么?单片机学习指导及习题解答(第2版),匏习思考题解答2.11、2.121.4 试述8OC51存储空间结构,各有什么功能?单片机学习指导及习题解答(第2版),复习思考题解答2.31.5 80C51内RAM的组成是如何划分的,各有什么功能?单片机学习指导及习题解答(第2版),复习思考题解答2.41.6 简述程序状态字寄存器PSW各位定义名、位编
2、号和功能作用。单片机学习指导及习题解答(第2版),复习思考题解答2.61.7 在计算机中为什么要用二进制数和十六进制数?单片机学习指导及习题解答(第2版),复习思考题解答1.41.8在8位计算机中,数的正负号如何表示?单片机学习指导及习题解答(第2版),复习思考题解答1.61.9 试在KeilVsion创建一个新项目key_clrl,设置单片机工作频率父)sc=6MHz,需生成可执行HeX文件,输入如下源程序,并添加到目标项目组,存盘。单片机学习指导及习题解答(第2版),例51.10 试重新打开题创建项目keytrl,编译链接调试,并用全速运行、单步结合过程单步运行和断点运行3种操作方法,观测
3、运行过程和结果(提示:全速运行时,为便于观测,调用延时子函数delayl实参可修改为110000)单片机学习指导及习题解答(第2版),例9-21.1 试在已经画好的图1-48所示ProteUSISlS虚拟电路中,装入题调试后自动生成的HeX文件,并仿真运行,观测运行过程和结果。单片机学习指导及习题解答(第2版),例9-7第2章思考和练习解答1.2 C51编程与8OC51汇编语言相比,主要有什麽优势?单片机学习指导及习题解答(第2版),复习思考题解答5.31.3 C51基本数据类型有哪几种?其数据长度为多少?本书基础知识4.1,图2-31.4 C51标识符命名有何要求?单片机学习指导及习题解答(
4、第2版),免习思考题解答5.41.5 怎样理解变量的存储器类型和编译模式?单片机学习指导及习题解答(第2版),复习思考题解答5.71.6 为什么变量要尽量使用无符号字符型格式?单片机学习指导及习题解答(第2版),复习思考题解答5.81.7 为什么变量要尽量使用局部变量?单片机学习指导及习题解答(第2版),复习思考题解答5.91.8 for循环语句括号内3个表达式分别表示什麽含义?能否缺位?单片机学习指导及习题解答(第2版),复习思考题解答5.141.9 While(I)和for(;)表示什麽含义?单片机学习指导及习题解答(第2版),复习思考题解答5.151.10 什麽是数组?如何定义和表示?单
5、片机学习指导及习题解答(第2版),复习思考题解答5.161.11 函数参数传递,值传递与地址传递有什麽不同?单片机学习指导及习题解答(第2版),复习思考题解答5.221.12 已知双键控3灯电路如图2-11所示,要求实现:JrJL/US0.54K4DlAIIVSM5TK*80C5LP1.2+红22OaN绿1彳22OaPl.l*NPLO.220*=-5V-图2/1双键控3灯电路.So单独按下,红灯亮,其余灯灭;Sl单独按下,绿灯亮,其余灯灭;So、Sl均未按下,黄灯亮,其余灯灭;So、Sl均按下,红绿黄灯全亮。试按任务4.1中3种形式编写C51程序,画出ProteusISIS虚拟电路,并仿真调试
6、。(1) if-else语句单片机学习指导及习题解答(第2版),例52if语句嵌套单片机学习指导及习题解答(第2版),习题5.11SWitCh语句单片机学习指导及习题解答(第2版),习题5.121.12 求:SUm=I+3+5+99。试用“while循环”编写、输入源程序并调试运行。单片机学习指导及习题解答(第2版),例5-31.13 求:SUm=2+4+6+100。试用do-while循环”编写、输入源程序并调试运行。voidmain()f/主程序Ounsignedcharn=2:-/定义无符号字符型变量n,并赋初值“Unsignedintsum=0:/定义无符号整型变量SUn1,并赋初值“
7、dosum=sum+n;n=n+2:/循环体语句:累加求和,并修正循环变量“while(n=100);/循环条件判断:当nW100时循环,否则跳出循环PWhiie(1);/原地等待.1.14 求:SUm=I!+2!+10!。试用“for循环”编写、输入源程序并调试运行。单片机学习指导及习题解答(第2版),习题5.211.15 电路如图2-10所示,按以下要求亮灯循环,间隔约1秒,试编写程序,并仿真调试。从两边到中心依次点亮,每次增加2个,直至全亮;从两边到中心依次暗灭,每次减少2个,直至全暗;重复上述过程,不断循环重复。2.15.#includeT包含访问sfi库函数reg51hunsigne
8、dcharcodeled=T定义花样循环码数组,存在ROM中.0x7ej0x3c,0x18,0,T从两边到中心依次点亮,每次增加2个,直至全亮.0x81,0xc3,0xe7,0x);T从两边到中心依次暗灭,每次减少2个,直至全暗.voidmain()-/主函数Unsigncdchari;-定义循环变量i“unsignedlongt;T定义长整型延时参数Vwhile(l)-/无限循环.fbr(i=0;i8;i+)花样循环.Pl=ledi;T读亮灯数组,并输出至Pl口.,for(t=0;t=11000;t+);-/延时1秒1.16 电路和亮灯循环同上题,要求用指针指向并输出数组元素,试编写程序,并
9、仿真调试。从两边到中心依次点亮,每次增加2个,直至全亮:从两边到中心依次暗灭,每次减少2个,直至全暗;重复上述过程,不断循环重究。2.16.include包含访问sfi库函数reg51hunsignedcharcodeled=定义花样循环码数组,存在RoM中.0x7e,0x3c,0xl8,0,从两边到中心依次点亮,每次增加2个,直至全亮.0x81j0xc3,0xc7,0xfl);T从两边到中心依次暗灭,每次减少2个,直至全暗.voidmain()T主函数”Unsignedchar*p;-定义指向数组的指针变量.unsignedlongt;定义长整型延时参数匕while(l)T无限循环一fbr(
10、p=led;pled+8;p+-)-花样循环,循环变量为指针变量p“Pl=*p;按指针变量p读亮灯数组,并输出至Pl.for(t=0;t=11000;t+);延时1秒1.17 电路如图2-10所示,按以下要求亮灯循环,间隔约0.5秒,试编写程序,并仿真调试。从上至下依次点亮,点亮灯光闪烁3次,后保持点亮,直至全亮;全亮全暗闪烁3次;重复上述过程,不断循环重复。2.17-include包含访问sfi库函数reg51.h.unsignedcharcodeled=一定义花样循环码数组,存在ROM中.Oxfe,OxfTOxfe,OxfOxfe,Oxff,/从上至下依次点亮,P1.0先闪烁3次,后保持点
11、亮.后保持点亮. 后保持点亮. 后保持点亮. 后保持点亮. 后保持点亮. 后保持点亮. 后保持点亮.0,0x80,0,x80,0,0x80.PL7先闪烁3次,0xfc,0xfe,0xfc.0xfe.0xfc.0xfe,“PL1先闪烁3次,Oxf8rOxfcOxf8,0xfcj0xf3,0xfc,/Pl.2先闪爆3次,0x),OxfS7OxfDjOxfB,0xft),0xf8,P1.3先闪烁3次,OxeO,OxfD,OxeO,OxfD,OxeO,0xft),/P1.4先闪烁3次,0xc0,0xe0,0xc0,0xe0,0xc0,0xe0.P1.5先闪烁3次,0x80j0xc0,0x80,0xc0
12、,0x80,OxcOP1.6先闪烁3次,0,Oxff,0,Oxff,OjOxffAOxffJ;全亮全暗闪烁3次.voidmain()-主函数“Unsignedchari;T定义循环变量Lunsignedlongt;-定义长整型延时参数t.while(l)T无限循环“for(i=0;i54;i+)-/应样循环.1.18 电路如图2-10所示,按以下要求亮灯循环,间隔约0.5秒,试编写程序,并仿真调试。全亮,保持2秒;从上至下依次暗灭,暗灭灯先闪烁3次,后保持暗灭,直至全暗;全暗,保持2秒;重复上述过程,不断循环重复。2.18.第3#include包含访问sfi库函数reg51hunsignedc
13、harcodeled=定义花样循环码数组,存在RoM中0,0,0,0,“/全亮2秒.0x01,0,0x01,0,0x01,0,一从上至下依次暗灭,PLO先闪烁3次,后保持暗灭.后保持暗灭. 后保持暗灭., 后保持暗灭“ 后保持暗灭“ 后保持暗灭.0x03,0x01,0x03,0x01,0x03,0x01,“/PLl先闪烁3次,0x07,0x03,0x07,0x03,0x07,0x03,P1.2先闪烁3次,0x0f,0x07j0x0f0x07j0x0f,0x07P1.3先闪烁3次,Oxlf,OxOCOxlfOxOEOxlf,OxOC”/PL4先闪烁3次,0x3f,0xlt0x3f0xlfs0x3
14、f,0xlf;P1.5先闪烁3次,0x7f;0x30x7f;0x3f;0x7f,0x3f;PL6先闪烁3次,后保持暗灭.0xff,0x7f0xff,0x7f0xff,0x7f-/PL7先闪烁3次,后保持暗灭.OxfiOxff.OxftOxfif);-/全暗2秒.voidmain()-主函数.Unsignedchari;定义循环变量iunsignedlongt;,定义长整型延时参数匕whilc(l)-/无限循环.fbr(i=0;i56;i+)-/花样循环.Pl=ledi;-读亮灯数组,并输出至PI口“for(t=0;t=5500;t)JT延时0.5秒.单片机学习指导及习题解答(第2版),复习思考
15、题解答6.143.8 8OC51定时/计数器,当叙=64142和叙=12乂142时,最大定时各为多少?单片机学习指导及习题解答(第2版),复习思考题解答6.153.9 定时/计数器初始化应设置哪些参数?单片机学习指导及习题解答(第2版),复习思考题解答6.163.10 已知PLO端口接一个发光二极管,要求定时控制该发光二极管闪烁(亮暗各0.5秒)。3.11 已知叙c=12MHZ,要求在80C51P1.O、P1.1、P1.2和PL3引脚分别输出周期为500S1ms、5ms和IOmS的脉冲方波,试编制程序,画出ProIeUSlSlS虚拟电路,并仿真调试。单片机学习指导及习题解答(第2版),例6-2
16、,例9-83.12 已知左sc=6MHz,要求80C51P1.7输出如图3-14所示连续矩形脉冲。JH1111H卜.A40ms360ms图3-14连续矩形脉冲波单片机学习指导及习题解答(第2版),习题解答6.173.13 乐曲播放电路同任务9.1,世上只有妈妈好曲谱如图3-13所示,设JbSC=I2MHz,试编制该歌曲程序,并仿真调试。I=C5世上只有妈妈好6535I1156-35653216532-2355_6i32I1-5321615-:|图3-13世上只有妈妈好歌谱解:分析任务9.1程序,不难看到,只要编制音符序号数组s和音符节拍长度数组L,同时修改音符节拍循环的中止条件(音符总数),即
17、可实现播放新的乐曲。全速运行后,鼠标左键单击KO(不锁定),可听到播放世上只有妈妈好歌。播完后,再次单击K0,再次播放。编程如下:*=mdude sbit KO=Prsbit SOMP17;unsigned char ij;unsigned Char code d22=包含访问库函jre三51.h,定义启动键KO为PLWT定义发声器SoND为PI.枕T定义字符型循环变量i(音符序数)、j(50ms整倍数),定义音符频率定时数组高位(12MHz,总寸方式0)0,196,2020SlU16r220,224r22629j232,233f236r2384041t242,2442441246r247t2
18、48unsignedcharcodeti22=T定义音符频率定时数组低S位(12MHz,赵寸方式0)0,即温7,4J6,12U2A202M皿52M43WUnsignedchars34-定义世上只有蚂妈好音符序数颜组,13,12,10,12,15,13f12J3,10,12,13,1110812j10j9t9,10,1112,13,10,9,8,12,10,9,8,6,8,5);12,48,8,8,4,4,168448,4,4,4,4,44,16,12,4,8,44,12,4,16,124,4,4,4,4,16;,void main() stgned mt TMOD0xl0;THl=OX3c;T
19、u=OXb0;=0x02; IE=OxSa;while (1) while (K0=l);Whfle (K0=0);for(i0; t=s;TLO=i;TRO-1; rLiiTRl=l; while (TRl=I);TRO=O; SOND=O;for (t=0; t66H77H、88H、99H、AAH、BBH.CCH.DDH、EEH.FFH、0)写入AT24C02首址为30H的连续单元中;再将其读出,存在80C51首址为50H的连续单元中。试编制程序,并在图4/6虚拟电路中,仿真调试。单片机学习指导及习题解答(第2版),例7-84.18 已知电路及条件同上例,要求将该16个数据写入AT24C0
20、24AH单元中;再将其读出,存在80C51内RAM中。单片机学习指导及习题解答(第2版),例7-9第5章思考和练习解答5.1 简述LED数码管的结构和分类。LED正向压降、额定电流和最大电流各是多少?单片机学习指导及习题解答(第2版),复习思考题解答8.15.2 什么叫静态显示方式和动态显示方式?各有什么特点?单片机学习指导及习题解答(第2版),复习思考题解答8.45.3 态扫描显示电路如何连线?对数码管的驱动电流有什么要求?5.4 单片机学习指导及习题解答(第2版),复习思考题解答8.55.5 1.CD1602能显示多少字符?能显示汉字吗?单片机学习指导及习题解答(第2版),复习思考题解答8
21、.75.6 按键开关为什么有去抖动问题?如何消除?单片机学习指导及习题解答(第2版),匏习思考题解答8.85.7 试述矩阵式键盘判别键闭合的方法,有什麽问题?单片机学习指导及习题解答(第2版),复习思考题解答8.115.8 什么叫BCD码?与二进制数有何区别?单片机学习指导及习题解答(第2版),复习思考题解答1.85.9 什么是ASCn码?单片机学习指导及习题解答(第2版),复习思考题解答1.95.10 将项目6模拟交通灯的绿灯加上限行显示时间,P2口驱动横向绿灯限行时间,P3口驱动纵向绿灯限行时间,电路如图5-27所示。原换灯时间分别改为:绿灯9秒(最后2秒快闪),黄灯3秒,红灯12秒,反复
22、循环。试编制程序,画出ProteUSISlS虚拟电路,并仿真调试。图5-27 PmeUS虚拟仿真带限行时间显示的模拟交通灯电路(运行中)void mam() unsigned char tj; unsigned long P2=0xffiP3xff;Whilea)Pl=0;fbr(f=9; t-包含访问sfr库函数re三5Lh,sbtGAW12-定义横向绿灯为PL2-sbtGB=Pl人5;T定义纵向绿灯为P1.5unsignedcharcodec10三定义共阳字段码数组,并喷值,0xc0.0xf9f0xa4.0xb010x99j0x9210x82j0xfSr0xS0t0x90;一f主函数一定义
23、循环变里八户f定义长整型延时参数田限行显示时间暗4T无限循环”横向绿灯高,纵向红灯亮横向绿灯循环。,q/nICrInH5.11 已知CC4094串行扩展3位静态显示电路如图5-28所示,3位显示字段码已分别存在32H30H内RAM中(设为809),小数点固定在第二位,试编制程序,画出ProteUSISIS虚拟电路,并仿真调试。图5-284094串行扩展3位静态显示电路单片机学习指导及习题解答(第2版),例8-25.12 已知由PNP型三极管与74377组成的共阳型3位LED数码管动态扫描显示电路如图5-29所示,显示字段码存在以40H(低位)为首址的3字节内RAM中,试编制3位动态扫描显示程序
24、,画出PrOteUSISIS虚拟电路,并仿真调试。单片机学习指导及习题解答(第2版),例8-45.13 已知4位共阴型LED动态显示电路如图5-30所示,显示字段码存在以30H为首址的内RAM中,试编制循环扫描显示程序,画出PrOIeUSISlS虚拟电路,并仿真调试。单片机学习指导及习题解答(第2版),例8-5图5-30 4位共阴型LED动态显示电路图5-29共阳型3位动态显示电路5.14 己知8位共阴型LED动态显示电路如图5-31所示,位码驱动由74LS138译码,段码驱动由74LS377并行输出,8位显示数字存在数组a中,试编制循环扫描显示程序,画出PrOteUSISIS虚拟电路,并仿真
25、调试。单片机原理与控制技术(第3版),例8-4+5V ;一P3.5P 1.0 Pl.IPI.280C51P2.7WRPoYr234567EIE2E?ABCE 74377CLKQ0-Q7D0-D7共阴数码管图5-31139位码选通+377段码并行传送的8位LED动态显示电路5.15 已知8位共阴型LED动态显示电路如图5-32所示,位码驱动由74LS138译码,段码驱动由74LSl64“串入并出”,8位显示数字存在数组d中,试编制循环扫描显示程序,画出PrOteUSlSIS虚拟电路,并仿真调试。解:本题程序与上题相仿,仅段码传送语句不同。另外,还需加入串行初始化语句。Pl.0Pl.1Pl.280
26、C51TXDRXDY7Y6Y5Y4Y3Y2YTYO 92QhABC -IE2lE3臼3-? BS LRLK CcsDpgfedcba8 :I图5-32138位码选通+164段码串行传送的8位LED动态显示电路1. 编程include包含访问sfr库函数reg51.hinclude包含绝对地址访问库函数absacc.hUnsignedcharcodec10=*定义共阴逆序(a是高位)字段码数组0xfc.0x60.0xda.0xf2.0x66.0xb6.0xbe.0xe0.0xfe.0xf6;-1voidmain()主函数Unsignedchari:定义无符号字符型变量i(循环序数)Unsigne
27、dintt;f定义整型变量t(用于显示扫描延时)”Unsignedchard8=2y0jL3j9,8r7r6;r7定义显示数字数组,并赋值.SCON=OxOO;力置串口方式OpES=O;-/串口禁中,while(l)无限循环.for(i=0;i8;i+)8位依次扫描输出Pl=0xf8+i;T输出位码(i由138译码)PSBUF=cdi:串行发送段码,Whik(TI=O);-/等待一字节串行发送完毕PTI=O;f一字节串行发送完毕,清发送中断标志,for(t=O:t1000;t+)。延时约5ms42. KeilC51编译调试(1)编译链接,无语法错误后,进入调试状态。“在变量观察窗口Locals
28、页(参阅图174LS164在TTL74LSSerieS库中;8位显示屏在OPtOeleCtroniCSf7-SegmenlDisplays库中,选共阴型8位7段LED数码管7SEGMPX8CCBLUE。鼠标左键双击图5-32a所示电路中AT89C51,装入在KeilC51编译调试时自动生成的HeX文件。全速运行后,虚拟电路中数码管显示屏会显示赋值显示数。改变程序中显示赋值,重新Keil编译,生成并装入HeX文件,全速运行后,显示随之改变。0I3915拙卜昨忖is ra g5zpsjpps.U3 74HC138Q L、y 艮 Igsd 05 UWmgd QXV-Cd QxlsUl AT89C51
29、图5-32aPrOteUS虚拟仿真138位码选通+164段码串行传送的8位LED动态显示电路(运行中)5.15 已知LCD1602显示电路如图5-15所示,要求显示屏上第一行显示“AT89C51-LCD1602”,第二行显示“Test-Program”,试编制显示程序。单片机学习指导及习题解答(第2版),例8-65.16 已知电路如图5-33所示,1OkCX8和0.1F8为RC滤波消抖电路,人sc=6MHz,要求TI每隔IoomS中断,定时描描按键状态,并将键信号存入内RAM30H,试编制程序,画出ProteusISIS虚拟电路,并仿真调试。IokCX8 1PORDP2.7Sl 2 3 4 5
30、 5 7 DDDdDaD3 刀J37 Q74 所 一OE80C51图5-33按键与并行扩展VO【I连接电路单片机学习指导及习题解答(第2版),例8-75.17 已知3x3矩阵式键盘中断扫描接口电路如图5-34所示,P1.4.P1.3另有他用,不能改变其端口状态(输入态),且其输入状态不定。要求即时判断闭合键序号,并送P2显示。试编制程序,画出PrOteUSlSlS虚拟电路,并仿真调试。BPl.6Pl.1Pl.0INTC80C51 Pl.7图5-343x3矩阵式键盘中断扫描接口电路程序如下:include包含访问Sfr库函数reg51.hinclude包含访问内联库函数intrins.hUnsi
31、gnedcharcodec10=T定义共阳字段码数组(08及无键闭合状态标志),0xc0.0xf9.0xa4.0xb0.0x99,0x92,0x82.0xf8.0x80.0x3f5junsignedcharcodek9=定义键闭合状态码数组(用于查找闭合键对应序号)“0xde.0xdd.0xdb.0xbe.0xbd.Oxbb.0x7e.0x7dj0x7bunsignedintt;f定义无符号整型变量t(延时参数)PUnsignedcharkey_scan()T键扫描子函数,返回值j(闭合键序号)。UnsignedcharS=Oxdf;-定义行扫描码,并置初始值,P1.4先置低电平unsigne
32、dcharij;/定义变量i(行扫描字数),j(闭合键序号)”for(i=0;i3;i+)行循环扫描,n-c.0必山行七Kn-1-fcProtcus ISIS虚拟电路:3x3矩阵式键盘P3 7/TO P3.6 而P3.5H1 P31DP3.3Tff P32iU5 P3 IrTXD P3D/RXDn 7/A16 P2 6/AHP2.5/A13 P2 4/A12P2 3/A11 P22/AJ0P2 1 P2 0P0 7/XO7 PO 6CB ro.5/xos PO 4/AMPOM8 PO.2X2PO 1/XO1 P0 07XCDU1AISQC51分辨的第66.16.2最小电J6.3 图6-1电路中
33、,怎样启动0809A-D转换?单片机学习指导及习题解答(第2版),复习思考题解答8.15、8.166.4 图6-5电路中,ADC0832数据输入输出端DI,DO端连接在一起,会不会引起冲突?单片机学习指导及习题解答(第2版),复习思考题解答8.176.5 什么叫D-A转换?基本原理是什么?若D=65H,UREF=5V,求D-A转换后输出电压多少?单片机学习指导及习题解答(第2版),复习思考题解答8.186.6 什么叫单缓冲和双缓冲工作方式?各有什么功能?单片机学习指导及习题解答(第2版),复习思考题解答8.196.7 己知0809A-D转换中DPTR值,试指出其片选端和当前A-D的通道编号。D
34、PTR=DFF9HDPTR=FDFFH单片机学习指导及习题解答(第2版),习题解答8.146.8 已知0809片选端和当前A-D的通道编号,试指出A-D转换中DPTR值。片选端:P2.4;通道编号:0片选端:P2.0;通道编号:6单片机学习指导及习题解答(第2版),习题解答8.156.9 参照任务18.1,要求用查询方式实现A-D转换,试画出PrOteUSISlS虚拟电路,编制程序,并仿真调试。单片机学习指导及习题解答(第2版),习题解答&I66.10 参照任务18.1,要求用延时等待方式实现A-D转换,试画出ProteUSISIS虚拟电路,编制程序,并仿真调试。单片机学习指导及习题解答(第2版),习题解答8.166.11 根据下列已知条件,试求D/A转换后输出电压Ua。D=80H,Uref=5V,N=8D=345H,UREF=3V,N