ImageVerifierCode 换一换
格式:DOCX , 页数:31 ,大小:223.80KB ,
资源ID:8305918      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/8305918.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(中南大学单片机实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

中南大学单片机实验报告.docx

1、中南大学单片机实验报告单片机原理及应用系统设计实验报告学 院:信息科学与工程学院班 级:学 号:姓 名:指导老师:目录 第一章 综述 2第二章 实验要求 1第三章 软件设计 21 清零程序 22 拆字程序 33 拼字程序 44 数据传送程序设计 55 排序程序 76 散转程序 8第四章 硬件设计 91 数字量输入输出实验 91)硬件构造: 92)程序代码: 102 定时器/计数器实验 121)硬件构造: 122)程序代码: 133 /、/转换实验 151)硬件构造: 152)程序代码: 154 串行通信软件设计 191)硬件构造: 202)程序代码: 20第五章 调试过程及体会 231 调试过

2、程 232 收获体会 24第一章 综述单片机也被称为微控制器(Microcontroller),是因为它最早被用在工业控制领域。单片机由芯片内仅有CPU的专用处理器发展而来。最早的设计理念是通过将大量外围设备和CPU集成在一个芯片中,使计算机系统更小,更容易集成进复杂的而对体积要求严格的控制设备当中。INTEL的Z80是最早按照这种思想设计出的处理器,从此以后,单片机和专用处理器的发展便分道扬镳。单片机是靠程序运行的,并且可以修改。通过不同的程序实现不同的功能,尤其是特殊的独特的一些功能,这是别的器件需要费很大力气才能做到的,有些则是花大力气也很难做到的。一个不是很复杂的功能要是用美国50年代

3、开发的74系列,或者60年代的CD4000系列这些纯硬件来搞定的话,电路一定是一块大PCB板!但是如果要是用美国70年代成功投放市场的系列单片机,结果就会有天壤之别!只因为单片机的通过你编写的程序可以实现高智能,高效率,以及高可靠性!单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。 1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。2.MCU即微控制器(Micro C

4、ontroller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。 Philips公司以其在嵌入式应用方面的巨大优势,将MCS-51从单片微型计算机迅速发展到微控制器。因此,当我们回顾嵌入式系统发展道路时,不要忘记Intel和Philips的历史功绩。 3.单片机是嵌入式系统的独立发展之路,向MCU阶段发展的重

5、要因素,就是寻求应用系统在芯片上的最大化解决;因此,专用单片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发展,基于SoC的单片机应用系统设计会有较大的发展。因此,对单片机的理解可以从单片微型计算机、单片微控制器延伸到单片应用系统。MCS51系列微控制器应用广泛,在家电、汽车甚至航空等领域都有其活跃的身影。然而,普通51系列微控制器内部资源有限,像我用Proteus构建微控制器虚拟实验室选用的AT89C52只有三个定时器、一个全双工的串行口和中断控制,并且其数据处理能力有限,不适合对大量数据进行复杂分析和运算。因此,在不重新选型(可选用SoC)的前提下,为实现我们所需要

6、的功能,就需要进行外围扩展。针对微控制器的特点,我们首先考虑串行扩展,因为微控制器的I/O引脚有限,并行扩展一则外围芯片面积比较大,二则对抑制EMI不利。第二章 实验要求1、 学习Keil C51集成开发工具的操作及调试程序的方法,包括:仿真调试与脱机运行间的切换方法;2、 熟悉TD-51单片机系统板及实验系统的结构及使用;3、 进行MCS51单片机指令系统软件编程设计与硬件接口功能设计;4、 学习并掌握Keil C51与Proteus仿真软件联机进行单片机接口电路的设计与编程调试;5、 完成指定MCS51单片机综合设计题下面主要分为软件和硬件部分来介绍软件部分:清零程序与拆字程序设计拼字程序

7、与数据传送程序设计 排序程序与散转程序设计硬件部分:静态存储器扩展实验要求:阅读、验证C语言程序功能。使用汇编语言编程,完成实验指导书之“4.2 FLASH存储器扩展实验”实验项目(P60)。数字量输入输出实验LED灯控制(使用8255接口芯片)要求:使用汇编语言编程,功能为:通过KK1实现LED灯工作方式即时控制,完成LED开关控制显示和LED灯左循环、右循环、间隔闪烁功能。定时器/计数器实验要求:由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。P1口的P1.0-P1.7分别接八个发光二极管。编写程序模拟时序控制装置。开机后第一秒钟L1,L3亮,第二

8、秒钟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灯,显示当前模拟信号值大小及变化状态。串行通讯实验要求:Proteus环境下完成利用单片机实验系统,实现与PC机通讯。功能要求:将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显

9、示到单片机实验系统的数码管上。第三章 软件设计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 ;写数据到RAM INC DPTR ;地址加1 DJNZ R7, LOOP1 DJNZ R6, LOOP2 SJMP $ END结果如下:单步运行下,第一步为:最后一步为: 8000h

10、为02. 拆字程序流程图为程序如下: ORG 0000H LJMP MAIN ORG 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,#7002H ; MOVX DPTR,A ; SJMP $ ;设置断点, 观察实验结果中的内容 END结

11、果如下:3拼字程序流程图如下:程序如下: ORG 0000H LJMP MAIN ORG 0100HMAIN: MOV DPTR,#7000H ; MOV A,#01H ; MOVX DPTR,A ; ANL A,#0FH ;屏蔽高位 SWAP A ; MOV B,A ; MOV DPTR,#7001H ;送7001H MOV A,#0AH ; MOVX DPTR,A ; ANL A,#0FH ; ORL A,B ;拼送后送7002H MOV DPTR,#7002H ; MOVX DPTR,A ; SJMP $ ;设置断点, 观察实验结果中的内容 END结果如下:4. 数据传送程序设计把(R2

12、,R3)源RAM中首地址内的(R6,R7)个字节数据传送到(R4,R5)目的RAM中。流程图如下程序: ORG 0000H LJMP MAIN ORG 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 R0,L0 ;赋值L2: MOV R7,

