《微机课后作业》由会员分享,可在线阅读,更多相关《微机课后作业(26页珍藏版)》请在金锄头文库上搜索。
1、习题一一、复习题1. 微型计算机控制系统的硬件由哪几部分组成?各部分的作用是什么?2. 微型计算机控制系统的软件有什么作用?请说出各部分软件的作用。4. 操作指导、DDC和SCC系统工作原理如何?它们之间有何区别和联系?9. 未来控制系统发展趋势是什么?12. 什么是物联网?为什么说“物联网给微型计算机控制技术带来新的、更大的应用空间”?13.物联网终端由几部分组成?各部分的作用是什么?习题二1、 复习题1. 采样有几种方法,试说明它们之间的区别。2. 采样周期越小越好吗?为什么?5. 试用CD4051设计一个32路模拟多路开关,要求画出电路图并说明其工作原理。7. 在数据采样系统中,是不是所
2、有的输入通道都需要加采样-保持器,为什么?8. 采样频率的高低对数字控制系统有什么影响?试举工业控制实例加以说明。12. 为什么高于8位的D/A转换器与8位的微型计算机的接口必须采用双缓冲方式?这种双缓冲工作与DAC0832的双缓冲工作在接口上有什么不同?三、练习题28. 设12位D/A转换器DAC1210与8031接口电路连接,如图2.30所示。 (1)说明电路控制原理 (2)设数据存放在DABUFF为首地址的连续两个存储单元中,试编写一完成D/A转换的程序。 (3)写出产生三角波、矩形波、正弦波、阶梯波的程序。(频率为100HZ,语言不限) 8031为8位机,待转换的数字量分高 8 位和低
3、 4 位两步传入。由 P2口产生的高8位和低四位的控制信号的地址信息。138输出对应的地址分别为Y2000101xxB1/B2为高,写高八位数据Y3000111xx B1/B2为低,写低四位数据Y4001001xx数据送出转换void DAOUT(unsigned int DABUFF) *(char xdata *)0x1400)=DABUFF4; *(char xdata *)0x1c00)=(DABUFF4)&0x00ff; *(char xdata *)0x2400)=0; #include unsigned int code SIN_DATA100=0; /EDA 课堂介绍的内容生成
4、正弦表/unsigned int DABUFF;void DAOUT(unsigned int DABUFF) *(char xdata *)0x1400)=DABUFF4; *(char xdata *)0x1c00)=DABUFF4; *(char xdata *)0x2400)=0;/设100点,100Hz则每点10000us/100=100usunsigned char TH0_LOAD=(0x10000-100)/0x100;unsigned char TL0_LOAD=(0x10000-100)%0x100;unsigned char WAVEMODE=0;/设定波形unsigne
5、d char WavePoint=0;unsigned int DAVAL=0;unsigned int WaveStep=4095/50;void T0_IRQ(void)interrupt 1 TH0=TH0_LOAD ; TL0=TL0_LOAD ; switch(WAVEMODE) case 0: DAOUT(DAVAL); WavePoint+; if(WavePoint=100)WavePoint=0; break;case 1: DAVAL=SIN_DATAWavePoint+ if(WavePoint=100)WavePoint=0; DAOUT(DAVAL); break;d
6、efault:break; void main(void) TMOD=0x11; TH0=0; TL0=0; TR0=1; ET0=1; EA=1; while(1) /delay(30000) ;DAOUT(1023); delay(30000) ;DAOUT(0); 33.某A/D转换电路如图2.31所示。 (1)试写出A/D转换器的地址。 (2)该电路采用什么控制方式?画出该种转换的程序框图。 (2)用8051语言编写完成上述A/D转换的程序。PC00011010=0x1a 00PB00011001=0x19 00查询或者延时方式控制,流程略Usinged char char AD_08
7、09Read(void) *(char pdata *)0x1a00)= 0x80;*(char pdata *)0x1a00)= 0;While(*(char pdata *)0x1a00))&0x08!=0x08);/delay_us(128);Return *(char pdata *)0x1900);35.设被测温度变化范围为01200,如果要求误差不超过0.4,应选用分辨率为多少位的A/D转换器(设ADC的分辨率和精度一样)?(1200-0)/(2n-1)=0.4n=?习题三一、 复习题3. 试说明非编码键盘扫描原理及键值计算方法。6. 什么叫重键?计算机如何处理重键?7. 多位LE
8、D显示器显示方法有几种?它们各有什么特点?二、 练习题27.试用8255A的C口设计一个44=16的键阵列,其中09为数字键,AF为功能键,采用查询方式,设计一接口电路,并编写键扫描程序。30.某显示电路如图3.64所示,试回答下列问题。74LS7474LS7474LS7474LS7474LS37774LS37774LS244D7D074LS138A7A0Y1Y2+5V (1)说明图中数码管应选用哪一种类型的数码管? (2)该电路属于哪一种显示方法? (3)图中74LS47的作用是什么? (4)设,的地址分别为60H和63H,要显示的数据分别存放在DATABUF1和DATABUF2两个内存单元
9、中,试设计出完整接口电路并编写一个完成上述显示的子程序。(1)共阳极数码管 (2)静态显示 (3)7段数码管译码与驱动 (4)74LS7474LS7474LS7474LS7474LS37774LS37774LS244D7D074LS138Y1Y2+5VA0A1A2/G2A/G2BG1&11A6,A5A7,A4A2,A3Y1=01100000Y2=01100011void Display(void) *(char pdata *)0x60)= *DATABUF1; /或者*(char pdata *)0x60)= DATABUF1; *(char pdata *)0x63)= *DATABUF2
10、; /或者*(char pdata *)0x63)= DATABUF2;32.采用AT89C2051单片机,同时用廉价的74LS164和74LS138作为扩展芯片,设计一个动态显示电路,如图3.65所示,要求如下。 (1)说明74LS164的作用。 (2)说明74LS138的作用。 (3)编写完成上述功能的程序。74LS16474LS138Y0Y3+5VRXDTXDP1.2P1.3AB(1)74LS164为移位寄存器,驱动数码管的段码。 (2)74LS138为译码器,控制三极管选通一位数码管,即位码 (3) void display(void) char i,temp=0x00; for(i=
11、0;i4;i+) SBUF=dispBufi;TI=0;while(TI);P1=temp;temp+=0x04; void display(long lndata) char i,temp=0x00; for(i=0;i4;i+) SBUF=DisTablndata%10;TI=0;while(TI);P1=temp;temp+=0x04Lndata/=10; 习题四一、 复习题2.说明硬件报警与软件报警的实现方法,并比较其优缺点。4. 试说明固态继电器与继电器控制有什么区别?5. 说明PWM调速系统的工作原理。14. 某电机控制系统如图4.54所示。(1) 说明图中光电隔离器4N25的作用
12、。(2) 说明图中电机控制原理。(3) 画出电机控制程序流程图。(4) 根据流程图编写出电机控制程序。答:(1) 隔离电机侧干扰(2) 8255的PA口作为占空比设定,PC7作为启动停止开关,PC0控制电机旋转(3) 略(4)uchar GetDuty(void) return _8255PA;bit RUN(void)if(_8255PC&0x80=0x80)return 1;else return 0;void MotorCtr(bit OnOff)if(OnOff)_8255PC=0x01;else _8255PC=0x00;#define DELTIME 100void main(vo
13、id) uchar Duty,Counter=0;while(1) if(RUN() Duty=GetDuty(); if(Counter=Duty) MotorCtr (1); else MotorCtr (0); Counter+; delay_us(DELTIME);else Motor(0);15. 画出四相、六相步进电机正、反通电顺序图。16. 一步进电机控制系统接口电路如图4.55所示(设8255芯片地址为60006003H)(1) 完成图中8255A与8031的接口设计(2) 试编写程序,使其能实现下列功能。 当S1按下时,步进电机正向单三拍旋转2圈。(步距角3度) 当S2按下时,步进电机反向双三拍旋转1圈. 当S3按下时,步进电机正向三相六拍旋转20步。 其余情况步进电机不转。#define uchar unsigned char#define uint unsigned int#define KEY XBYTE0x6002#define STE