2022年单片机C51程序设计实验报告书_第1页
2022年单片机C51程序设计实验报告书_第2页
2022年单片机C51程序设计实验报告书_第3页
2022年单片机C51程序设计实验报告书_第4页
2022年单片机C51程序设计实验报告书_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、精选学习资料 - - - 欢迎下载试验一并行输入输出口的使用一.试验目的: 学会设计 proteus 7仿真电路,学习p1 口的使用方法和延时子程序的编写用 keil uvision 3 编程实现发光二极管的流水点亮;二.试验原理: p1 口为 8 位准双向 i/o 口,它的每一位都可以分别定义为输入线或输出线(作为输入时,口锁存器必需置1);p1 口作为输出,接8 个发光二极管 d1d8经限流电阻分别接至8 个引脚;本试验仿真电路图.流程图如下:r1d1精品学习资料精选学习资料 - - - 欢迎下载u139p0.0/ad038p0.1/ad137p0.2/ad236p0.3/ad335p0.

2、4/ad434p0.5/ad533p0.6/ad632p0.7/ad721p2.0/a822p2.1/a923p2.2/a1024p2.3/a1125p2.4/a1226p2.5/a1327p2.6/a1428p2.7/a1510 p3.0/rxd11 p3.1/txd12p3.2/int013p3.3/int114p3.4/t015p3.5/t116p3.6/wr17p3.7/rdat89c51xtal119xtal218rst9psen29ale30ea31p1.01p1.12p1.23p1.34p1.45p1.56p1.67p1.78470rr2470rr3470rr4470rr5470

3、rr6470rr7470rr8470rled-redd2led-redd3led-redd4led-redd5led-redd6led-redd7led-redd8led-red精品学习资料精选学习资料 - - - 欢迎下载开头p1 口初始化点亮 d1 发光二极管延时发光二极管移到下一位循环1精品学习资料精选学习资料 - - - 欢迎下载三.试验代码:#include<reg51.h>#include<intrins.h>/移位库函数包含于此头文件中 void delayunsigned int d/定义延时子函数 while-d>0; void main uns

4、igned char i、sel; while1 sel=0xfe; fori=0;i<=8;i+ p1=sel;/显示变量赋给 p1 口delay50000;/延时 sel=_crol_sel、1;/转变显示变量四.试验结论: 用 while 语句实现发光二极管循环流水点亮,从上到下一次点亮;试验二c51 分支程序设计一.试验目的: 学习多分支挑选结构和switch 语句,明白循环的嵌套;二.试验原理: do while循环先执行后判定为否循环,switch 括号中的表达式的值与某 case 后的常量表达式的值相同时,就执行它后面的语句,遇到break 语句就退出switch 语句;本

5、试验仿真电路图.流程图如下:精品学习资料精选学习资料 - - - 欢迎下载sw3sw-spstu18p1.77p1.66p1.554p1.4 p1.3p3.7/rd17p3.6/wr16p3.5/t11514p3.4/t0 p3.3/int113精品学习资料精选学习资料 - - - 欢迎下载sw2sw-spst3p1.22p1.11p1.0p3.2/int01211p3.1/txd p3.0/rxd10p2.7/a152827d4d3led-redr4470rr3精品学习资料精选学习资料 - - - 欢迎下载31ea30ale29psen9rst18 xtal219 xtal1 at89c51

6、p2.6/a1426p2.5/a13 p2.4/a1225p2.3/a112423p2.2/a1022p2.1/a9 p2.0/a82132p0.7/ad7 p0.6/ad633p0.5/ad534p0.4/ad435p0.3/ad336p0.2/ad237p0.1/ad138p0.0/ad039d2led-redd1led-redled-red470rr2470rr1470r精品学习资料精选学习资料 - - - 欢迎下载(仿真电路图)2精品学习资料精选学习资料 - - - 欢迎下载开头p1 口初始化将 p1 口赋给 a 并屏蔽高6 位a+散转地址 0循环子句 1循环子句2循环子句 3循环子句

