欢迎来到天天文库
浏览记录
ID:41033429
大小:356.50 KB
页数:10页
时间:2019-08-14
《实验二 C51编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、天津理工大学计算机与通信工程学院实验报告2014至2015学年第一学期课程名称单片机原理及接口技术课程代码0664886学号20126230学生姓名俞湛年级12级专业物联网工程教学班号02实验地点7-215实验时间2014年11月5日第3节至第4节实验名称C51编程主讲教师王晓晔辅导教师王晓晔实验二C51编程一、实验目的1.熟悉和掌握Keil进行C51语言编程和调试的常用指令;2.了解和掌握绝对地址访问方法。3.了解和掌握C51的程序结构二、实验内容1、C51实现绝对地址访问实验(1)采用预定义宏#i
2、nclude#includevoidmain(void){unsignedchara;unsignedintb;DBYTE[0x16]=a=3;b=XWORD[0x2000]=8;while(1);}查看程序执行前后相应内存的内容。地址0x16程序执行前0x00H程序执行后0x03H0x2000程序执行前0x00H程序执行后0x08H(2)采用扩展关键字_at_#include#defineucharunsignedcharuchardatate
3、xt1[16]_at_0x60;ucharxdatatext2[16]_at_0x1000;voidmain(void){uchari;for(i=0;i<16;i++)text1[i]=i;for(i=0;i<16;i++)text2[i]=text1[i];while(1);}查看程序执行前后相应内存的内容。(3)#defineucharunsignedcharvoidmain(void){ucharxdata*xdp;uchardata*dp;xdp=0x1000;*xdp=0x66;dp=0x
4、30;*dp=0x77;}查看程序执行前后相应内存的内容。地址0x1000程序执行前0x00H程序执行后0x66H0x30程序执行前0x00H程序执行后0x77H2、循环程序对AT89C51单片机的片外数据存储器进行读写,首先将数据00H~0FH写入到片外数据存储器的3000H~300FH,然后将数据依次读出来,存储到片内60H~6FH。voidmain(){unsignedintaddr;charaddr1,i;addr=0x3000,addr1=0x60;for(i=0;i<16;i++){*((
5、charxdata*)addr++)=i;}addr=0x3000;for(i=0;i<16;i++){*((charidata*)addr1++)=*((charxdata*)addr++);}while(1);}分别查看片内存储器和片外存储器的内容。3、闪烁的LED/*名称:闪烁的LED说明:LED按设定的时间间隔闪烁*/#include#defineucharunsignedchar#defineuintunsignedintsbitLED=P1^0;//延时voidDelay
6、MS(uintx){uchari;while(x--){for(i=0;i<120;i++);}}//主程序voidmain(){while(1){LED=~LED;DelayMS(150);}}4、设计程序从左到右的流水灯/*名称:从左到右的流水灯说明:接在P0口的8个LED从左到右循环依次点亮,产生走马灯效果*/#includesbitLED=P0^0;unsignedinti,j;//主程序voidmain(){while(1){P0=0xfe;for(i=1000;i>0;i
7、--)for(j=110;j>0;j--);P0=0xfd;for(i=1000;i>0;i--)for(j=110;j>0;j--);P0=0xfb;for(i=1000;i>0;i--)for(j=110;j>0;j--);P0=0xf7;for(i=1000;i>0;i--)for(j=110;j>0;j--);P0=0xef;for(i=1000;i>0;i--)for(j=110;j>0;j--);P0=0xdf;for(i=1000;i>0;i--)for(j=110;j>0;j--);P
8、0=0xbf;for(i=1000;i>0;i--)for(j=110;j>0;j--);P0=0x7f;for(i=1000;i>0;i--)for(j=110;j>0;j--);}}
此文档下载收益归作者所有