中南大学单片机实验报告_第1页
中南大学单片机实验报告_第2页
中南大学单片机实验报告_第3页
中南大学单片机实验报告_第4页
中南大学单片机实验报告_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业单片机原理及应用系统设计实验报告学 院:信息科学与工程学院班 级:学 号:姓 名:指导老师:目录 TOC o 1-3 h z u 第一章 综述单片机也被称为(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的

2、发展便分道扬镳。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。 1.SCM即(Single Chip Microcomputer)阶段,主要是

3、寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。 Philips公司以其在嵌入式应用方面的巨

4、大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。 3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。MCS51系列微控制器应用广泛,在家电、汽车甚至航空等领域都有其活跃的身影。然而,普通51系列微控制器内部资源有限,像我用Proteus构建微控制器虚拟实验室选

5、用的AT89C52只有三个定时器、一个全双工的串行口和中断控制,并且其数据处理能力有限,不适合对大量数据进行复杂分析和运算。因此,在不重新选型(可选用SoC)的前提下,为实现我们所需要的功能,就需要进行外围扩展。针对微控制器的特点,我们首先考虑串行扩展,因为微控制器的I/O引脚有限,并行扩展一则外围芯片面积比较大,二则对抑制EMI不利。第二章 实验要求学习Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;熟悉TD-51单片机系统板及实验系统的结构及使用;进行MCS51单片机指令系统软件编程设计与硬件接口功能设计;学习并掌握Keil C51与Proteus

6、仿真软件联机进行单片机接口电路的设计与编程调试;完成指定MCS51单片机综合设计题下面主要分为软件和硬件部分来介绍软件部分:清零程序与拆字程序设计拼字程序与数据传送程序设计 排序程序与散转程序设计硬件部分:静态存储器扩展实验要求:阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“4.2 FLASH存储器扩展实验”实验项目(P60)。数字量输入输出实验LED灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。定时器/计数器实验要求:由单片机内部定时器1,按方式1工作,即作为

7、16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。编写程序模拟时序控制装置。开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮一直循环下去。/、/转换实验要求:Proteus环境下完成小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。串行通讯实验要求:Prot

8、eus环境下完成利用单片机实验系统,实现与PC机通讯。功能要求:将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。第三章 软件设计1清零程序 因为清零看不出效果,故改为全部写为01,从7000-8000H空间。程序如下: ORG 0000H LJMP MAIN ORG 0100HMAIN:MOV DPTR,#7000H;片内RAM首地址 MOV A, #01H;写入数据初值 MOV R6, #20H;循环变量LOOP2:MOV R7, #80H LOOP1:MOVX DPTR, A;写数据到RAMINC DPTR;地址加1D

9、JNZ R7, LOOP1DJNZ R6, LOOP2SJMP $END结果如下:单步运行下,第一步为:最后一步为: 8000h为02. 拆字程序流程图为程序如下:ORG 0000HLJMP MAINORG 0100HMAIN:MOV DPTR,#7000H ; MOV A,#12H ; MOVX DPTR,A ; RR A ;RR A ;RR A ;RR A ;ANL A,#0FH ; 高位送7001H低位MOV DPTR,#7001H ; MOVX DPTR,A ;MOV DPTR,#7000H ;MOVX A,DPTR ;ANL A,#0FH ; 低位送7002H低位 MOV DPTR,

10、#7002H ;MOVX DPTR,A ;SJMP $ ;设置断点, 观察实验结果中的内容END结果如下:3拼字程序流程图如下:程序如下:ORG 0000HLJMP MAINORG 0100HMAIN:MOV DPTR,#7000H ; MOV A,#01H ; MOVX DPTR,A ;ANL A,#0FH ;屏蔽高位SWAP A ;MOV B,A ;MOV DPTR,#7001H ;送7001HMOV A,#0AH ;MOVX DPTR,A ;ANL A,#0FH ;ORL A,B ;拼送后送7002HMOV DPTR,#7002H ;MOVX DPTR,A ;SJMP $ ;设置断点,

11、观察实验结果中的内容END结果如下:4. 数据传送程序设计把(R2,R3)源RAM中首地址内的(R6,R7)个字节数据传送到(R4,R5)目的RAM中。流程图如下程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV R2,#70H; MOV R3,#00H ;源地址MOV R4,#71H ; MOV R5,#00H ;目的地址MOV R6,#00H ; MOV R7,#07H ;传送个数MOV R1,#10H ;MOV R0,#07H ;MOV DPH,R2 ;MOV DPL,R3 ;MOV A,R1 ;L0: MOVX DPTR,A ;INC DPTR ;DJNZ R

12、0,L0 ;赋值L2: MOV R7,#0FFH ;L1: MOV DPH,R2 ; MOV DPL,R3 ; MOVX A,DPTR ;INC DPTR ;MOV R2,DPH ;MOV R3,DPL ;MOV DPH,R4 ;MOV DPL,R5 ;MOVX DPTR,A ;INC DPTR ;MOV R4,DPH ;MOV R5,DPL ;DJNZ R7,L1 ;DJNZ R6,L2 ;SJMP $END结果如下:把7000h中的8个数据发给7100h中:5. 排序程序程序如下:ESELSORT :MOV R7,N DEC R7ESST1 :MOV A,R7 MOV R6,A MOV D

13、PL,ADDPL MOV R1,DPL MOV DPH,ADDPH MOV R0,DPH MOVX A,DPTR MOV B,AESST2 :INC DPTR MOVX A,DPTR CLR C SUBB A,B JC ESST3 MOV R0,DPL MOV R1,DPH MOVX A,DPTR MOV B,AESST3 :DJNZ R6,ESST2 MOVX A,DPTR XCH A,B MOVX DPTR,A MOV DPL,R0 MOV DPH,R1 MOV A,B MOVX DPTR,A DJNZ R7,ESST1 RET6. 散转程序流程图如下:程序如下: ORG 0000H LJ

14、MP MAIN ORG 0100HMAIN: MOV R0,#02 MOV A,R0 RL A ADD A,R0 MOV DPTR,#TA JMP A+DPTRTA: LJMP PM0 LJMP PM1 LJMP PM2LJMP PM3PM0: MOV R1,#01H LJMP MAINPM1: MOV R2,#02H LJMP MAINPM2: MOV R3,#03H LJMP MAINPM3: MOV R4,#04H LJMP MAINOVER: SJMP $ END结果如下:当修改A=02h时跳转到pwm2 即使R1=03当修改A=00时即使R1=01,结果如下:第四章 硬件设计硬件部分

15、我主要做了三个实验,前两个是用c完成的,后一个是同学指导用汇编完成的,个人觉得用c来做程序还是比会变简单明了很多,而且原理也是一样的。数字量输入输出实验任务:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。(要求一定要用到8255)1)硬件构造如下:因为要加入8255,所以在硬件与程序中还是遇到了一些小麻烦的,在protus7.0中的8255是有问题的,后来转为7.5才好,可是在实际中又运行不了,只能仿真。2)程序如下:#includeunsigned char count;sbit A0=P20;sbit A1=P21;sbit WR_8