7、ywhile 为否为真n终止(流程图)三.试验代码:#include <reg51.h> void main char a; do p1=0xff; a=p1;a=a&0x03; switcha case 0:p2=0x0e;break; case 1:p2=0x0d;break; case 2:p2=0x0b;break; case 3:p2=0x07;break;while1;四.试验结论: 多分支挑选的 switch/case语句,可直接处理并行多分支挑选问题,从匹配表达式的括号开头执行,不再进行判定;3精品学习资料精选学习资料 - - - 欢迎下载试验三外部中断试验

8、一.试验目的: 把握外部中断的原理以及中断处理程序的编写方法;二.试验原理: 外部中断 0 和外部中断 1 均为下降沿触发,当外部中断0 发生时, p0端口的电平反向,当外部中断1 发生时, p1 端口的电平反向, led 状态取反,引脚p3.2.p3.3 为外部中断 int0 和 int1 的输入端,本试验仿真电路图.流程图如下:精品学习资料精选学习资料 - - - 欢迎下载u117p3.7/rd16p3.6/wr15p3.5/t114p3.4/t0138p1.7p1.67p1.56p1.454d1led-red精品学习资料精选学习资料 - - - 欢迎下载12p3.3/int1 p3.2/

9、int0p1.3p1.23精品学习资料精选学习资料 - - - 欢迎下载11p3.1/txd 10p3.0/rxd28p2.7/a1527p2.6/a1426p1.121p1.031r1470r精品学习资料精选学习资料 - - - 欢迎下载25p2.5/a13 p2.4/a12ea30ale精品学习资料精选学习资料 - - - 欢迎下载24p2.3/a1123p2.2/a1022psen29精品学习资料精选学习资料 - - - 欢迎下载r0470r21p2.1/a9 p2.0/a8精品学习资料精选学习资料 - - - 欢迎下载32p0.7/ad733rst9精品学习资料精选学习资料 - - -

10、 欢迎下载34p0.6/ad6d035p0.5/ad5 p0.4/ad436p0.3/ad3xtal218精品学习资料精选学习资料 - - - 欢迎下载led-red37p0.2/ad238p0.1/ad139p0.0/ad0at89c51xtal119精品学习资料精选学习资料 - - - 欢迎下载(仿真电路图)开头初始化 p0.p1 口精品学习资料精选学习资料 - - - 欢迎下载设置外中断0.外中断 1为下降沿触发方式led 熄灭等待中断外中断 0 发生或外中断1 发生p0 口电平反向或p1 口电平反向led 熄灭精品学习资料精选学习资料 - - - 欢迎下载(主程序)(中断服务程序)三.

11、试验代码:4精品学习资料精选学习资料 - - - 欢迎下载#include<reg51.h>#include<stdio.h>void isovoid interrupt 0 p0=p0; /p0 端口反向 void is1void interrupt 2 p1=p1; /p1 端口反向void main p0=0x00; p1=0xff; scon=0x50; tmod=0x22; th1=0xf3; tr1=1;it0=1; it1=1;/设置下降沿触发方式ex0=1; ex1=1; ea=1;/中断答应while1;四.试验结论: 利用外中断程序可掌握led的亮灭

12、, p0 口.p1 口电平反向, led状态取反;试验四定时/计数器试验一.试验目的: 学习定时计数器的使用和编写方法,进一步把握中断处理程序的方法以及对示波器的明白;二.试验原理: 启动定时器 t1 延时 10ms,当定时时间到产生中断,执行中断程序, led 熄灭,t1 再延时 10ms,点亮 led ,如此循环, 本试验仿真电路图. 流程图如下:精品学习资料精选学习资料 - - - 欢迎下载u117p3.7/rd16p3.6/wr15p3.5/t114p3.4/t013p3.3/int112p3.2/int011p3.1/txd10p3.0/rxd28p2.7/a1527p2.6/a14

