微机控制课后习题及答案(2).docx

上传人:太** 文档编号:63359532 上传时间:2022-11-24 格式:DOCX 页数:14 大小:87.18KB
返回 下载 相关 举报
微机控制课后习题及答案(2).docx_第1页
第1页 / 共14页
微机控制课后习题及答案(2).docx_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《微机控制课后习题及答案(2).docx》由会员分享,可在线阅读,更多相关《微机控制课后习题及答案(2).docx(14页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、微机控制课后习题及答案(2)工程一三.综合题1 .画出微机控制系统的组成框图。受控对象输入通道及接口输出通道及接口计算机外存人机交互设备及接口2 .简述输入/输出通道及接口的作用。输入/输出通道及接口分为模拟量输入/输出通道和数字量输入/输出通道两种。 输入通道及接口把受控对象经传感器转换后的电信号,转换为数字量送入控制器。 输出通道及接口把控制器处理结果再转换成执行机构所需信号,去控制受控对象。3 .简述人机交互设备的作用。人机交互设备实现了用户和计算机之间的信息交换。4 .画出声光报警电路的框图。单片机驱动LED扬声器5 .画出自动门的框图。传感器单片机驱动执行机构工程二三.综合题1 .简

2、述三基色原理。三基色原理是指自然界中的绝大局部彩色,都可以由三种基色(红,绿,蓝)按一 定比例混合得到;反之,任意一种彩色均可被分解为三种基色。作为基色的三种彩色, 要相互独立,即其中任何一种基色都不能由另外两种基色混合来产生。2 .利用2个按键控制七色发光二极管。一个按键用于切换颜色,另一个按键用于熄 灭手电。#include #define uchar unsigned chardsl8b20xie(0xbe); 读高速缓存 RAM,指令码 OXBE shuzidi8=dsl8b20du(); 读数字量的低 8 位 shuzigao8=dsl8b20dli(); 读数字量的高 8 位 sh

3、uzil6=shuzigao881shuzidi8; 合成 16 位数字量 if(shuzil 6&0x8000=0) (monif=shuzil6*0.0625;/ 16位数字量转换为实际温度值moniint=(uint)(monif* 10+0.5);浮点型实际温度变为整型,保存1位小数lcdxianshil6x8(shuzimoniint/100/4,86); / 显示整型实际温度的百位 Icdxianshil6x8(shuzimoniint/10%10,4,94); / 显示整型实际温度的十位 Icdxianshil6x8(xiaoshudian,4,102);/ 显示小数点Icdxi

4、anshil6x8(shuzimoniint%10/4,110); / 显示整型实际温度的个位 ) else (monif=rshuzil6+l)*0.0625;/ 16位数字量转换为实际温度值moniint=(uint)(monif*10+0.5);浮点型实际温度变为整型,保存1位小数Icdxianshil6x8(fuhao,4/86); / 显小负号Icdxianshil6x8(shuzimoniint/100,4,86); / 显示整型实际温度的百位 Icdxianshil6x8(shuzimoniint/10%10,4,94); / 显示整型实际温度的十位 Icdxianshil6x8

5、(xiaoshudian,4,102);/ 显示小数点Icdxianshil6x8(shuzimoniint%10,4,110); / 显示整型实际温度的个位)10.用DS18B20实现多点测温。提示:每个测温点用一块DS18B20,每块DS18B20接不同的I/O 口。工程六三.综合题1 .将。1000C测温范围,按照1的分辨温度进行划分,确定ADC的位数。需要(1000-0) /1 = 1000 个状态。因为 2i=10241000所以ADC的位数=10位2 .根据ADC0832的时序图编写函数。uchar adc0832du(uchar tongdao)uchar i=0;uchar s

6、hujvl, shujv2;ADCCS=0;ADCDI=1;ADCCLK=1;ADCCLK=0;ADCCLK=1;ADCCS=0;ADCDI=1;ADCCLK=1;ADCCLK=0;ADCCLK=1;_nop_();_nop_();_nopj);_nop_(); _nop_();_nop_();-nop_();_nop_();_nop_();nopj);ADCDI=(tongdaol)&0x01;ADCCLK=0;ADCCLK=1;ADCDI=tongdao&0x01;ADCCLK=0;ADCCLK=1;ADCDI=1;ADCCLK=0; shujvl=0;_nop_(); _nop_();

