单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx

上传人:王** 文档编号:1025144 上传时间:2024-03-16 格式:DOCX 页数:9 大小:93.98KB
下载 相关 举报
单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx_第1页
第1页 / 共9页
单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx_第2页
第2页 / 共9页
单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx_第3页
第3页 / 共9页
单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx_第4页
第4页 / 共9页
单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx_第5页
第5页 / 共9页
单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx_第6页
第6页 / 共9页
单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx_第7页
第7页 / 共9页
单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx_第8页
第8页 / 共9页
单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
资源描述

《单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx》由会员分享,可在线阅读,更多相关《单片机应用项目式教程——基于Keil和Proteus第2版习题答案第5章思考和练习解答.docx(9页珍藏版)》请在优知文库上搜索。

1、第5章思考和练习解答5.1 简述LED数码管的结构和分类。LED正向压降、额定电流和最大电流各是多少?答:参阅教材书P143。5.2 什么叫静态显示方式和动态显示方式?各有什么特点?答:参阅教材书P.14414505.3 动态扫描显示电路如何连线?对数码管的驱动电流有什么要求?5.4 答:参阅教材书P.14414505.5 1.CDI602能显示多少字符?能显示汉字吗?答:LCD1602液晶显示屏能显示2行共32个字符。1602不能显示汉字(12864可显示汉字)。并且只能显示其内部已经固化了的160个57点阵字符和32个5x10点阵字符(参阅教材书图5-22点阵字符表).其中,标点符号、阿拉

2、伯数字和英文大小写字母等字符为ASCn码。若需显示自定义字符,有64字节RAM,可自定义8个5X8点阵字符或4个5X11点阵字符。5.6 按键开关为什么有去抖动问题?如何消除?答:参阅教材书P.14814905.7 试述矩阵式键盘判别键闭合的方法,有什麽问题?答:矩阵式键盘的I/O端线分为行线和列线,按键跨接在行线和列线上。按键按下时,行线与列线发生短路。根据这一特点,可按下列步骤操作:置列线为输入态,从行线输出低电平,读入列线数据,若某一列线为低电平,则该列线上有键闭合;置行线为输入态,从列线输出低电平,读入行线数据,若某一行线为低电平,则该行线上有键闭合;综合、两步的结果,可确定按键编号。

3、矩阵式键盘电路在许多单片机教材和技术资料中被介绍,但实际上该电路连接存在问题,当同一行有多键同时按下,且该行其中一键所在列又有多键同时按下时,会发生信号传递路径出错。因此,这种矩阵式键盘电路适用于无锁按键并使用中断处理时相对合理。5.8 什么叫BCD码?与二进制数有何区别?答:BCD码(BinaryCodedDeCimaICOde)也称为二-十进制数,属十进制数,即逢十进位。但每一数位采用二进制码对十进制数字编码,这种编码方式的特点是保留了十进制的权,数字则用二进制码表示。BCD码既适应了人们逢十进位的习惯,又适应了计算机对输入输出数据的要求。BCD码与二进制数都用二进制码表示,但是有区别的。

4、BCD码是以4位二进制码表示一位十进制数,每4位以内按二进制进位;4位与4位之间按十进制进位。例如:二进制码01100111B=i03,01100111BCD=67显然两者是不一样的。5.9 什么是ASen码?答:参阅教材书P.151。5.10 将项目6模拟交通灯的绿灯加上限行显示时间,P2口驱动横向绿灯限行时间,P3口驱动纵向绿灯限行时间,电路如图5-27所示。原换灯时间分别改为:绿灯9秒(最后2秒快闪),黄灯3秒,红灯12秒,反复循环。试编制程序,画出ProteUSISlS虚拟电路,并仿真调试。解:可仿照任务6.1程序,加入显示语句,显示字段码直接从P2、P3口输出。include sbt

5、t GA=12;sbt GB=P15;unsigned char code c10=包含访问由库函数reg51h定义横向绿灯为PlaT定义纵向绿灯为PL5“,定义共阳字段码数组,并域值OXco,0x0,0x3,0Xbo,0x99,0x92,0x82,0xf8,0x8Q0x90Wvoid mam() unsigned char tj; Xinsigned long P2=0xP3xff;Whfle(I) Pl=0;for(f=9; r10; i) P3=cK;iK2)fbr(t=O;K=22000;l);WSe tf(i=2),(i=l)GA-! GA;f主函数jf定义循环变里I、定义长整型延时

6、参数W限行显示时间暗无限循环,横向绿灯真,纵向红灯高+横向绿灯循环U横向绿灯显示限行时间-若限行时间2秒T限行显示04间一秒刷新a若限行时间2秒,带闪烁PT闪烁循环“横向绿灯闪烁,纵向红灯保持戛forgo;02200;t)ib闪烁间隔0.1秒.elsefor(t=0;K=5000;LA若限行时间=0,05秒后暗P3=0xffJPl0;for (t0: t66000: t+ );Pl=Oxde;fbr(i=9; t10; i-) P2c;岭2)fbr(t=0;t=22000;tH-);dse if(i=2)(i=l) for(j=0jj10jj+)GB-! GB;横向探灯限行显示时间暗-横向黄灯