13、26p2.5/a1325p2.4/a1224p2.3/a1123p2.2/a1022p2.1/a921p2.0/a832p0.7/ad733p0.6/ad634p0.5/ad535p0.4/ad436p0.3/ad337p0.2/ad238p0.1/ad139p0.0/ad0at89c51p1.78p1.67p1.56p1.45p1.34p1.23p1.12p1.01ea31ale30psen29rst9xtal218xtal119d0led-reda b c dr1470r精品学习资料精选学习资料 - - - 欢迎下载(仿真电路图)5精品学习资料精选学习资料 - - - 欢迎下载开头设置 t

14、1 为定时器模式精品学习资料精选学习资料 - - - 欢迎下载送定时初值10msled 熄灭开 t1 中断启动 t1 计数等待中断t1 中断重置初点亮(熄灭) led值中断返回精品学习资料精选学习资料 - - - 欢迎下载(主程序)(中断服务程序)三.试验代码:#include<reg51.h>sbit wave=p10;/位定义void t1isrvoid interrupt 3/定时器 t1 中断响应6精品学习资料精选学习资料 - - - 欢迎下载 wave=wave;/反向 tl1=0x0f0;/ 重置计数初值th1=0x0d8;void mainvoid wave=0;/初

15、始化 p1.0=0 tmod=0x10;/设置定时器 t1 为模式 1 tl1=0x0f0; th1=0x0d8;tr1=1;/启动定时计数器et1=1;ea=1;/开中断 while1 四.试验结论: t1 工作于模式 1,定时器产生 10ms 的定时,定时中断产生,p1.0 端口的输出在示波器中显示, led 闪耀;利用定时计数器可掌握led 的显示时间变化;试验五外中断使用一.试验目的: 更娴熟的把握外部中断的原理与应用以及中断处理程序的编写方法;二.试验原理: 引脚 p3.2 .p3.3 分别为外部中断int0 和外部中断 int1 的输入端,均为低电平有效,下降沿触发;外中断0 发生

16、, 8 只 led 全部点亮,外中断1 发生, 8只 led 闪耀,本试验仿真电路图.流程图如下:精品学习资料精选学习资料 - - - 欢迎下载u117p3.7/rd16p3.6/wr15p3.5/t114p3.4/t013p1.78p1.67p1.56p1.454精品学习资料精选学习资料 - - - 欢迎下载12p3.3/int111p3.2/int010p3.1/txdp3.0/rxdp1.3p1.232p1.1p1.01精品学习资料精选学习资料 - - - 欢迎下载r1d128p2.7/a1527p2.6/a142631精品学习资料精选学习资料 - - - 欢迎下载470rr2470rr

17、3470rr4470rr5470rr6470rr7470rr8470rled-redd2d3led-redd4led-redd5led-redd6led-redd7led-redd8led-redled-red25p2.5/a1324p2.4/a12p2.3/a1123p2.2/a1022p2.1/a921p2.0/a832p0.7/ad733p0.6/ad634p0.5/ad535p0.4/ad436p0.3/ad337p0.2/ad23839p0.1/ad1p0.0/ad0 at89c51eaale30psen29rst9xtal218xtal119精品学习资料精选学习资料 - - - 欢

18、迎下载(仿真电路图)7精品学习资料精选学习资料 - - - 欢迎下载开头中断入口精品学习资料精选学习资料 - - - 欢迎下载初始化 p0 口中断 1 发生中断 0 发生精品学习资料精选学习资料 - - - 欢迎下载精品学习资料精选学习资料 - - - 欢迎下载设定外中断0,外中断1为下降沿触发方式中断答应等待中断8 只 led 闪耀8 只 led 闪 烁中断 0 为否发生ny精品学习资料精选学习资料 - - - 欢迎下载(主程序)(中断服务程序)三.试验代码:#include<reg51.h> sbit p32=p32;void delayunsigned int d/定义延时子