16、255=P23;sbit CS=P24;sbit RESET_8255=P22;void SendData(unsigned char dat);void delay(void) unsigned char a,b,c; for(c=19;c0;c-) for(b=20;b0;b-) for(a=130;a0;a-);void main() unsigned char i,value;IT0=1; /设置外部中断0下降沿触发EX0=1; /允许外部中断0EA=1; /开总中断RESET_8255=1; /上电复位8255for(i=0;i10;i+);RESET_8255=0;WR_8255=

17、0; /设置8255A口输出工作方式A0=1;A1=1;P0=0 x80;CS=0;for(i=0;i10;i+);WR_8255=1;CS=1;while(1) if(count=0) value=0 x01;for(i=0;i8;i+) /左移SendData(value); delay();SendData(0 x00); value=value1; if(count=1) value=0 x80;for(i=0;i1;if(count=2) SendData(0 xFF); /闪烁delay();SendData(0 x00);delay(); /外部中断0中断服务程序,用于选择LED

18、的方式void extra() interrupt 0 count=(count+1)%3;/向8255的A口写一个数据void SendData(unsigned char dat)unsigned char i;WR_8255=0;A0=0;A1=0;P0=dat;CS=0;for(i=0;i10;i+);WR_8255=1;CS=1;2. 定时器/计数器实验定时器控制LED灯要求:由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。编写程序模拟时序控制装置。开机后第一秒钟L1,L3亮,第二秒钟L2,L4

19、亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮一直循环下去。1)硬件构造如下:2)程序如下:#includeunsigned char count;void main()unsigned char value, i;TMOD=0 x01; TH0=0 x4C; TL0=0 x00; ET0=1;PT0=1; EA=1; TR0=1;while(1) if( count=20) P1=05H; if (count=40) P1=0AH; if