13、#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 DPL,ADD

14、PL 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 LJMP MAI

15、N ORG 0100HMAIN: MOV R0,#02 MOV A,R0 RL A ADD A,R0 MOV DPTR,#TA JMP A+DPTRTA: LJMP PM0 LJMP PM1 LJMP PM2 LJMP 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,结果如下:第四章 硬件设计硬件部分我主要做了

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

17、5=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; /允许外部中断0 EA=1; /开总中断 RESET_8255=1; /上电复位8255 for(i=0;i10;i+); RESET_8255=0; WR_

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

19、0中断服务程序,用于选择LED的方式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分别接八个发光二极管。编写程序模拟时序控制装

20、置。开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟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=0x01; TH0=0x4C; TL0=0x00; ET0=1; PT0=1; EA=1; TR0=1; while(1) if( count=20) P1=05H

21、; if (count=40) P1=0AH; if (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 1 TR0=0; TH0=0x4C; TL0=0x00; TR0=1; count+;3. /、/转换实验要求:Proteus环境下完成小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A转换方式),经

22、过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。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: CJ

23、NE R5,#03H,L3 LCALL SAWTOOTHL3: 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 LOOP6L

24、OOP3: CJNE R2,#02H,LOOP4 MOV 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,$ DJ

25、NZ R7,TM RET ;D/A产生方波 SQUARE: MOV 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 扫描周期20msTRIANGL

26、E:MOV A,#00HTLOOP:MOV DPTR,#PRO_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 A,#00H,SLOOP RET END4.静态存储器扩展实验1)程序如下: ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV 8EH,02H MOV P1,# 0FFH CLR A MOV P1,A MOV R7,#10H MOV R0,#30H MOV A,#00HLOOP0: MOV R0,A INC R0 INC A DJNZ R7,LOOP0 MOV R7,#10H MOV R0,#30H MOV R1,#40H MOV DPTR,#0000HLOOP1:MOV A,R0 MOVX

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1