19、函数 while-d>0;void mainp0=0xff;/熄灭 ledit0=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 中断服务函数whilep32.=0/假如有外中断 0,退出 delay5000; p0=0x00;delay5000; p0=0xff;四.试验结论: 当外中断 0 发生,即按下了 so 按钮, 8 只 led 点亮;当外中断 1 发生

20、,即按下了 s1 按钮, 8 只 led 闪耀,遇到外中断 0 发生, 8 只 led 停止闪耀并保持点亮状态;8精品学习资料精选学习资料 - - - 欢迎下载试验六串行口双机通信试验一.试验目的: 懂得串行通信的基本概念和c51 单片机的串行通信接口结构,熟识串口的 4 种工作方式.通信连线和应用编程;二.试验原理: 单片机 1 将 p1 口拨动开关数据装入sbuf,经由 txd 将数据发送给单片机 2,单片机 2 将接收数据存入sbuf,再由 sbuf 装入累加器,并输出至p1, 点亮相应端口的led ,本试验仿真电路图.流程图如下:精品学习资料精选学习资料 - - - 欢迎下载dsw1u

21、19881077116612551344143315221611offonp1.7p3.7/rd1716精品学习资料精选学习资料 - - - 欢迎下载p1.6 p1.5 p1.4 p1.3p3.6/wr p3.5/t115p3.4/t014p3.3/int11312精品学习资料精选学习资料 - - - 欢迎下载p1.2p1.1 p1.0p3.2/int011p3.1/txd p3.0/rxd10精品学习资料精选学习资料 - - - 欢迎下载dipsw_828p2.7/a1527精品学习资料精选学习资料 - - - 欢迎下载31eap2.6/a14 p2.5/a1326精品学习资料精选学习资料

22、- - - 欢迎下载30ale 29psenp2.4/a122524p2.3/a11精品学习资料精选学习资料 - - - 欢迎下载23p2.2/a10p2.1/a922精品学习资料精选学习资料 - - - 欢迎下载r1d1p2.0/a821932精品学习资料精选学习资料 - - - 欢迎下载rstp0.7/ad7 p0.6/ad633精品学习资料精选学习资料 - - - 欢迎下载470rr2470rr3470rr4470rr5470rr6470rr7470rr8470rlde2d-redlde3d-redlde4d-red lde5d-red lde6d-red lde7d-red lde8d

23、-red led-red18xtal219xtal1uat289c518p1.77p1.66p1.55p1.44p1.33p1.22p1.11p1.031ea30ale29psen9rst18xtal2p0.5/ad534p0.4/ad43536p0.3/ad3 p0.2/ad237p0.1/ad138p0.0/ad039p3.7/rd17p3.6/wr16p3.5/t11514p3.4/t0 p3.3/int113p3.2/int012p3.1/txd1110p3.0/rxdp2.7/a1528p2.6/a142726p2.5/a1325p2.4/a12 p2.3/a1124p2.2/a10

24、2322p2.1/a921p2.0/a8p0.7/ad73233p0.6/ad634p0.5/ad5 p0.4/ad435p0.3/ad336p0.2/ad23738精品学习资料精选学习资料 - - - 欢迎下载19xtal1p0.1/ad1 p0.0/ad039精品学习资料精选学习资料 - - - 欢迎下载at89c51(仿真电路图)9精品学习资料精选学习资料 - - - 欢迎下载单片机 1 开头单片机 2 开头精品学习资料精选学习资料 - - - 欢迎下载设置波特率串口寄存器设置启动定时器读拨入键值载入 sbuf 发送为否发送完清晰 t1设置波特率串口寄存器设置启动定时器为否接收数据清除

25、r1数据暂存数据输出到p1精品学习资料精选学习资料 - - - 欢迎下载精品学习资料精选学习资料 - - - 欢迎下载三.试验代码: 单片机 1 的代码:#include<reg51.h>#define uint unsigned int#define uchar unsigned char void main uchar i; tmod=0x20; th1=tl1=0xff; scon=0x50; pcon=0x80; tr1=1;p1=0xff; while1 p1=0xff;i=p1; sbuf=i;whileti=0;ti=0;(程序流程图)精品学习资料精选学习资料 - -

