《微机控制应用技术》课件微机控制课后题3.docx

上传人:李司机 文档编号:7028917 上传时间:2024-04-21 格式:DOCX 页数:15 大小:83.01KB
返回 下载 相关 举报
《微机控制应用技术》课件微机控制课后题3.docx_第1页
第1页 / 共15页
《微机控制应用技术》课件微机控制课后题3.docx_第2页
第2页 / 共15页
《微机控制应用技术》课件微机控制课后题3.docx_第3页
第3页 / 共15页
《微机控制应用技术》课件微机控制课后题3.docx_第4页
第4页 / 共15页
《微机控制应用技术》课件微机控制课后题3.docx_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《《微机控制应用技术》课件微机控制课后题3.docx》由会员分享,可在线阅读,更多相关《《微机控制应用技术》课件微机控制课后题3.docx(15页珍藏版)》请在三一办公上搜索。

1、项目一三.综合题1 .画出微机控制系统的组成框图。计算机J外存人机交互设备及接口2 .简述输入/输出通道及接口的作用。输入/输出通道及接口分为模拟量输入/输出通道和数字量输入/输出通道两种。输入通道及接口把受控对象经传感器转换后的电信号,转换为数字量送入控制器。输出通道及接口把控制器处理结果再转换成执行机构所需信号,去控制受控对象。3 .简述人机交互设备的作用。人机交互设备实现了用户和计算机之间的信息交换。4 .画出声光报警电路的框图。单片机LED驱动扬声器驱动5 .画出自动Il的框图。传感器单片机驱动执行 机构项目二三.综合题1 .简述三基色原理。三基色原理是指自然界中的绝大部分彩色,都可以

2、由三种基色(红,绿,蓝)按一定比例混合得到;反之,任意一种彩色均可被分解为三种基色。作为基色的三种彩色,要相互独立,即其中任何一种基色都不能由另外两种基色混合来产生。2 .利用2个按键控制七色发光二极管。一个按键用于切换颜色,另一个按键用于熄灭手电。#includeftdefineucharunsignedcharftdefineuintunsignedintsbitRED=P20;sbitGRE=P21;sbitBLU=P22;sbitkaishi=PlO;sbitqiehuan=Pll;bitbiaozhi=0;ucharcishu=0;voiddelay(uinta);main()(wh