20、 (count=60) P1=50H; if (count=80) P1=0A0H; if (count=100) P1=55H; if (count=120) P1=0AAH; if (count=140) P1=0FFH; if (count=160) P1=00H; count=0;void Timer0()interrupt 1TR0=0; TH0=0 x4C; TL0=0 x00;TR0=1;count+;3. /、/转换实验要求:Proteus环境下完成小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值

21、大小及变化状态。1)硬件构造如下:2)程序如下:PRO_DA EQU 7FFFHPRO_AD EQU 0BFFFH ORG 0000H SJMP MAIN ORG 001BH LJMP KEYSCAN ORG 0030HMAIN: SETB EA SETB EX1 SETB IT1 MOV P1,#0FH MOV R5,#0FFHTEST: MOV R5,#03H CJNE R5,#01H,L1 LCALL SQUARE AJMP TESTL1: CJNE R5,#02H,L2 LCALL TRIANGLE AJMP TESTL2: CJNE R5,#03H,L3 LCALL SAWTOOTH

22、L3: AJMP TEST ;键盘扫描中断KEYSCAN: ACALL T12MS ;MOV R6,A ACALL SCAN JNZ KEY1 SJMP EXITKEY1: MOV R2,A MOV R3,#07FH MOV R4,#03HLOOP1: MOV P1,R3 MOV A,P1 CPL A ANL A,#0FH JNZ KEY2 MOV A,R3 RR A MOV R3,A DJNZ R4,LOOP1 SJMP EXITKEY2: DEC R4 CJNE R2,#01H,LOOP3 MOV A,#01H SJMP LOOP6LOOP3: CJNE R2,#02H,LOOP4 MOV

23、 A,#04H SJMP LOOP6LOOP4:CJNE R2,#04H,LOOP5 MOV A,#07H SJMP LOOP6LOOP5:CJNE R2,#08H,LOOP6 MOV A,#0AHLOOP6:ADD A,R4 MOV R5,A MOV P1,#0FH ;MOV A,R6EXIT: RETI ;延时后再次扫描有无按键按下 SCAN: MOV P1,#0FH MOV A,P1 CPL A ANL A,#0FH RETT12MS:MOV R7,#15H ;12MSTM: MOV R6,#0FFH DJNZ R6,$ DJNZ R7,TM RET ;D/A产生方波SQUARE: MO

24、V DPTR,#PRO_DA MOV A,#0FFH MOVX DPTR,A MOV DPTR,#0BFFFH MOVX DPTR,A ACALL DELAY MOV A,#00H MOV DPTR,#PRO_DA MOVX DPTR,A MOV DPTR,#0BFFFH MOVX DPTR,A ACALL DELAY RETDELAY:MOV R0,#27H DEL1: MOV R1,#0FFH DJNZ R1,$ DJNZ R0,DEL1 RET ;D/A产生三角波 时钟500KHz 幅值1mv 扫描周期20msTRIANGLE:MOV A,#00HTLOOP:MOV DPTR,#PRO_