26、 - 欢迎下载10精品学习资料精选学习资料 - - - 欢迎下载单片机 2 的代码:#include<reg51.h>#define uint unsigned int#define uchar unsigned char void main uchar i=0;tmod=0x20;th1=tl1=0xff;scon=0x50;pcon=0x80;tr1=1;while1 whileri=0 ; ri=0;i=sbuf;p1=i;四.试验结论: 当开关拨动到左边就对应的led 点亮,反之 led 熄灭;将双片单片机串行通信,结果存入sbuf 并输出至 p1 使相应的 led 点亮;

27、11精品学习资料精选学习资料 - - - 欢迎下载试验七单片机串口通信(二)一.试验目的:加深对串行通信的基本概念和c51 单片机的串行通信接口结构的明白,以及串口的工作方式.通信连线和应用编程;二.试验原理: 甲.乙两机以方式1 进行串行通信,甲机第一发送信号aa ,乙机接收到后应答 bb ,甲收到 bb 后发送数据,数据发送完毕立刻发送校验和;乙机收齐一个数据块后,再接收甲发来的校验和,并将其与乙求得的校验和比较,如相等,说明接收正确,乙回答00h,如不等,说明接收不正确,乙回答0ffh,恳求重新发送;开头串口初始化甲发送信号aa乙乙机应答否接收不发送命令帧正确甲运算发送校验和乙机应答否乙

28、运算校验和校验和相等否乙接收正确(程序流程图)三.试验代码:#include<reg51.h>#define uchar unsigned char#define tr 1/tr=1、发送 uchar idata buf10;uchar pf;12精品学习资料精选学习资料 - - - 欢迎下载/* 串行口初始化子函数 */ void initvoid tmod=0x20;/t1 工作于方式 2 th0=0xe8;tl0=0xe8;tr1=1;scon=0x50;/串行口工作于方式1,ren=1/* 发送子函数 */void senduchar idata*d uchar i; do

29、 sbuf=0xaa;/发送联络信号whileti=0/等待一帧发送完毕 ti=0;/发送完毕,标志位清0 whileri=0/等待乙机应答信号ri=0;while sbuf0xbb.=0;/乙机未预备好,连续联络 do pf=0;/校验和变量清0fori=0;i<10;i+ sbuf=di;/发送一个数据 pf+=di;/运算校验和 whileti=0ti=0;sbuf=pf;/发送校验和 whileti=0 ti=0;whileri=0 ri=0;/等待乙机应答 whilesbuf.=0;/回答出错,就重新发送/* 接收函数 */void receiveuchar idata*d u

30、char i; do whileri=0 ri=0; whilesbuf0xaa.=0;/判定甲机为否恳求 sbuf=0xbb;/发应答信号whileti=0 ti=0;while1 pf=0;/清校验和 fori=0;i<10;i+ di=sbuf;/接收数据pf+=di;13精品学习资料精选学习资料 - - - 欢迎下载/运算校验和whileri=0 ri=0; / 接收甲校验和ifsbufpf=0/比较校验和 sbuf=0x00;break;/校验和相等,发0x00 else sbuf=0xff;/ 校验和不相等,发0xffwhileti=0 ti=0;void main init

31、;/串行口初始化子函数 iftr=0 sendbuf;/发送else receivebuf;/接收四.试验结论: 甲.乙两单片机通过p3 口连接,设置寄存器sbuf,串口工作于方 式 1.依据 tr 的设置,利用发送函数和接收函数分别实现发送和接收功能;试验八多位七段数码动态显示一.试验目的: 把握数码管动态显示数字的原理和连接方式,学习端口输入输出的应用,以及 74ls245 驱动 led 显示的电路设计;二.试验原理: 轮番选中各位 led 数码管,同时给p0 口送不同的码字,并做肯定的视觉残留,数码管就会同时显现不同的数字;本试验仿真电路图.流程图如下:(仿真电路图)14精品学习资料精选