7、_nopj); _nopj); _nop_(); _nopj); _nopj); _nopj);_nop_(); _nop_(); _nopj); _nopj); _nop_(); _nopj); _nop_(); _nopj);for (i=0;i8;i+)shujvl=shujvll;shujvl= shujvl | ADCDO;ADCCLK=1;ADCCLK=0;_nopj);_nop_();_nopj);_nop_();shujv2=0;for(i=0;i100所以ADC的位数=8位,U=D/51;因为测温范围-4060,输出信号。5V,所以t=20U-40;得:t=0.39U-405

8、 .根据图6-12编写函数,实现数据的串行传送。cs JL-jnjjmjmjui01234567MSBI SR图6-12 串行传送数据时序图 void chuansong(uchar y) (uchar i;for(i=0;i8;i+) (CLK=0;if(y&OxOl)D=l;elseD=0;CLK=1; y=yi; ) )6 .简述矩形波频率的测试原理。频率是指1S内完成周期性变化的次数。主要解决两个问题:第一:定时1s;用定时/计数器T1定时50ms, T1溢出1次是50ms,溢出20次时,为20次X50ms=1000ms=lso第二:在1s的时间内,统计矩形波周期的个数。7 .用DS1

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

10、g= P1A3;sbit jian= P1A4;sbit PWM = PlA0;uchar pwmgao=100,pwmdi=100;uchar dangwei=0;void pwmtiaosu(void);void qudong(void);void delayms(uint a);void delayus(uint a);void main()(while(l)(qudong();pwmtiaosu();voidpwmtiaosu(void)if(zeng=O)(delayms(lO);if(zeng=O) (dangwei+;if(dangwei=5) dangwei=O; while(

11、!zeng);)if(jian=O)(delayms(lO);if(jian=O) (if(dangwei=O) dangwei=5;dangwei-; while(ijian);)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;)void qudong(void)(uchar i;for

12、(i=0;ipwmdi;i+)(PWM=0;delayus(l);for(i=0;ipwmgao;i+)(PWM=1;delayus(l);)void delayms(uint a)void delayus(uint a)3.编程用PWM波控制LED的亮度。#include #define uchar unsigned char#define uint unsigned intsbit LED = P2A0;uchar pwmgao=0,pwmdi=80,cd;void qudong(void);void delayus(uint a);void main()(while(l)(if(pwmg

13、ao=80)&(pwmdi=0) cd=0;if(pwmgao=0)&(pwmdi=80) cd=l; if(cd)pwmgao+;pwmdi-;elsepwmgao-;pwmdi+;qudong();void qudong(void)(uint i;for(i=0;i300;i+)(LED=O; delayus(pwmgao);LED=1; delayus(pwmdi);#define uint unsigned intsbit RED=P2A0;sbit GRE=P2A1;sbit BLU=P2A2;sbit kaishi=PlAO;sbit qiehuan=PlAl;bit biaozh

14、i=0;uchar cishu=O;void delay(uint a);main()(while(l)(if(kaishi=O)(delay(l);if(kaishi=O) (biaozhi=!biaozhi; while(!kaishi);)lf(biaozhi=0) RED=O;GRE=O;BLU=O; else (if(qiehuan=O) ( delay(l); if(qiehuan=O) ( cishu+; if(cishu=9) cishu=l; switch(cishu) (RED=O;GRE=O;BLU=O;break;case 1: RED=O;GRE=O;BLU=l;br

15、eak;RED=O;GRE=l;BLU=O;break;case 2: RED=O;GRE=l;BLU=l;break;RED=l;GRE=O;BLU=O;break;case 3: RED=l;GRE=O;BLU=l;break;case 4: RED=l;GRE=l;BLU=O;break; case 8: RED=l;GRE=l;BLU=l;break; while(!qiehuan);void delay(uint a)(uint ij;for(i=0;ia;i+) for(j=0;j1827;j+);)3 .利用8个按键控制七色发光二极管,每一个按键控制一种状态。要求画出框图、 硬件

16、电路图,并编写源程序。硬件电路图见教材图2-3, P1 口接8个按键。/include #define uchar unsigned char#define uint unsigned intsbit RED=P2A0;sbit GRE=P2A1;sbit BLU=P2A2;bit biaozhi=0;void delay(uint a);main()(while(l)(if(Pl!=OXFF) (delay(l);if(Pl!=OXFF) (switch(Pl) (case OXFE: RED=O;GRE=O;BLU=O;break;case OXFD: RED=O;GRE=O;BLU=l;

17、break;case OXFB: RED=O;GRE=l;BLU=O;break;case 0XF7: RED=O;GRE=l;BLU=l;break;case OXEF: RED=l;GRE=O;BLU=O;break;case OXDF: RED=l;GRE=O;BLU=l;break;case OXBF: RED=l;GRE=l;BLU=O;break;case 0X7F: RED=l;GRE=l;BLU=l;break;while(Pl!=OXFF);void delay(uintuint ij;for(i=0;ia;i+) for(j=0;j1827;j+);4 .用七色发光二极管与

18、蜂鸣器设计声光报警电路。工程三三.综合题1 .简述锁存功能。锁存功能是指将数据保存在锁存器的输出端,不会丧失。2 .简述74HC573数据锁存过程。先传送数据,后锁存数据。3 .简述行扫描原理。行扫描是指每次只能选中一行,所有的行轮流点亮。4,用2线-4线译码器(使能端E1),构成3线-8线译码器。B Y1Y2El Y3A Y0B Y1Y2El Y35.简述74LS595串入-并出一个字节的过程。第1步,串行输入一个字节至移位寄存器。第2步,将数据传送至8位存储器。第3步,翻开三态门。6 .用74LS595构成24位移位寄存器,写出步骤并画图。7 .编写函数在32X64点阵上显示32X32的汉

19、字。void hang32x32(uchar tabl,uchar tab2)(char i,j;for(i=0;i=0;j-) yzimo(tabli*4+j);for(j=3;j=0;j-) yzimo(tab2i*4+j);RCK=1;xsaomiao(i);_nopj); )8 .编写函数在32X64点阵上显示24X32的汉字。void hang24x32(uchar tabl,uchar tab2)(char ij;for(i=0;i=0;j-) yzimo(tabli*4+j);for(j=3;j=0;j-) yzimo(tab2i*4+j);RCK=1;xsaomiao(i);_

20、nop_();) )9 .编程在32X64点阵上显示多屏信息。main()(uchar i;while(l)for(i=0;i220;i+) hang24x32(ji,wei);for(i=0;i220;i+) hang24x32(qi,tian);10 .设id个动画,用32X64点阵显示。工程四三.综合题11 简述无字库12864的屏幕管理机制。12864显示屏的点阵大小为128列X 64行。以中间为间隔一分为二,为左屏和右屏;每半屏均分为8个数据页;每页的大小为 8行、64列。12 写出无字库12864显示信息所需的函数声明。void lcdkaixianshi(void);void l

21、cdguanxianshi(void);void lcdshezhiye(uchar ye);void lcdshezhilie(uchar lie);void lcdxiezimo(uchar zijie);void lcdshezhiyelie(uchar ye,uchar lie);void lcdqingping(void);void lcdchushihua(void);void Icdxianshil6xl6(uchar tab,uchar qiye,uchar qilie);13 写出Icdxianshi 16x 16()0 Icdxianshil6x8()的函数定义及函数声明,

22、并写出显示“镇 北路6号”的函数调用。void Icdxianshil6xl6(uchar tab,uchar qiye,uchar qilie);void Icdxianshil6xl6(uchar tab,uchar qiyezuchar qilie) ( uchar ij;for(i=0;i2;i+) (for(j=0;j16;j+) ( lcdshezhiyelie(i+ye, j+lie); lcdxiezimo(tabi*16+j);) ) void Icdxianshil6x8(uchar tab,uchar qiye,uchar qilie); void Icdxianshil

23、6x8(uchar tab,uchar qiye,uchar qilie) ( uchar i,j;for(i=0;i2;i+)for(j=0;j8;j+)Icdshezhiyelie(i+ye, j+lie); lcdxiezimo(tabi*8+j); ) ) lcdxianshil6xl6(zhen,2,0);Icdxianshil6xl6(bei,2,16);Icdxianshil6xl6(lu,2,32);Icdxianshil6x8(liu,2,48);Icdxianshil6xl6(hao,2,56);编写函数显示64X64的图片。void Icdxianshi64x64(uch

24、ar tab,uchar qiye,uchar qilie) ( uchar i,j;for(i=0;i8;i+) (for(j=0;j64;j+) ( lcdshezhiyelie(i+ye, j+lie); lcdxiezimo(tabi*64+j);) )14 声明一个数组存放表4-10中的数据,并赋初值;然后取出张同学的政治成绩, 取出李同学的所有成绩。表4-10随堂练习uchar a23=c数政张859070李85686585,90,70,85,68,65,);张同学的政治成绩:a02 取出李同学的所有成绩:al15 设计一个多种信息的版面,显示在12864上。main()(Icdx

25、ianshi64xl28(tu);lcdxianshil6xl6(ge,6,0);Icdxianshil6xl6(zi,6,112);工程五三.综合题1 .计算+16、-16的补码。+16 补码=00010000=0x20-16 补码=10010000+l=11101111+l=1111000=0xf02 .如补码为0xf6,求原码。因为,补码0xf6=11110110的符号位(位7)为1,所以是一个负数的补码。所以,原码十补码(除符号位)+1 =0xf6+l=11110110+1=10001001+1=10001010 =-103 .DS18B20输出数字量为0x00a2,计算实际温度。保存

26、1位小数,4舍5入。 因为数字量0x00a2的符号位为0,所以实际温度0。实际温度 =0x00a2 X 0.0625=(10X16+2X1) X 0.0625 = 162X0.0625 =10.125(int)(10.125*10+0.5)=1014 .在12864上显示25.369,保存2位小数。显示结果25.37,显示位置自定。void xianshi(void) (float af=25.369;unsigned int ai;ai=(unsigned int)(af*100+0.5);lcdxianshil6x8(shuziai/1000,0,0);lcdxianshil6x8(shu

27、ziai/100%10,0,8);lcdxianshil6x8(dianM16);lcdxianshil6x8(shuziai/10%10,0,24);lcdxianshil6x8(shuziai%10,0,32);)5,有3个十六进制数0x6,0x2,0x3,编程合成0x236,并在12864上显示0x236*0.0625, 保存一位小数。分析:0x236X0.0625二(2X 16X16+3X16+6X1) X0.0625 二566X0.0625=35.375void xianshi2(void) (unsigned char cl=0x6,c2=0x2,c3=0x3;unsigned i

28、nt cil;float cf;cil= c281 c341 cl;cf=cil*0.0625;cil=(unsigned int)(cil*10+0.5);lcdxianshil6x8(shuzicil/100,2,0);lcdxianshil6x8(shuzicil/10%10z2z8);Icdxianshil6x8(dian,2,16);lcdxianshil6x8(shuzicil%10,2,24);)6.计算并解释运算的作用。da=0x76 da&0x01 da&0x80da|=0x80da|0x01da&OxO 1=0x76&0x01=01 110110&00000001=0000

29、0000=0x00作用:保存da的位0。da&0x80=0x76&0x80=01110110&10000000=00000000=0x00 作用:保存da的位7。da|=0x80=0x76|0x80=01110110| 10000000=11110110=0xf6 作用:da的位7置1。da|0x0 1=0x76|0x01 =01110110|()()()()0()()l=01110111=0x77 作用:da的位。置lo6.串行接收一个字节的数据,先接收的是位0,简述接收过程。 步骤如下:(1)存放接收数据的变量先右移1位。(2)判断待接收的数据为1时,将1存至位7。(3)重复(1)、(2) 8次之后,读入一个字节。8.用DS18B20测量温度。温度范围是-2050。 void dsl8b20sjcl(void) (uchar shuzidi8,shuzigao8;uint shuzil6;floatmonif;uintmoniint;dsl8b20chushihua(); /18B20 初始化dsl8b20xie(0xcc); 跳过 ROM,指令码 OXCCdsl8b20xie(0x44); 启动 18B20 温度转换,指令码 0X44dsl8b20chushihua();dsl8b20xie(0xcc);

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