25、DA MOVX DPTR,A MOV DPTR,#PRO_AD MOVX DPTR,A CJNE A,#0FFH,TLOOP2COUNT1:DEC A MOV DPTR,#PRO_DA MOVX DPTR,A MOV DPTR,#PRO_AD MOVX DPTR,A CJNE A,#00H,COUNT1 SJMP EXIT1TLOOP2:INC A AJMP TLOOPEXIT1:RET ;D/A产生锯齿波SAWTOOTH: MOV A,#00HSLOOP:MOV DPTR,#PRO_DA MOVX DPTR,A MOV DPTR,#PRO_AD MOVX DPTR,A INC A CJNE

26、A,#00H,SLOOP RET END4.静态存储器扩展实验1)程序如下:ORG 0000HLJMP MAINORG 0030HMAIN:MOV8EH,02HMOV P1,# 0FFH CLR A MOV P1,A MOV R7,#10HMOV R0,#30HMOV A,#00HLOOP0: MOV R0,AINC R0INC ADJNZ R7,LOOP0MOV R7,#10HMOV R0,#30H MOV R1,#40HMOV DPTR,#0000HLOOP1:MOV A,R0MOVX DPTR,AMOV R2,A MOVX A,DPTR00结果如下:当传输的数据正确时,则在硬件端显示红灯

27、亮,若拔掉一根线使得传输错误的话则显示黄灯亮。5 串行通信软件设计对这个实验不是很熟悉,参考资料得到以下流程图。 写数据读数据1)硬件如下:2)程序如下:ORG 0000HAJMP MAINORG 0023HAJMP URTORG 0030HMAIN:mov p1,#00hLCALL URTINITSTART:MOV P0,#0FHMOV A,P0CPL AANL A,#0FHJZ STARTLCALL DELAYMOV P0,#0FHMOV A,P0ANL A,#0FHMOV R7,AMOV P0,#0F0HMOV A,P0ANL A,#0F0HORL A,R7CJNE A,#0EEH,K1

28、MOV A,#30HMOV SBUF,AJNB TI,$CLR TIK1:CJNE A,#0DEH,K2MOV A,#31HMOV SBUF,AJNB TI,$CLR TIK2:CJNE A,#0BEH,K3MOV A,#32HMOV SBUF,AJNB TI,$CLR TIK3:CJNE A,#7EH,K4MOV A,#33HMOV SBUF,AJNB TI,$CLR TIK4:CJNE A,#0EDH,K5MOV A,#34HMOV SBUF,AJNB TI,$CLR TIK5:CJNE A,#0DDH,K6MOV A,#35HMOV SBUF,AJNB TI,$CLR TIK6:CJNE

29、 A,#0BDH,K7MOV A,#36HMOV SBUF,AJNB TI,$CLR TIK7:CJNE A,#7DH,K8MOV A,#37HMOV SBUF,AJNB TI,$CLR TIK8:CJNE A,#0EBH,K9MOV A,#38HMOV SBUF,AJNB TI,$CLR TIK9:CJNE A,#0DBH,KAMOV A,#39HMOV SBUF,AJNB TI,$CLR TIKA:CJNE A,#0BBH,KBMOV A,#41HMOV SBUF,AJNB TI,$CLR TIKB:CJNE A,#7BH,KCMOV A,#42HMOV SBUF,AJNB TI,$CLR TIKC:CJNE A,#0E7H,KDMOV A,#43HMOV SBUF,AJNB TI,$CLR TIKD:CJNE A,#0D7H,KEMOV A,#44HMOV SBUF,AJNB TI,$CLR TIKE:CJNE A,#0B7H,KFMOV A,#45HMOV SBUF,AJNB T

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论