32、学习资料 - - - 欢迎下载开头位码赋初值点亮循环延时 1ms次数关闭显示加1调整位码到下循环次数为否小于0否终止(流程图)三.试验代码:#include<reg51.h>#define uchar unsigned charuchar data dis_buf6;/ 显示缓冲区ucharcodetable18=0x3f、0x06、0x5b、0x4f、0x66、0x6d、0x7d、0x07、0x7f、0x6f、0x77、0x7c、0x39、0x5e、0x79、0x 71、0x40、0x00;/代码表void d1_ms/延时 1 ms 函数 unsigned int j; for

33、j=0;j<200;j+ ;void displayvoid/显示函数 uchar segcode、bitcode、i; bitcode=0xfe;/ 位码赋初值 fori=0;i<6;i+ segcode=dis_bufi;/显示缓冲器内容查表p0=tablesegcode; p3=bitcode; d1_ms;p3=0xff;/关闭显示bitcode=bitcode<<1;/调整位码 bitcode=bitcode|0x01;15精品学习资料精选学习资料 - - - 欢迎下载void mainvoid dis_buf0=1; dis_buf1=2;/显示缓冲区赋初值

34、 dis_buf2=3; dis_buf3=4;dis_buf4=5; dis_buf5=6; while1display;四.试验结论: 七段数码管动态显示为一位一位轮番点亮各位数码管,每隔一段时间显示,设置点亮延时时间短,循环扫描点亮,使人眼辨论不出,看到各位数码管同时发光;试验九数/模转换试验一.试验目的: 学习把握 d/a 转换基本原理,把握d/a 转换程序设计方法;二.试验原理: d/a 转换器的功能主要为将输入的数字量信号转换成模拟量,检测按键执行相应的 d/a 转换,显示结果;本试验仿真电路图.流程图如下:精品学习资料精选学习资料 - - - 欢迎下载u139p0.0/ad038

35、p0.1/ad137p0.2/ad236p0.3/ad335p0.4/ad4xtal11918xtal2u21cs2wr1 3gnd4 di320vccileby1/by21918wr2xfer17精品学习资料精选学习资料 - - - 欢迎下载34p0.5/ad5335 di26di41615精品学习资料精选学习资料 - - - 欢迎下载p0.6/ad632p0.7/ad721p2.0/a8rst9di17di08vref9 rfbdi5di61413di7iout212精品学习资料精选学习资料 - - - 欢迎下载22p2.1/a923p2.2/a1024p2.3/a1125psen2930

36、10 gnd dac0832iout111u3-2.49volts精品学习资料精选学习资料 - - - 欢迎下载p2.4/a1226p2.5/a1327p2.6/a1428p2.7/a15aleea31opamp精品学习资料精选学习资料 - - - 欢迎下载10p3.0/rxd11 p3.1/txd1p1.0p1.12精品学习资料精选学习资料 - - - 欢迎下载12p3.2/int013p3.3/int114p3.4/t015p3.5/t116p3.6/wr17p3.7/rdat89c51p1.23p1.34p1.45p1.56p1.67p1.78精品学习资料精选学习资料 - - - 欢迎下

37、载开头dca0832 初始化检测按键d/a 转换显示(流程图)16精品学习资料精选学习资料 - - - 欢迎下载三.试验代码:#include<absacc.h>#include<reg51.h>#define uchar unsigned char#define dac0832 xbyte0x7fff sbit p10=p10;sbit p12=p12;void maindac0832=0x80;while1 p1=0xff; ifp10=0dac0832=0xff;ifp12=0dac0832=0x00;四.试验结论: 通过手动按键将数字量dac0832 转换输出模拟电压信号;试验十模/数转换试验一.试验目的: 学习把握 a/d 转换基本原理,把握用无条件方式.查询方式.中断方式完成模 /数转换程序的编写方法;二.试验原理: a/d 转换为将模拟量转换

温馨提示

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

评论

0/150

提交评论