3、ile(l)(if(kaishi=O)(delay;if(kaishi=O)(biaozhi=!biaozhi;while(!kaishi);)lf(biaozhi=0)RED=0;GRE=0;BLU=0;else(if(qiehuan=O)(delay;if(qiehuan=O)(cishu+;if(cishu=9)cishu=l;switch(cishu)(case1:RED=O;GRE=O;BLU=O;break;case2:RED=O;GRE=O;BLU=l;break;case 3: RED=O;GRE=l;BLU=O;break;case 4: RED=O;GRE=l;BLU=l;

4、break;case5:RED=l;GRE=O;BLU=O;break;case 6: RED=l;GRE=O;BLU=l;break;case 7: RED=l;GRE=l;BLU=O;break;case 8: RED=l;GRE=l;BLU=l;break;JwhiIe(Iqiehuan);)voiddelay(uinta)(uinti,j;for(i=0;ia;i+)for(j=0;j1827;j+);)3 .利用8个按键控制七色发光二极管,每一个按键控制一种状态。要求画出框图、硬件电路图,并编写源程序。硬件电路图见教材图2-3,Pl口接8个按键。ftincludeftdefineuc

5、harunsignedchar#defineuintunsignedintsbitRED=P2O;sbitGRE=P21;sbitBL=P22;bitbiaozhi=0;voiddelay(uinta);main()(while(l)(if(Pl!=OXFF)(delay;if(Pl!=OXFF)(Switch(Pl)(caseOXFE:RED=O;GRE=O;BLU=O;break;caseOXFD:RED=O;GRE=O;BLU=l;break;caseOXFB:RED=O;GRE=l;BLU=O;break;case0XF7:RED=O;GRE=l;BLU=l;break;caseOXE

6、F:RED=l;GRE=O;BLU=O;break;caseOXDF:RED=l;GRE=O;BLU=l;break;caseOXBF:RED=l;GRE=l;BLU=O;break;case0X7F:RED=l;GRE=l;BLU=l;break;while(Pl!=OXFF);)voiddelay(uinta)(uinti,j;for(i=0;ia;i+)for(j=0;j1827;j+);4 .用七色发光二极管与蜂鸣器设计声光报警电路。项目三三.综合题1 .简述锁存功能。锁存功能是指将数据保存在锁存器的输出端,不会丢失。2 .简述74HC573数据锁存过程。先传送数据,后锁存数据。3简沐

7、彳扫描即理行扫描是指每4只猛选中一行,所有的行轮流点亮。4.用2线-4线译码器(使能端El),构成3线-8线译码器。5 .简述74LS595串入-并出一个字节的过程。第1步,串行输入一个字节至移位寄存器。第2步,将数据传送至8位存储器。第3步,打开三态门。6 .用74LS595构成24位移位寄存器,写出步骤并画图。7 .编写函数在32X64点阵上显示32X32的汉字。voidhang3232(uchartabl,uchartab2)(charij;for(i=0;i=0;j-)yzimo(tabli*4+j);for(j=3;j=0;j-)yzimo(tab2i*4+j);RCK=1;xsao

8、miao(i);_nop_();)8 .编写函数在3264点阵上显示24X32的汉字。voidhang24x32(uchartabl,uchartab2)(charij;for(i=0;i=0;j-)yzimo(tabli*4+j);for(j=3j=0J-)yzimo(tab2i*4+j);RCK=1;xsaomiao(i);,nop_();)9 .编程在3264点阵上显示多屏信息。main()(uchari;while(l)for(i=0;i220;i+)hang2432(jizwei);for(i=0;i220;i+)hang2432(qi,tian);10 .设计一个动画,用32X64

9、点阵显示。项目四三.综合题1 .简述无字库12864的屏幕管理机制。12864显示屏的点阵大小为128列X64行。以中间为间隔一分为二,为左屏和右屏;每半屏均分为8个数据页;每页的大小为8行、64列。2 .写出无字库12864显示信息所需的函数声明。voidIcdkaixianshi(Void);voidIcdguanxianshi(Void);voidIcdshezhiyefucharye);voidlcdshezhilie(ucharlie);voidlcdxiezimo(ucharzijie);voidIcdshezhiyeliefucharyezucharlie);voidlcdqin

10、gping(void);voidIcdchushihua(Void);voidIcdxianshil6xl6(uchartab,ucharqiyezucharqilie);3 .写出ICdXianShiI6xl6()和ICdXianShiI6x8()的函数定义及函数声明,并写出显示“镇北路6号”的函数调用。voidIcdxianshil6xl6(uchartab,ucharqiyezucharqilie);voidIcdxianshil6xl6(uchartab,ucharqiye,ucharqilie)(uchari,j;for(i=0;i2;i+)(for(j=0;j16;j+)(lcds

11、hezhiyelie(i+ye,j+lie);lcdxiezimo(tabi*16+j);)voidIcdxianshil6x8(uchartab,ucharqiyezucharqilie);voidIcdxianshil6x8(uchartab,ucharqiye,ucharqilie)(uchari,j;for(i=0;i2;i+)for(j=0;j8;j+)Icdshezhiyelie(i+ye,j+lie);lcdxiezimo(tabi*8+j);)Icdxianshil6xl6(zhen,2,);Icdxianshil6xl6(bei,2z16);ICdXianShil6xl6(l

12、u,2,32);ICdXianShiI6x8(liu,2,48);Icdxianshil6xl6(hao,2,56);4 .编写函数显不64X64的图片。voidIcdxianshi64x64(uchartabzucharqiye,ucharqilie)(uchari,j;for(i=0;i8;i+)(for(j=0;j64;j+)(lcdshezhiyelie(i+yezj+lie):lcdxiezimo(tabi*64+j);)5.声明一个数组存放表4-10中的数据,并赋初值;然后取出张同学的政治成绩,取出李同学的所有成绩。表4/0随堂练习C数政张859070李856865uchara23

13、=(85,90,70,85,68,65,);张同学的政治成绩:a02取出李同学的所有成绩:al6.设计一个多种信息的版面,显示在12864上。main()(Icdxianshi64xl28(tu);ICdXianShil6xl6(ge,6,0);Icdianshil6xl6(zi,6z112);项目五三.综合题1 .计算+16、-16的补码。+16补码=OOOlOO00=0x20-16补码=10010000+I=IIlOlllI+1=1111000=0XfO2 .如补码为0f6,求原码。因为,补码0xf6=11110110的符号位(位7)为1,所以是一个负数的补码。所以,原码=补码(除符号位)

14、+1=0xf6+l=-11110110+l=10001001+1=10001010=-103 .DS18B20输出数字量为OXooa2,计算实际温度。保留1位小数,4舍5入。因为数字量0x00a2的符号位为0,所以实际温度0。实际温度=0x00a2X0.0625=(1016+21)X0.0625=162X0.0625=I0.125C(int)(10.125*10+0.5)=1014 .在12864上显示25.369,保留2位小数。显示结果25.37,显示位置自定。voidxianshi(void)(floataf=25.369;unsignedintai;ai=(unsignedint)(af

15、*100+0.5);lcdxianshil6x8(shuziai1000,0z0);lcdxianshil6x8(shuziai100%10A8);ICdXianShil6x8(dian,0,16);lcdxianshilx8(shuziai10%10A24);ICdXianShil6x8(ShUZiai%10,0,32);)5 .有3个十六进制数0x6,0x2,0x3,编程合成0x236,并在12864上显示0x236*0.0625,保留一位小数。分析:0x2360.0625=(21616+316+61)0.0625=5660.0625=35.375voidxianshi2(void)(un

16、signedcharcl=0x6,c2=0x2zc3=03;unsignedintcil;floatcf;Cil=c28c34cl;cf=cil*0.0625;cil=(unsignedint)(cil*10+0.5);ICdXianShiI6x8(ShUZicil/100L2,0);lcdxianshil6x8(shuzicil10%10,2z8);Icdxianshil6x8(dian,2z16);ICdXianShil6x8(ShUZicil%10,2,24);)6 .计算并解释运算的作用。已知da=0x76da&OxOlda&0x80da=0x80da0x01da&OxOl=0x76&

17、0x01=0111011O&OOOOOOO1=00000000=0x00作用:保留da的位0。da&0x80=0x76&0x80=01110110&10000000=00000000=0x00作用:保留da的位7。da=0x80=0x760x80=0111011010000000=1IllOI10=0xf6作用:da的位7置Kda0x01=0x760x01=01IlOl1000000001=01IlOll1=0x77作用:da的位0置U7 .串行接收一个字节的数据,先接收的是位0,简述接收过程。步骤如下:(1)存放接收数据的变量先右移1位。(2)判断待接收的数据为1时,将1存至位7。(3)重复

18、(1)、(2)8次之后,读入一个字节。8 .用DS18B20测量温度。温度范围是-2050。voiddsl8b20sjcl(void)(ucharShilZidi8,ShUZiga08;uintshuzil6;floatmonif;uintmoniint;dsl8b20chushihua();/18B20初始化dsl8b20xie(0xcc);跳过RoM,指令码OXCCdsl8b20xie(044);启动18B20温度转换,指令码0X44dsl8b20chushihua();dsl8b20xie(0xcc);dsl8b20xie(0be);读高速缓存RAM,指令码OXBEshuzidi8=ds

19、l8b20du();读数字量的低8位ShUZigao8=dsl8b20du();读数字量的高8位shuzil6=shuzigao81000所以ADC的位数二10位2 .根据ADC0832的时序图编写函数。ucharadc0832du(uchartongdao)(uchari=0;ucharshujvlzshujv2;ADCCS=O;-P-();-0P-();ADCDI=I;-Pj);_nop,();ADCCLK=I;-P-();_nop_();ADCCLK=O;-Pj);_nop_();ADCCLK=I;-Pj);_nop,();ADCDI=(tongdaol)&0x01;-P-();-0P-

20、();ADCCLK=O;-P-();_nop_0;ADCCLK=I;-0P-();_nop_();ADCDI=tongdao&0x01;-P-();_nop,();ADCCLK=O;-P-();-0P-();ADCCLK=I;-P-();_nop_0;ADCDI=I;-0P-();_nop_();ADCCLK=O;-P-();-op-0;shujvl=O;for(i=0;i8;i+)(shujvl=shujvll;shujvl=shujvlIADCDO;ADCCLK=I;_nop_();_nop_();ADCCLK=O;_nop_();_nop_();)shujv2=0;for(i=0;il;

21、if(ADCDO)shujv2=shujv210x80;ADCCLK=I;_nop_();_nop_();ADCCLK=O;_nop_();_nop_();)ADCCS=I;ADCCLK=O;ADCDO=I;return(shujvl);if(shujvl=shujv2)3 .某10位ADC输入模拟电压范围是05V,试确定模拟量与数字量之间的关系。3D_D1023204.64 .设计单片机测控系统,用于测试某一场所的环境温度。提供的传感器参数为:测温范围-406(C,输出信号05V,测试精度1;试择ADC,及如何实现该环境温度的测试并显示?需要(60+40)/1=100个状态。因为28=256

22、100所以ADC的位数=8位,U=D51;因为测温范围-4060C,输出信号05V,所以t=20U-40;得:t=0.39U-405 .根据图6-12编写函数,实现数据的串行传送。JLMSBT SR图6-12串行传送数据时序图voidchuansong(uchary)(uchari;for(i=0;ii;6 .简述矩形波频率的测试原理。频率是指Is内完成周期性变化的次数。主要解决两个问题:第一:定时1s;用定时/计数器Tl定时50ms,Tl溢出1次是50ms,溢出20次时,为20次X50ms=1000ms=lso第二:在IS的时间内,统计矩形波周期的个数。7 .用DS18B20和湿度传感器监控

23、室内环境质量。8 .通过光敏电阻监测光线的变化,使路灯自动工作。项目七三.综合题1 .简述直流电机的工作原理。直流电机是根据通电导体在磁场中会受力的原理来工作的。直流电机由定子和转子两大部分组成。定子在直流电机运行时静止不动,定子的主要作用是产生磁场。转子在直流电机运行时处于转动状态,其主要作用是产生电磁转距和感应电动势,是直流电机进行能量转换的枢纽,又称为电枢。2 .编程用按键控制直流电机的速度;一个按键增速,另一个按键减速。ftinclude#defineucharunsignedchar#defineuintunsignedintsbitzeng=P13;sbitjian=P14;sbi

24、tPWM=P10;ucharpwmgao=100zpwmdi=100;uchardangwei=O;voidpwmtiaosu(void);voidqudong(void);voiddelayms(uinta);voiddelayus(uinta);voidmain()while(l)qudong();pwmtiaosu();voidpwmtiaosu(void)(if(zeng=O)(delayms(10);if(zeng=O)(dangwei+;if(dangwei=5)dangwei=0;while(!zeng);)if(jian=O)(delayms(10);if(jian=O)(if

25、(dangwei=O)dangwei=5;dangwei-;while(!jian);)switch(dangwei)case0:pwmgao=0;pwmdi=200;break;case1:pwmgao=50;pwmdi=150;break;case2:pwmgao=100;pwmdi=100;break;case3:pwmgao=150;pwmdi=50;break;case4:pwmgao=200;pwmdi=0;break;)voidqudong(void)(uchari;for(i=0;ipwmdi;i+)(PWM=O;delayus;)for(i=0;ipwmgao;i+)PWM=

26、1;delayus(l);)voiddelayms(uinta)voiddelayus(uinta)3 .编程用PWM波控制LED的亮度。#includeftdefineucharunsignedcharftdefineuintunsignedintsbitLED=P20;ucharPWmgao=0,PWmdi=80,Cd;voidqudong(void);voiddelayus(uinta);voidmain()(while(l)(if(pwmgao=80)&(pwmdi=0)cd=O;if(pwmgao=0)&(pwmdi=80)cd=l;if(cd)pwmgao+;pwmdi-;elsepwmgao-;PWmdi+;qudong();)voidqudong(void)(uinti;for(i=0;i300;i+)1.ED=O;delayus(pwmgao);1.ED=1;delayus(pwmdi);

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号