您好,欢迎访问三七文档
实验报告实训题目:单片机原理与应用实训院系:计算机系专业:科学与技术_班级:B100505学号:B10050523姓名:张涛指导教师:董锦凤系部计算机系班级B100505学号B10050523姓名张涛课程名称单片机原理及应用实验日期实验名称计数显示器成绩【实验目的】熟悉Proteus仿真软件,掌握单片机原理图的绘图方法。【实验原理】图A.1为一计数显示器的电路原理图。图中两位七段共阴极数码管分别外接于P0和P2口,此外P0口还外接7只上拉电阻。按钮开关BUT接在P3.7引脚。时钟与复位电路分别接在第19、18和9脚处。该计数显示器的功能是,按压按键BUT后,数码管LED1和LED2上立即显示出按键压下的次数。当显示值达到99后再次按压按键,显示值将从1重新开始,以此无限循环。【实验内容】(1)熟悉Proteus软件,了解软件的结构组成与功能;(2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、画总线、修改属性等基本操作;(3)学会可执行文件加载及程序仿真运行方法;(4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制。【实验步骤】(1)观察Proteus软件的菜单、工具栏、对话框等基本操作;(2)在Proteus中绘制电路原理图,按照表A..1将元件添加到编辑环境中;(3)在Proteus中加载程序,观察仿真结果,检验电路图绘制的正确性。【实验要求】实验电路原理图及实验结果分析表A.1实验1的元器件清单CategoryReferenceValueMicroprocessorICsU180C51MiscellaneousX1CRYSTALCapacitorsC1、C2/1nFCAPCapacitorsC3/22uFCAP-ELECResistorsR2~R8/100RESResistorsR1/1kΩERSOptoelectronicsLED1、LED27SEG-COM-CAT-GRNSwitches&RelaysBUTBUTTON图A.1实验1的电路原理图【设计程序】#includereg51.hsbitP3_7=P3^7;unsignedcharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};unsignedcharcount;voiddelay(unsignedinttime){unsignedintj=0;for(;time0;time--)for(j=0;j125;j++);}voidmain(void){count=0;P0=table[count/10];P2=table[count%10];while(1){if(P3_7==0){delay(10);if(P3_7==0){count++;if(count==100)count=0;P0=table[count/10];P2=table[count%10];while(P3_7==0);}}}}【运行结果】系部计算机系班级B100505学号B10050523姓名张涛课程名称单片机原理及应用实验日期实验名称LED指示灯循环控制成绩【实验目的】熟悉uVision3编译软件,掌握C51编程与调试方法。【实验原理】图A.32为LED指示灯循环控制电路原理图。图中LED指示灯外接于P0口。由于P0口作为I/O口使用时是漏极开路的,需要外接上拉电阻,因而图中还加有8只100Ω的电阻。图中的时钟电路和复位电路与实验1相同。程序启动后,8只发光二极管做循环点亮控制,其中灯亮顺序为P0.0→P0.1→P0.2→……P0.5→……P0.0,无限循环,两次LED亮的时间间隔约0.5s。图A.32实验3的电路原理图【实验内容】(1)熟悉uVision3编译软件,了解软件的结构组成与功能;(2)学会C51语言的程序设计方法;(3)学会在uVision3中进行C51程序录入、编译和调试;(4)理解Proteus与Keil联合的仿真原理,实现LED指示灯循环控制功能。【实验步骤】(1)在ISIS中绘制电路原理图,按照表A..4将元件添加到编译环境中;(2)在uVision3中编写C51程序;(3)利用uVision3的编译调试功能检查程序的语法和逻辑错误;(4)下载可执行文件,在Proteus中观察仿真结果,检查程序的正确性。【实验要求】包括电路原理图及实验结果分析表A.4实验3的元器件清单CategoryReferenceValueMicroprocessorICsU180C51DataConverterU3ADC0808MiscellaneousX1CRYSTALCapacitorsC2~C3CAPCapacitorsC1/22uFCAP-ELECResistorsR2~R8/200RESResistorsR10~R18/100ERSOptoelectronicsD1~D8LED-YELLOW【设计程序】#includereg51.hsbitP0_0=P0^0;charled[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};voiddelay(unsignedinttime){unsignedintj=0;for(;time0;time--)for(j=0;j125;j++);}voidmain(){chari;while(1){for(i=0;i8;i++){P0=led[i];delay(1250);}if(i==7)i=0;}}【运行结果】系部计算机系班级B100505学号B10050523姓名张涛课程名称单片机原理及应用实验日期实验名称LED灯和数码显示器的中断控制成绩【实验目的】掌握外部中断的工作原理,熟悉中断编译及Keil平台软件调试方法。【实验原理】实验电路如图A.53所示。K1和K2分别接于端口P3.2和P3.3,按压后的电平负跳变可分别产生¯INT0¯中断请求和¯INT1¯中断请求。¯INT0¯中断响应后取端口P0.4电平,使指示灯D1的状态反转,¯INT1¯中断响应后使计数变量值增1并送给数码管LED显示。图A.53实验4的电路原理图【实验步骤】(1)按照表A.5所示将元件添加到ProteusISIS对象选择列表窗口中,并仿照图A.53完成电路原理图绘制。(2)在Keil中编写C51程序,并使之编译通过。(3)在Keil中加载编译后的可执行文件,并控制Proteus中的程序仿真运行。表A.5实验4的元器件清单CategoryReferenceValueMicroprocessorICsU180C51OptoelectronicsD1LED-GREENSwitches&RelaysK1~K2BUTTONResistorsR1~R2/100ΩERSOptoelectronicsLED7SEG-COM-CAT-GRN【实验要求】(1)主函数在程序初始化完成后进入原地循环状态,等待中断请求。(2)两路外部中断均设为下降沿触发方式,且为自然优先级。(3)计数变量初值为0,变化范围为0~F。(4)实验报告内容包括:电路原理图及分析、中断原理分析,C51源程序,仿真运行截屏图,实验小结【设计程序】#includereg51.hcharled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x71};sbitP0_4=P0^4;intcount=0;int0_key()interrupt0{P0_4=!P0_4;}int1_key()interrupt2{count++;if(count0x0f)count=0;P2=led_mod[count];}voidmain(){IT0=1;EX0=1;EA=1;IT1=1;EX1=1;P0_4=0;P2=0x3f;while(1);}【运行结果】系部计算机系班级B100505学号B10050523姓名张涛课程名称单片机原理及应用实验日期实验名称电子秒表显示器成绩【实验目的】掌握中断和定时计数器工作原理。熟悉C51编程与调试方法。【实验原理】实验电路原理图如图A.62所示。该电路与实验1的计数显示器电路基本相同,只去掉图A.1中的按钮BUT即可。图A.62实验5的电路原理图数码管的初始显示值为“00”;当1s产生时,秒计数器加1;秒计数器到60时清零,并从“00”重新开始,如此周而复始的进行下去,程序流程图如图A.63所示(a)主程序(b)定时器中断服务程序图A.63实验5的程序流程图本实验的定时要求采用T0定时方式1,且通过中断法响应。其中定时1s采用20次50ms定时实现。【实验内容】(1)学习使用Proteus软件,掌握原理图绘制方法;(2)学习KeilC软件,掌握C51程序编写与调试方法;(3)理解定时器的工作原理,完成定时中断程序的编写与调试;(4)深入理解定时中断的编程。【实验步骤】(1)在Proteus中绘制电路原理图,按照表A.6将元件添加到编辑环境中。(2)在Keil中编写C51程序,并使之编译通过。(3)在Proteus中加载程序,观察仿真结果。置T0终端工作方式数码显示初始化主函数设置定时常数启动定时器中断允许等待中断否T0中断服务函数关定时器T0,重装初值计够1s秒数加1计到60s秒数清0将秒数输出显示开定时器T0否是是表A.6实验5的元器件清单CategoryReferenceValueMicroprocessorICsU180C51DataConverterU3ADC0808MiscellaneousX1CRYSTALCapacitorsC1、C2CAPCapacitorsC3CAP-ELECResistorsR2~R8RESResistorsR1ERSOptoelectronicsLED1、LED27SEG-COM-CAT-GRN【实验要求】提交的实验报告中应包括带有头块部分的电路原理图、含注释内容的源程序及实验结果分析。【设计程序】#defineucharunsignedchar#includereg51.hbitldelay=0;uchart=0;ucharm=0;ucharn;voidmain(void){ucharcodetable[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};ucharledi=0;TMOD=0x01;TH0=0x3c;TL0=0xb0;TR0=1;ET0=1;EA=1;while(1){if(ldelay){ldelay=0;P2=table[ledi];ledi++;P0=table[t];if(ledi==10){ledi=0;t++;}if(t==6)t=0;}}}timer0()interrupt1{m++;if(m==20){m=0;ldelay=1;}TH0=0x3c;TL0=0xb0;}【运行结果】【实验总结】单片机课程设计让我们受益匪浅.此次实验是软件与硬件相结合,考察了我们的电脑模拟实验与编程能力.对于我们科学与技术的学生,编程,出现了很大的障碍。不过经过我们一步步的努力,花费的时间与精力终于没有白费,效果渐渐地出现了.其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了.【参考文献】[1]林立、张俊亮等,单片机原理及应用,电子工业出版社[2]唐俊翟等,单片机原理与应用,冶金工业出版社[3]霍孟友等,单片机原理与应用,机械工业出版社,[4]许泳龙等,单片机原理及应用,机械工业出版社[5]马忠梅等,单片机的C语言应用程序设计,北京航空航天大学出版社
本文标题:单片机实验三示例
链接地址:https://www.777doc.com/doc-7187636 .html