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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

单片机实验报告Word格式.docx

1、 参照1 1.4节中介绍的相关内容,进入Vision调试模式。在寄存器窗口中设置寄存器R0的初值,在程序最后设置断点,全速运行至断点处,在存储器观察窗口中观察内部数据存储器中的内容是否与程序设计运行结果一致。如果有问题,需要进一步通过单步调试,查看程序的每条语句执行结束后的状态,检查程序设计中的问题。 3)编写程序,完成BCD码向 ASCI码的转换。使用Vision集成开发环境建立项目,编写程序实现将存储于内部数据存储器30H35H中的6个非压缩式BCD码的数字转换成ASCII码形式,存储于外部数据地址为2000H2005H的单元中。编译程序,根据提示改正错误,直至编译无误。 参照11.4节中

2、介绍的相关内容,进入Vision调试模式。在存储器观察窗口1中设置内部数据存储器30H35H单元中的BCD码数据,在程序结尾设置断点,全速运行直至断点处,在存储器观察窗口2中查看以地址2000H起始的外部数据存储单元中的内容是否与程序设计运行结果一致。4.实验结果图1-1图1-2二、实验二使用Vision集成开发工具设计、调试C51语言程序 1实验目的 1)进一步熟悉使用Vision集成开发工具编写、编译、调试单片机C51语言程序的方法。 2)初步掌握C51编程语言的基本编程方法。 3)初步领会C51编程语言程序设计的基本思想和方法。 4)学会使用C51库函数进行基本输入输出的编程方法。 2实

3、验设备 1)计算机。 2) Vision集成开发环境。1) 进一步学习Vision集成开发环境的使用及C51编程范例结合第11章Vision集成开发环境的使用介绍,对Vision的常用功能及调试C51语言程序的方法进行上机练习。具体的功能说明请参阅第11章的有关部分和Vision自带的联机帮助。 打开Vision安装目录下路径为“C51EXAMPLESCSAMPLE”中的C51语言最基本的范例工程文件“CSAMPLE. Uv2”。通过仔细阅读范例程序,了解Vision中C51语言编写的程序项目文件构成、C51语言程序编写规范、模块间的函数和变量调用方法等知识。通过分析范例程序,掌握利用C51库

4、函数设计使用单片机串行口进行输入输出的基本方法。2)编写程序实现3个数的大小比较 通过学习Vision自带的C51语言程序范例CSAMPLE中关于输入输出的库函数使用方法,编写程序实现3个数的大小比较。程序要求:1)程序启动后向串行端口发送提示信息,并提示用户输入待比较的3个数字。2)程序将用户从串行端口输入的3个数字进行比较并排序。3)程序将比较结果按数字大小的升序排列从串行端口输出。4.实验步骤程序设计时,应采用模块化设计、自底向上的设计方法进行,调试中需要用到的Lr,Vision功能可以参阅11.4节中的有关部分和联机帮助文档。1)仔细阅读并分析范例,学习C51输入输出库函数的使用方法。

5、2)编写程序,在调试模式下调试,实现在串行端口调试窗口输出程序设置的信息,调试好后将程序改写成输出接口函数形式保存。3)编写程序,在调试模式下调试,实现从串行端口调试窗口读入数据,通过变量观察窗口观察读入的数据与输入的数据是否一致,确定程序设计成功后将程序改写成输入接口函数形式保存。4)编写主程序,实现程序的控制流程,在需要的地方调用已经编写好并调试成功的输入输出接口函数,最后在调试模式下调试完整的程序。三、实验三 跑马灯实验1.实验目的1)熟悉51单片机并行口的编程。2)熟悉共阴极LED的工作特性及控制方法。3)熟悉单片机实验开发板的设计原理。4)学习单片机在系统烧录程序(在系统编程ISP)

6、的方法。2.实验设备1)计算机2)Vision集成开发环境3)ISP编程软件4)实验开发板5)交叉式串行口通信线3.实验原理一个数码管由8个发光二极管组成,由于是共阴极,所以高电平选通。74ALS245接成直通方式通过P0口驱动数码管。由单片机P2口的其中三位控制74LS138译码器对数码管进行位选。同时控制8个发光二极管和8个数码管。4.实验内容1)使用汇编语言编写程序实现数码管跑马灯实验 编写A51汇编语言程序,编译成功后,使用ISP下载软件下载程序,在实验板上实现数码管从0到9的跑马显示。2)使用C51语言编写程序实现数码管的跑马灯实验。 a、控制数码管进行从0到9跑马显示; b、从右向

7、左循环显示数字“8”,接着依次点亮发光二极管,控制蜂鸣器发声,再将数码管全部点亮,如此往复地循环执行。5.实验流程图5.实验结果6.实验源程序(1)用C51实现数码管0到9跑马显示#include/-定义要使用的IO口-/#define GPIO_DIG P0/-声明全局函数-/void Delay100ms(unsigned int c); /误差 0us/-定义全局变量-/RAM,ROMunsigned char code DIG_CODE10=0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,0x7F, 0x6F;/09段码void main(

8、void) unsigned char i = 0; while(1) GPIO_DIG = DIG_CODEi; i+; if(i = 10) i = 0; Delay100ms(50); void Delay100ms(unsigned int c) /误差 0us unsigned char a, b; /-c已经在传递过来的时候已经赋值了,所以在for语句第一句就不用赋值了-/ for (;c0;c-) for (b=1000;bb-) for (a=1300;aa-); (2)从右向左循环显示数字“8”,接着依次点亮发光二极管,控制蜂鸣器发声,再将数码管全部点亮,如此往复地循环执行。