7、真,纵向红灯仍保持亮,黄灯延时3秒纵向绿灯莫,横向红灯亮、黄灯灭.纵向绿灯循环,纵向绿灯显示限行时间,T若限行时间2秒+T限行显示0寸同一秒刷新*,若限行时间42秒,常闪烁T闪烁循环”-纵向绿灯闪烁,横向红灯保持宴,foKt=0;=2200;tX,闪烁间隔0.1秒dsefor(t=0;t=5000;t-若限行时间=0,05秒后暗“P2=0xffJ纵向绿灯限行显示时间暗“Pl三0xee;T纵向黄灯更,横向红灯仍保持亮,for(t=0;三66000;廿+);黄灯延时3秒/WinCIUde sbit P10=P10;unsigned char code c(10=void chag3 (unsign

8、ed int unsigned char i;y0=100;yl=(x%100)10;y2=jt%10;for(i=0; i3; i+)yi=cyiBJvoid main ()unsigned char i;Uisigncd int a=809;unsigned char b3;SCON=Ox(X);ES=O;Chag3 (a, b);P10=0;fbr(i=2;i3;i-)SBUF=bi;while (TI=O);TI=0;P10=l;vhile(l);)5.11 已知CC4094串行扩展3位静态显示电路如图5-28所示,3位显示字段码己分别存在32H3OH内RAM中(设为809),小数点固

9、定在第二位,试编制程序,画出ProteUSISIS虚拟电路,并仿真调试。解:C51编程如下:头文件包含访问血库函数reg51.h定义位标识符PIO为PLO.定义共阳逆序(a是高位)小数点暗字段码数组0x03.0x9f.0x25.0x0d.0x99.0x49.0x41.0x1f.x1.0x09;x.unsignedchary)3位字段码转换子函数演g定义无符号字符型变量i(循环字数)显示数除以100,产生百位显示数字(除以100后的余数)除以10,产生十位显示数字除以10后的余数就是个位显示数字循环转换显示字段码无类型主函数定义无符号字符型变量i(循环字数)定义无符号整型变量a(显示数),并赋值

10、809定义无符号字符型数组b(4位显示字段码),置串口方式0串口禁中调用4位字段码转换子函数Chag4关闭4094并行输出循环串行发送显示效等待一字节串行发送完毕一字节串行发送完毕,清发送中断标志3字节串行发送完毕,开启4094并行输出原地等待KeilC51软件调试:编译连接并进入调试状态后,打开串行口对话框,单步结合过程单步运行,可观察到串行口对话框中SBUF寄存器依次被输入908(先发送低位)转换后的共阳显示字段码:09、03、Ol0改变变量a或32H30H中的数值(注意999),重新运行,转换结果随之改变。5.11 已知由PNP型三极管与74377组成的共阳型3位LED数码管动态扫描显示

11、电路如图5-29所示,显示字段码存在以40H(低位)为首址的3字节内RAM中,试编制3位动态扫描显示程序,画出PrOteUSlSIS虚拟电路,并仿真调试。解:按图5-29电路,P1.0P1.2分别输出低电平时,VT0VT2分别导通,选通相应显示位。PO口输出的字段码也是低电平有效。输出高电平与输出低电平时的驱动能力不一样,输出高电平时,拉电流较小;控制。C51编程如下:输出低电平时,灌电流较大,因此,通常采用低电平有效输出includeincludeSbitPlo=PlAO;头文件包含访问第L库函数reg5Lh头文件包含绝对地址访问库函数absacc.h定义位标识符Plo为PLosbitP11

12、=P11;SbitP12=P12;定义位标识符PIl为PLl定义位标识符P12为P12voidmain()unsignedintt:DBYTE0x42=0xa4;DBYTE(0x41=0xb0;无类型主函数定义无符号整型变量t(延时参数)绝对地址0x42赋值(百位显示数2的显示字段码)绝对地址0x41赋值(十位显示数3的显示字段码)DBYTE0x40=0x99:P1O=P11=P12=1;for(;)绝对地址0x40赋值(个位显示数4的显示字段四)个位、十位、百位停显示无限循环显示XBYTE0xbfff=DBYTE0x40;出个位显示字段码PlO=O;for(t=0;K1000;计+);PlO

13、=I;/个位显示延时约5ms个位停显示XBYTEOxbffl=DBYTE0x41”输出十位显示字段码Pll=O;for(t=0;t1000;t+);Pll=I;十位显示延时约5ms十位停显示XBYTEOxbffl=DBYTE0x42;输出百位显示字段码P12=0;for(t=0:t1000;t+);P12=k百位显示延时约5ms百位停显示5.12 己知4位共阴型LED动态显示电路如图5-30所示,显示字段码存在以30H为首址的内RAM中,试编制循环扫描显示程序,画出ProteUSlSIS虚拟电路,并仿真调试。解:C51编程如下:includeincludeSbitP10=P10;头文件包含访问

14、血库函数reg51,h头文件包含绝对地址访问库函数absacc.h定义位标识符PIo为PLOSbitP11=P11;定义位标识符PU为PLlsbitP12=P12;voidmain()unsignedintt;DBYTE0x42=0xa4;DBYTE(0x41=0xb0;DBYTE0x40=0x99;P1O=P11=P12=1;for(;)定义位标识符P12为P12无类型主函数定义无符号整型变量t(延时参数)绝对地址0x42赋值(百位显示数2的显示字段码)绝对地址0x41赋值(十位显示数3的显示字段码)绝对地址0x40赋值(个位显示数4的显示字段码)个位、十位、百位停显示无限循环显示XBYTE(0xbfff=DBYTE(0x40;出个位显示字段码PlO=O;for(t=0;K1000;t+);PlO=I;个位显示延时约5ms个位

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2023 yzwku网站版权所有

经营许可证编号:宁ICP备2022001189号-2

本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!