欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    单片机C51程序设计实验报告书word文档良心出品.docx

    • 资源ID:29583284       资源大小:670.46KB        全文页数:24页
    • 资源格式: DOCX        下载积分:10金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机C51程序设计实验报告书word文档良心出品.docx

    1、单片机C51程序设计实验报告书word文档良心出品实验一 并行输入输出口的使用一、实验目的:学会设计proteus 7仿真电路,学习P1口的使用方法和延时子程序的编写用Keil uVision 3编程实现发光二极管的流水点亮。二、实验原理:P1口为8位准双向I/O口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必须置1)。P1口作为输出,接8个发光二极管D1D8经限流电阻分别接至8个引脚。本实验仿真电路图、流程图如下:三、实验代码:#include#include /移位库函数包含于此头文件中 void delay(unsigned int d) /定义延时子函数 while

    2、(-d0); void main() unsigned char i,sel; while(1) sel=0xfe; for(i=0;i=8;i+) P1=sel; /显示变量赋给P1口 delay(50000); /延时 sel=_crol_(sel,1); /改变显示变量 四、实验结论:用while语句实现发光二极管循环流水点亮,从上到下一次点亮。实验二 C51分支程序设计一、实验目的:学习多分支选择结构和switch语句,了解循环的嵌套。二、实验原理:do while 循环先执行后判断是否循环,switch括号中的表达式的值与某case后的常量表达式的值相同时,就执行它后面的语句,遇到b

    3、reak语句则退出switch语句。本实验仿真电路图、流程图如下:(仿真电路图)(流程图)三、实验代码:#include void main() char a; do P1=0xff; a=P1; a=a&0x03; switch(a) case 0:P2=0x0e;break; case 1:P2=0x0d;break; case 2:P2=0x0b;break; case 3:P2=0x07;break; while(1);四、实验结论:多分支选择的switch/case语句,可直接处理并行多分支选择问题,从匹配表达式的括号开始执行,不再进行判断。 实验三 外部中断实验一、实验目的:掌握外

    4、部中断的原理以及中断处理程序的编写方法。二、实验原理:外部中断0和外部中断1均为下降沿触发,当外部中断0发生时,P0端口的电平反向,当外部中断1发生时,P1端口的电平反向,LED状态取反,引脚P3.2、P3.3是外部中断INT0和INT1的输入端,本实验仿真电路图、流程图如下:(仿真电路图) (主程序) (中断服务程序)三、实验代码:#include#includevoid ISO(void) interrupt 0 P0=P0; /P0端口反向void IS1(void) interrupt 2 P1=P1; /P1端口反向void main () P0=0x00; P1=0xFF; SCO

    5、N=0x50; TMOD=0x22; TH1=0xF3; TR1=1; IT0=1; IT1=1; /设置下降沿触发方式 EX0=1; EX1=1; EA=1; /中断允许 while(1);四、实验结论:利用外中断程序可控制LED的亮灭,P0口、P1口电平反向,LED状态取反。实验四 定时/计数器实验一、实验目的:学习定时计数器的使用和编写方法,进一步掌握中断处理程序的方法以及对示波器的了解。二、实验原理:启动定时器T1延时10ms,当定时时间到产生中断,执行中断程序,LED熄灭,T1再延时10ms,点亮LED,如此循环,本实验仿真电路图、流程图如下:(仿真电路图) (主程序) (中断服务程

    6、序)三、实验代码:#includesbit Wave=P10; /位定义void T1ISR(void) interrupt 3 /定时器T1中断响应 Wave=Wave; /反向 TL1=0x0F0; /重置计数初值 TH1=0x0D8; void main(void) Wave=0; /初始化P1.0=0 TMOD=0x10; /设置定时器T1为模式1 TL1=0x0F0; TH1=0x0D8; TR1=1; /启动定时计数器 ET1=1; EA=1; /开中断 while(1) 四、实验结论:T1工作于模式1,定时器产生10ms的定时,定时中断产生,P1.0端口的输出在示波器中显示,LE

    7、D闪烁。利用定时计数器可控制LED的显示时间变化。实验五 外中断使用一、实验目的:更熟练的掌握外部中断的原理与应用以及中断处理程序的编写方法。二、实验原理:引脚P3.2、P3.3分别是外部中断INT0和外部中断INT1的输入端,均为低电平有效,下降沿触发。外中断0发生,8只LED全部点亮,外中断1发生,8只LED闪烁,本实验仿真电路图、流程图如下:(仿真电路图) (主程序) (中断服务程序)三、实验代码:#includesbit P32=P32;void delay(unsigned int d) /定义延时子函数 while(-d0);void main()P0=0xFF; /熄灭LED I

    8、T0=1; IT1=1; /外中断0、1脉冲触发方式 EA=1; EX0=1; EX1=1; /开中断 for(;) /延时等待中断发生 ; void INT0_ISR() interrupt 0 /外中断0中断服务函数 P0=0x00;void INT1_ISR() interrupt 2 /外中断1中断服务函数 while(P32!=0) /如果有外中断0,退出 delay(5000); P0=0x00; delay(5000); P0=0xFF; 四、实验结论:当外中断0发生,即按下了So按钮,8只LED点亮;当外中断1发生,即按下了S1按钮,8只LED闪烁,遇到外中断0发生,8只LED

    9、停止闪烁并保持点亮状态。实验六 串行口双机通信实验一、实验目的:理解串行通信的基本概念和C51单片机的串行通信接口结构,熟悉串口的4种工作方式、通信连线和应用编程。二、实验原理:单片机1将P1口拨动开关数据装入SBUF,经由TXD将数据发送给单片机2,单片机2将接收数据存入SBUF,再由SBUF装入累加器,并输出至P1,点亮相应端口的LED,本实验仿真电路图、流程图如下:(仿真电路图)(程序流程图)三、实验代码:单片机1的代码:#include#define uint unsigned int#define uchar unsigned charvoid main() uchar i; TMO

    10、D=0x20; TH1=TL1=0xff; SCON=0x50; PCON=0x80; TR1=1; P1=0xff; while(1) P1=0xff; i=P1; SBUF=i; while(TI=0); TI=0; 单片机2的代码:#include#define uint unsigned int#define uchar unsigned charvoid main() uchar i=0; TMOD=0x20; TH1=TL1=0xff; SCON=0x50; PCON=0x80; TR1=1; while(1) while(RI=0) ; RI=0; i=SBUF; P1=i; 四

    11、、实验结论:当开关拨动到左边则对应的LED点亮,反之LED熄灭。将双片单片机串行通信,结果存入SBUF并输出至P1使相应的LED点亮。实验七 单片机串口通信(二)一、实验目的:加深对串行通信的基本概念和C51单片机的串行通信接口结构的了解,以及串口的工作方式、通信连线和应用编程。二、实验原理:甲、乙两机以方式1进行串行通信,甲机首先发送信号AA,乙机接收到后应答BB,甲收到BB后发送数据,数据发送完毕立即发送校验和。乙机收齐一个数据块后,再接收甲发来的校验和,并将其与乙求得的校验和比较,若相等,说明接收正确,乙回答00H,若不等,说明接收不正确,乙回答0FFH,请求重新发送。(程序流程图)三、

    12、实验代码:#include#define uchar unsigned char#define TR 1 /TR=1,发送uchar idata buf10;uchar pf;/*串行口初始化子函数*/void init(void) TMOD=0x20; /T1工作于方式2 TH0=0xE8; TL0=0xE8; TR1=1; SCON=0X50; /串行口工作于方式1,REN=1 /*发送子函数*/ void send(uchar idata*d) uchar i; do SBUF=0xAA; /发送联络信号 while(TI=0) /等待一帧发送完毕 TI=0; /发送完毕,标志位清0 w

    13、hile(RI=0) /等待乙机应答信号 RI=0; while (SBUF0xBB!=0); /乙机未准备好,继续联络 do pf=0; /校验和变量清0 for(i=0;i10;i+) SBUF=di; /发送一个数据 pf+=di; /计算校验和 while(TI=0) TI=0; SBUF=pf; /发送校验和 while(TI=0) TI=0; while(RI=0) RI=0; /等待乙机应答 while(SBUF!=0); /回答出错,则重新发送 /*接收函数*/ void receive(uchar idata*d) uchar i; do while(RI=0) RI=0;

    14、while(SBUF0xAA!=0); /判断甲机是否请求 SBUF=0xBB; /发应答信号 while(TI=0) TI=0; while(1) pf=0; /清校验和 for(i=0;i10;i+) di=SBUF; /接收数据 pf+=di; /计算校验和 while(RI=0) RI=0; /接收甲校验和 if(SBUFpf)=0) /比较校验和 SBUF=0x00;break; /校验和相等,发0x00 else SBUF=0xFF; /校验和不相等,发0xFF while(TI=0) TI=0; void main() init(); /串行口初始化子函数 if(TR=0) se

    15、nd(buf); /发送 else receive(buf); /接收四、实验结论:甲、乙两单片机通过P3口连接,设置寄存器SBUF,串口工作于方式1.根据TR的设置,利用发送函数和接收函数分别实现发送和接收功能。实验八 多位七段数码动态显示一、实验目的:掌握数码管动态显示数字的原理和连接方式,学习端口输入输出的应用,以及74LS245驱动LED显示的电路设计。二、实验原理:轮流选中各位LED数码管,同时给P0口送不同的码字,并做一定的视觉残留,数码管就会同时出现不同的数字。本实验仿真电路图、流程图如下:(仿真电路图)(流程图)三、实验代码:#include#define uchar unsi

    16、gned charuchar data dis_buf6; /显示缓冲区uchar code table 18=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x40,0x00; /代码表void d1_ms() /延时1 ms函数 unsigned int j; for(j=0;j200;j+) ;void display(void) /显示函数 uchar segcode,bitcode,i; bitcode=0xfe; /位码赋初值 for(i=0;i6;i+) segcod

    17、e=dis_bufi; /显示缓冲器内容查表 P0=tablesegcode; P3=bitcode; d1_ms(); P3=0xff; /关闭显示 bitcode=bitcode1; /调整位码 bitcode=bitcode|0x01; void main(void) dis_buf0=1; dis_buf1=2; /显示缓冲区赋初值 dis_buf2=3; dis_buf3=4; dis_buf4=5; dis_buf5=6; while(1) display();四、实验结论:七段数码管动态显示是一位一位轮流点亮各位数码管,每隔一段时间显示,设置点亮延时时间短,循环扫描点亮,使人眼分

    18、辨不出,看到各位数码管同时发光。实验九 数/模转换实验一、实验目的:学习掌握D/A转换基本原理,掌握D/A转换程序设计方法。二、实验原理:D/A转换器的功能主要是将输入的数字量信号转换成模拟量,检测按键执行相应的D/A转换,显示结果。本实验仿真电路图、流程图如下:(流程图)三、实验代码:#include#include#define uchar unsigned char#define DAC0832 XBYTE0x7fffsbit P10=P10;sbit P12=P12;void main() DAC0832=0x80; while(1) P1=0xff; if(P10=0) DAC083

    19、2=0xff; if(P12=0) DAC0832=0x00; 四、实验结论:通过手动按键将数字量DAC0832转换输出模拟电压信号。实验十 模/数转换实验一、实验目的:学习掌握A/D转换基本原理,掌握用无条件方式、查询方式、中断方式完成模/数转换程序的编写方法。二、实验原理:A/D转换是将模拟量转换为一定码制的数字量。调节滑动变阻器将模拟量转换成数字量通过P1口输出显示。本实验仿真电路图、流程图如下:(流程图)三、实验代码:#include#include#define uchar unsigned char#define ADC08080 XBYTE0x78ffsbit P33=P33;sbit P27=P27;sbit P36=P36;sbit P37=P37;void main() EA=1; EX1=1; IT1=1; ADC08080=0; /启动A/D while(1);void int0() interrupt 2 P1=ADC08080; /读取数据 ADC08080=0; /启动A/D四、实验结论:当A/D转换结束时,引脚EOC由低电平转换为高电平输出信号LED亮,调节滑动变阻器显示相应的LED亮。


    注意事项

    本文(单片机C51程序设计实验报告书word文档良心出品.docx)为本站会员主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

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

    收起
    展开