欢迎来到天天文库
浏览记录
ID:50337488
大小:44.00 KB
页数:5页
时间:2020-03-08
《单片机原理及应用 C51版 教学课件 作者 刘瑞新4.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章1.C51扩展了哪些数据类型?sbitsfrsfr16bit2.简述C51存储器类型关键字与8051存储空间的对应关系。程序存储器(code)内部数据存储器:data内部RAM直接寻址128B(0x00~0x7F)idata内部RAM间接寻址256B(0x00~0xFF)bdata内部RAM16B(0x20~0x2F)的128位进行位寻址外部数据存储器:xdata外部存储器64KB的任何单元pdata访问外部存储器(一页)低256B3.在定义inta=1,b=1后,分别指出表达式b=a、b=a++和b=++a执行后变量a和b的值。b=a;b=a++;a=2b=1b=++a
2、;a=2b=24.用C51编程实现当P1.0输入为高电平时,P1.2输出控制信号灯点亮。#includesbitkey1=P1^0;sbitled=P1^2;voidmain(){bita;for(;;){key1=1;a=key1;if(a)led=1;elseled=0;}while(1);}5.使用选择结构编写程序,当输入的数字为“1”、“2”、“3”、“4”时,输出显示“A”、69“B”、“C”、“D”,当输入数字“0”时,程序结束。#includevoidmain(){charch;SCON=0x52;/*对串口实现初始化,以便调试
3、时调用scanf()和printf()*/TMOD=0x20;/*在keilc串行窗口#0中输入或显示数据*/TH1=0Xf3;/*若不使用scanf()和printf()函数,则程序中不需要蓝色语句*/TR1=1;printf("请输入:");while(1){scanf("%c",&ch);switch(ch){case‘1’:printf("A");break;case‘2’:printf("B");break;case‘3’:printf("C");break;case‘4’:printf("D");break;case‘0’:break;default:printf(
4、"输入错误");}if(ch==’0’)break;}while();}6.编一个函数sum,求数组a中各元素的数据和。要求在main函数中输入数组元素的数据,通过调用sum函数并输出返回的数据和。#includeintsum(intb[],intn){inti,s=0;for(i=0;i5、x20;/*在keilc串行窗口#0中可以输入或显示数据*/TH1=0Xf3;/*若不使用scanf()和printf()函数,则程序中不需要蓝色语句*/TR1=1;total=sum(a,10);printf("%d",total);while(1);}7.编一个函数len,求一个字符串s的长度。要求在main函数中输入字符串,通过调用len函数并输出返回的字符串长度。#include“string.h”#includeintlen(char*s){intn;n=strlen(s);returnn;}voidmain(){char*ch=”china”;in6、ta;a=len(ch);while(1);}8.C51中断函数如何定义,在使用时应注意哪些问题?C51中,中断服务程序是以中断函数的形式出现的。单片机中断源以对应中断号的形式出现在C51中断函数定义中中断函数定义语法格式如下:void函数名(void)interruptn[usingn]{函数体}关键字interrupt定义该函数为中断服务函数,n为中断号。使用时应注意:1)在中断函数中不能使用参数。692)在中断函数中不能存在返回值。3)中断函数的执行是由中断源的中断请求后系统调用的。4)中断函数的中断号在不同的单片机中其数量也不相同,具体情况察看具体的处理器手册。9.用C7、51编写流水灯控制程序,要求由8051的P1口控制8个发光二极管(采用共阳极连接)依次轮流点亮,循环不止。#include#include#defineucharunsignedchar#defineledP1voiddelay(ucharm);//声明延时函数voidmain(){uchars_data=0xFE;while(1){led=~s_data;s_data=_crol_(s_data,1);delay(200);}}voiddelay(u
5、x20;/*在keilc串行窗口#0中可以输入或显示数据*/TH1=0Xf3;/*若不使用scanf()和printf()函数,则程序中不需要蓝色语句*/TR1=1;total=sum(a,10);printf("%d",total);while(1);}7.编一个函数len,求一个字符串s的长度。要求在main函数中输入字符串,通过调用len函数并输出返回的字符串长度。#include“string.h”#includeintlen(char*s){intn;n=strlen(s);returnn;}voidmain(){char*ch=”china”;in
6、ta;a=len(ch);while(1);}8.C51中断函数如何定义,在使用时应注意哪些问题?C51中,中断服务程序是以中断函数的形式出现的。单片机中断源以对应中断号的形式出现在C51中断函数定义中中断函数定义语法格式如下:void函数名(void)interruptn[usingn]{函数体}关键字interrupt定义该函数为中断服务函数,n为中断号。使用时应注意:1)在中断函数中不能使用参数。692)在中断函数中不能存在返回值。3)中断函数的执行是由中断源的中断请求后系统调用的。4)中断函数的中断号在不同的单片机中其数量也不相同,具体情况察看具体的处理器手册。9.用C
7、51编写流水灯控制程序,要求由8051的P1口控制8个发光二极管(采用共阳极连接)依次轮流点亮,循环不止。#include#include#defineucharunsignedchar#defineledP1voiddelay(ucharm);//声明延时函数voidmain(){uchars_data=0xFE;while(1){led=~s_data;s_data=_crol_(s_data,1);delay(200);}}voiddelay(u
此文档下载收益归作者所有