单片机习题回答问题.docx

上传人:小飞机 文档编号:3346534 上传时间:2023-03-12 格式:DOCX 页数:5 大小:38.02KB
返回 下载 相关 举报
单片机习题回答问题.docx_第1页
第1页 / 共5页
单片机习题回答问题.docx_第2页
第2页 / 共5页
单片机习题回答问题.docx_第3页
第3页 / 共5页
单片机习题回答问题.docx_第4页
第4页 / 共5页
单片机习题回答问题.docx_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《单片机习题回答问题.docx》由会员分享,可在线阅读,更多相关《单片机习题回答问题.docx(5页珍藏版)》请在三一办公上搜索。

1、单片机习题回答问题1简述C51语言和汇编语言的比较 使用C51语言进行嵌入式系统的开发,有着汇编语言所不可比拟的优势: 编程调试灵活方便; 生成的代码编译效率高; 模块化开发; 可移植性好; 便于项目的维护; 2哪些变量类型是51单片机直接支持的? 答:C51编译器支持的数据类型有:位型、无符号字符型、有符号字符型、无符号整型、有符号整型、无符号长整型、有符号长整型、浮点型和指针型等。 3C51 的data、bdata、idata 有什么区别? 答:data、bdata、idata是表明数据的存储类型, data是指片内RAM的低128字节,可在一个周期内直接寻址; bdata是指片内RAM的

2、位寻址区,16字节; idata是指片内RAM的256字节,必须采用间接寻址。 4C51中的中断函数和一般的函数有什么不同? 答:C51编译器允许用C51创建中断服务函数,中断函数是由中断系统自动调用的。 中断函数的定义格式为: 函数类型 函数名 interrupt n using n 其中: interrupt和using为关键字; interrupt后面的n 为中断源的编号,即中断号; using后面的n所选择的寄存器组,取值范围为03。 定义中断函数时,using是一个选项,可以省略不用。如果不用using选项,则由编译器选择一个寄存器组作为绝对寄存器组。 8051的中断过程通过使用in

3、terrupt关键字和中断号来实现,中断号告诉编译器中断函数的入口地址。 5break和continue语句的区别是什么? 答:break语句用于从循环代码中退出,然后执行循环语句之后的语句,不再进入循环。 Continue语句用于退出当前循环,不再执行本轮循环,程序代码从下一轮循环开始执行,直到判断条件不满足为止。 和break的区别是该语句不是退出整个循环。 6在8051系统中,已知振荡频率是12MHz,用定时器/计数器T0实现从P1.1产生周期是2s的方波,试编程。 #include sbit P1_1=P11; unsigned char i; /定义位变量 /定时次数 void ti

4、mer0over(void); /函数声明 void main( ) /主函数 i=0; TMOD=0x01; /定时器T0定时50ms,方式1 TH0=(65536-50000)/256; TL0=(65536-50000)%256; TR0=1; for(;) if(TF0) timer0over( ); /开T0 void timer0over(void) TH0=(65536-50000)/256; TL0=(65536-50000)%256; TF0=0; i+; if(i=20) i=0; P1_1=!P1_1; /20次到了吗? 7在8051系统中,已知振荡频率是12MHz,用定

5、时器/计数器T1实现从P1.1产生高电平宽度是10ms,低电平宽度是20ms的矩形波,试编程。 #include unsigned char i; sbit P1_1=P11; void main( ) i=0; TMOD=0x10; /T1定时方式1,定时时间10ms /主函数 TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET1=1; TR1=1; while(1); void timer1_int(void) interrupt 3 TH0=(65536-10000)/256; TL0=(65536-10000)%256; i+;

6、 if(i=1) P1_1=0; else if(i=3) 8外部RAM以DATA1开始的数据区中有100个数据,现在要求每隔150ms向内部RAM以DATA2开始的数据区传送10个数据,通过10次传送把数据全部传送完,以定时器1作为定时,编写有关程序。单片机的时钟频率是6MHz。 #include unsigned char i,j,k; unsigned char xdata data1100; unsigned char data data2100; void main void timer1_int(void) interrupt 3 TH1=(65536-25000)/256; TL

7、1=(65536-25000)%256; i+; if(i=3) /150ms时间到,传送一个数据 i=0; j=0; TMOD=0x10; TH1=(65536-25000)/256; TL1=(65536-25000)%256; EA=1; ET1=1; TR1=1; while(j10); EA=0; while(1); i=0; P1_1=1; 9用单片机和内部定时器来产生矩形波,要求频率为100Hz,占空比为2:1,设单片机的时钟频率为12MHz,写出有关程序。 #include unsigned char i; sbit P1_1=P11; void main void timer1_int(void) interrupt 3 TH0=(65536-10000)/256; TL0=(65536-10000)%256; i+; if(i=2) P1_1=0; else if(i=3) i=0; TMOD=0x10; TH0=(65536-10000)/256; TL0=(65536-10000)%256; EA=1; ET1=1; TR1=1; while(1); j+; i=0; for(k=0;k+;k10) data2j*10+k=data1j*10+k; i=0; P1_1=1;

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号