单片机课后答案9(参考模板).doc

  1. 1、本文档共10页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
PAGE / NUMPAGES 习题9 1. 某系统片外RAM的片选电路如图9-38所示:RAM共7路,有2K×8位和1K×8位两种芯片,其片选信号都是低电平有效。请为各路RAM芯片注明它的容量和地址范围。 图9-38 第1题图 解:第一路芯片的地址为8000H-87FFH; 第二路芯片的地址为8800H-8FFFH; 第三路芯片的地址为9000H-97FFH; 第四路芯片的地址为A000H-A3FFH; 第五路芯片的地址为A400H-A7FFH; 第六路芯片的地址为A800H-ABFFH; 第七路芯片的地址为AC00H-AFFFH。 2. 对AT89C51单片机外扩4片静态RAM62128芯片,请画出硬件电路图,写出每片芯片的地址。 解: 62128(1):0000H-3FFFH,62128(2):4000H-7FFFH,62128(3):8000H-BFFFH, 62128(4):C000H-FFFFH 3. 8255A有几种工作方式?如何进行选择? 解:8255A共有三种工作方式,用方式控制字来选择。 4. 现有一片AT89C51单片机,扩展了一片8255A,若把8255A的B口用作输入,每一位接一个开关,A口用作输出,每一位接一个发光二极管,请用proteus软件画出电路原理图,并编写出B口某一位开关接低电平时,A口相应位发光二极管被点亮的程序。 解:电路如下图: 程序如下: #include reg51.h #include absacc.h #include intrins.h #define uint unsigned int #define uchar unsigned char //PA,PB,PC及命令端口地址定义 #define PA XBYTE[0x0000] #define PB XBYTE[0x0001] #define PC XBYTE[0x0002] #define COM XBYTE[0x0003] void main() { uchar k; COM=0x82;//控制字 while(1) { k = PB; PA = k; } } 5. 按照图9-18所示8255与AT89C52的连接图,用8255C口的PC3引脚向外输出连续的正方波信号,频率为500Hz。试编程,并用proteus仿真验证。 解:利用定时器0,每1ms中断一次,在中断服务程序中改变PC3的状态。 程序如下: #include reg52.h #include Absacc.h #define PA8255 XBYTE[0xe000] /* 定义8255A口地址 */ #define PB8255 XBYTE[0xe001] /* 定义8255B口地址 */ #define PC8255 XBYTE[0xe002] /* 定义8255C口地址 */ #define COM8255 XBYTE[0xe003] /* 定义8255控制寄存器地址 */ void timer0init(); bit k; unsigned char aa; void init8255(void) ; void main (void) { timer0init(); init8255(); COM8255=0x07; /*PC3置1*/ k=0; while (1); } void init8255(void) { COM8255=0x80;/*工作方式选择字送入8255控制寄存器,设置A、B、C口为基本I/O输出方式 */ } void timer0init() { TMOD=0x01; //设置T0为定时器模式,工作在方式1 TH0=(65536-1000)/256; TL0=(65536-1000)%256; EA=1; //开总中断 ET0=1; //允许T0中断 TR0=1; // 启动T0 } void timer0() interrupt 1//定时器0每1ms中断一次 { TH0=(65536-1000)/256; TL0=(65536-1000)%256; if(k==0) { COM8255=0x06;/*PC3清0*/ k=~k; } else { COM8255=0x07;/*PC3置1*/ k=~k; } } 6. 为什么要进行按键消抖?按键

文档评论(0)

789 + 关注
官方认证
内容提供者

该用户很懒,什么也没介绍

认证主体阳春市海霄网络科技有限公司
IP属地广东
统一社会信用代码/组织机构代码
91441781MA52HUKW1K

1亿VIP精品文档

相关文档