9、#include #define GPIO_DIG P3sbit LSA=P22;sbit LSB=P23;sbit LSC=P24;sbit beep=P25; /蜂鸣器控制 unsigned char LED;unsigned char code DIG_CODE8=0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f;/8的显示码unsigned char DisplayData8;/用来存放要显示的8位数的值void DigDisplay();void DigDisplay2();/延时函数void Delay10ms(unsigned int c) /误差

10、0us for (b=38; for (a=130; void main() /从右向左循环显示数字8 unsigned char i; for(i=0;i8;i+) DisplayDatai=DIG_CODEi; DigDisplay(); /依次点亮流水灯 LED = 0x01; while (1) P0 = LED; Delay10ms(50); LED = LED unsigned char duanxuan10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;unsigned char weixuan2=0xf7,0xfb;unsi

11、gned int times=0;void display();void int_0(void)interrupt 0 using 1 /按键触发外部中断 times+; IT0=1; /设置中断触发方式为下降沿触发 EX0=1; /允许外部中断 EA=1; /开总中断 display();void display() /按键次数显示unsigned int j; int a,b; a=times%10; b=times/10; P1=weixuan0; P0=duanxuana; j=1000; while(j-); P1=weixuan1; P0=duanxuanb;五、实验七 串行通信实

12、验(1)通过实验掌握51单片机的串行中断原理。(2)通过实验掌握串行通信的基本原理。(3)熟悉使用C51编程语言编写的查询方式的发送、接收程序的方法。(4)熟悉使用C51编程语言编写的中断方式的发送、接收程序的方法。(5)初步掌握单片机与PC通信的程序设计方法。(4)AccessPort串口调试软件(5)实验开发板(6)交叉式串行口通信线单片机的RXD和TXD引脚作为UART的接收端和发送端,通过MAX232接口芯片分别连接到J4接口端子的2脚和3脚。MAX 232是RS-232接口芯片,主要负责不同标准电平信号间的转换,在很多情况下串行通信的故障是由MAX232芯片的故障造成的。根据芯片手册

13、,MAX232在正常工作时,第二引脚V+应该输出+8.5V的电压,第六引脚V-应该输出-8.5V的电压。因此,实际应用中可以通过测量这两个引脚的工作电压是否正常来判断MAX232芯片是否工作正常。由于计算机的COM端口也遵循RS-232接口标准,因此使用通信线将实验板发送端和接收端与PC接收端和发送端对应相连,即可实现单片机实验板与PC之间的通信。如果在实验板的JP7端子上使用跳线块将1脚和2脚短接,即把实验板串行接口的发送端与接收端短接起来,这样单片机从TXD发送的数据会返回到RXD上,实现数据的自发自收。1)检测MAX232芯片的状态。首先,使用万用表的20V直流电压档测量教学实验板上MA

14、X232芯片的第二引脚和第六引脚电压是否正常,以判断MAX232是否正常工作。接着,分别测量第13引脚和第14引脚,检查通信引脚的电平是否符合RS-232标准的要求。2)参考第六章的相关内容,使用C51编程语言实现查询方式的发送程序,并在Vision的调试模式下,利用串行口调试窗口观察数据输出情况并验证程序。最后,将发送程序组织成查询方式的发送函数保存起来。3)参考第六章的相关内容,使用C51编程语言实现查询方式的接收程序,并在Vision的调试模式下,利用串行口调试窗口模拟数据的输入,在程序中设置断点,通过变量观察窗口查看接收的数据并验证程序。最后,将接收程序组成查询方式的接收函数保存起来。

15、5. 实验结果每当从键盘输入一个ASCII字符,在屏幕会显示该字符,并在该字符之后屏幕显示该字符加一之后的字符。如:输入,屏幕在现实之后会接着显示;输入,屏幕在现实之后会接着显示6.流程图6. 实验源程序unsigned char code String =who are you? ;unsigned char receive20;/设置最大能接收20个字符,可以根据实际需要扩大void Delay(unsigned int n) unsigned int i,j; i 0; j-);void jieshou() unsigned int i; while(Stringi != 0) /循环发

16、送字节数组中的数据 SBUF=Stringi; while(TI=0); TI=0; i+; Delay(1); 19; while(RI=0); receivei=SBUF;/存储接收到的数据 if(receivei=E) receivei=; RI=0; break; SBUF=receivei; while(TI=0); TI=0; SBUF=n while(TI=0); TI=0; i=0; SCON=0X50; /设置为工作方式1 1起始位8数据位1停止位 TMOD=0X20; /设置计数器工作方式2 PCON=0X80; /波特率加倍 TH1=0XF3; /计数器初始值设置,波特率

17、是4800 TL1=0XF3; EA=0; TR1=1; jieshou();六、实验十一 矩阵键盘实验(1)进一步掌握单片机通用I/O接口的编程方法。(2)掌握单片机矩阵键盘电路的设计方法。(3)掌握单片机读取矩阵键盘状态的编程方法。(2)AccessPort串口调试助手(3)Vision集成开发环境(4)ISP编程软件(6)交叉式串口通信线矩阵键盘的读取是通过循环查询I/O接口输入实现的。在电路中,由于行列信号都设置了上拉电阻,因此如果对某列输出低电平信号,然后查询行信号的输入状态,若代表某行状态的引脚电平为低,则可确定被按下按键的行和列的坐标,反之亦然。如此往复的不断循环查询,由于单片机的执行速度很快,一旦有按键按下就可确定按键的编号。另外,还需要注意,由于按键时会出现弹簧抖动或按键的误触碰而造成某次读取状态不确定性。为解决这样的问题,在程序设计时往往在读取到一个按键被按下后,延时一定时间再读取一次状态以便确认读取无误,如果状态相同则说明有键被按下,反之

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

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