欢迎来到天天文库
浏览记录
ID:38189937
大小:37.00 KB
页数:4页
时间:2019-05-25
《实验一Keil软件的使用和定时器的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、实验一Keil软件的使用和定时器的应用一、实验原理1、熟悉Keil软件2、熟悉C语言编程方法和数据类型和数据结构3、熟悉单片机的I/O口操作和定时器操作二、实验内容:1、熟悉Keil软件,能够查看寄存器,变量,内存单元,外部IO口等。2、编写一个求最小值得函数、最大值函数以及正序、逆序排序函数共四个函数,实现在含有10个整数的元素的数组中找出最小值和最大值,进行正序、逆序排序。要求能查看数组单元的数据,用Printf函数在Keil的串口中显示排过序的数组元素以及最小值和最大值,并将最小值和最大值放在指定的内存单元中,通过Keil软件能够
2、在地址中查找到该最小值和最大值。(参考课本136页和138页的例子)3、将实验2的四个函数分别放在四个.C文件中,利用C语言进行模块化设计。4、编写P192的例5的程序。通过KEIL软件中查看I/O端口变化。5、编写时钟程序,在KEIL中的内存查看单元中能看到时、分、秒的变化,时、分、秒采用变量和结构体两种方式实现。参考代码1:#include#include#include#defineucharunsignedchar#defineuintunsignedintintmin
3、(intvalues[10])//reentrant{intminimum,i;minimum=values[0];for(i=1;i<10;i++)if(values[i]4、ude#include#include#include#defineucharunsignedchar#defineuintunsignedintmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}min(intx,inty){intz;if(x5、nt(*fun)()){intresult;result=fun();return(result);}main(){inta=6,b=3;intresult1,result2,result3;result1=process(a,b,max);result2=process(a,b,min);result3=process(a,b,add);while(1);}参考代码3:#include#include#include#include#defineucharu6、nsignedchar#defineuintunsignedint//#ifdefMONITOR51/*DebuggingwithMonitor-51needs*///charcodereserve[3]_at_0x23;/*spaceforserialinterruptif*///#endif/*StopExectionwithSerialIntr.*/structrecord{intnumber;charname[20];floatscore[3];}note={3361,"vgk",11.25,15.15,20.05};voids7、how(structrecord*p){inti;printf("note.number=%d",p->number);printf("note.name=%s",p->name);for(i=0;i<3;i++)printf("note.score[%d]=%f",i,p->score[i]);}main(){/*------------------------------------------------Setuptheserialportfor1200baudat16MHz.---------------------8、---------------------------*///#ifndefMONITOR51SCON=0x50;/*SCON:mode1,8-bitUART,enablercvr*/TMOD9、=0x20;
4、ude#include#include#include#defineucharunsignedchar#defineuintunsignedintmax(intx,inty){intz;if(x>y)z=x;elsez=y;return(z);}min(intx,inty){intz;if(x5、nt(*fun)()){intresult;result=fun();return(result);}main(){inta=6,b=3;intresult1,result2,result3;result1=process(a,b,max);result2=process(a,b,min);result3=process(a,b,add);while(1);}参考代码3:#include#include#include#include#defineucharu6、nsignedchar#defineuintunsignedint//#ifdefMONITOR51/*DebuggingwithMonitor-51needs*///charcodereserve[3]_at_0x23;/*spaceforserialinterruptif*///#endif/*StopExectionwithSerialIntr.*/structrecord{intnumber;charname[20];floatscore[3];}note={3361,"vgk",11.25,15.15,20.05};voids7、how(structrecord*p){inti;printf("note.number=%d",p->number);printf("note.name=%s",p->name);for(i=0;i<3;i++)printf("note.score[%d]=%f",i,p->score[i]);}main(){/*------------------------------------------------Setuptheserialportfor1200baudat16MHz.---------------------8、---------------------------*///#ifndefMONITOR51SCON=0x50;/*SCON:mode1,8-bitUART,enablercvr*/TMOD9、=0x20;
5、nt(*fun)()){intresult;result=fun();return(result);}main(){inta=6,b=3;intresult1,result2,result3;result1=process(a,b,max);result2=process(a,b,min);result3=process(a,b,add);while(1);}参考代码3:#include#include#include#include#defineucharu
6、nsignedchar#defineuintunsignedint//#ifdefMONITOR51/*DebuggingwithMonitor-51needs*///charcodereserve[3]_at_0x23;/*spaceforserialinterruptif*///#endif/*StopExectionwithSerialIntr.*/structrecord{intnumber;charname[20];floatscore[3];}note={3361,"vgk",11.25,15.15,20.05};voids
7、how(structrecord*p){inti;printf("note.number=%d",p->number);printf("note.name=%s",p->name);for(i=0;i<3;i++)printf("note.score[%d]=%f",i,p->score[i]);}main(){/*------------------------------------------------Setuptheserialportfor1200baudat16MHz.---------------------
8、---------------------------*///#ifndefMONITOR51SCON=0x50;/*SCON:mode1,8-bitUART,enablercvr*/TMOD
9、=0x20;
此文档下载收益归作者所有