C51单片机实验报告.docx
实验报告册课程名称:单片机原理与应用 B指导老师:xxx班级:xxx姓名:xxx学号:xxx学期: 20 20学年第学期南京农业大学工学院教务处印工学院实验报告实验目录实验一:指示灯/开关控制器实验二:指示灯循环控制实验三:指示灯/数码管的中断控制实验四:电子秒表显示器实验五:双机通信工学院实验报告姓名:学号:班级:成绩:实验名称:指示灯/开关控制器一、实验目的:学习 51 单片机 I/O 口基本输入/输出功能,掌握C 语言的编程与调试方法。二、实验原理:实验电路原理图如图所示,图中输入电路由外接在P1 口的 8 只拨动开关组成;输入电路由外接在 P2 口的 8 只低电平驱动的发光二极管组成。此外,还包括时钟电路、复位电路和片选电路。在编程软件的配合下,要求实现如下指示灯/开关控制功能:程序启动后,8 只发光二极管先整体闪烁 3 次(即亮暗亮暗亮暗,间隔时间以肉眼可观察到为准),然后根据开关状态控制对应发光二极管的亮灯状态,即开关闭合相应灯亮,开关断开相应灯灭,直至停止程序运行。三、软件编程原理为;(1)8 只发光二极管整体闪烁 3 次工学院实验报告亮灯:向 P2 口送入数值 0;灭灯:向 P2 口送入数值 0FFH; 闪烁 3 次:循环 3 次;闪烁快慢:由软件延时时间决定。(2)根据开关状态控制灯亮或灯灭开关控制灯:将 P1 口(即开关状态)内容送入P2 口; 无限持续:无条件循环。四、实验结果图: 灯泡闪烁:1c 1汤京度岳女泾工学院实验报告尸 勹 J 1 立“ '1|'|. . 乙DI凡 lXT 从 1,RU2STC.C.3S,如u 心匡r心| 汇lf 一Dl - YEIJ.础D3U D于可0 1 心巴(丈翌l1 学g fI、莘 了芒艺迎 · 芯 rFz n心· tP21 四P>!J/1D户1 中, 1 1p:z心凸1ZP24r.,.,丘t 凡1,P2 万山15丸 0砬臼内如1 吵 111”“白TIP3叩l扫 7 知 I U· D-茫U 灯仆沁咖iUED丫 L 9 九沺F 户3 西础心= 按下按键 1、3、5、7:1 裳密叮一工学院实验报告经检验,其余按键按下时亦符合题目要求。五、实验程序:#include"reg51.h"void delay(unsigned char time)unsignedintj=15000; for(;time>0;time-)for(;j>0;j-);void main() key,char i; for(i=0;i<3;i+) P2=0x00;delay(500); P2=0xff; delay(500)while(1) P2=P3;工学院实验报告姓名:学号:班级:成绩:实验名称:指示灯循环控制一、实验目的:熟悉Vision4 编译软件,掌握 C51 编程与调试方法。二、实验原理:实验电路图如图所示,图中 8 只 LED 指示灯接于 P0 口,且都接有上拉电阻。时钟电路、复位电路、片选电路与前面的实验电路相同。工学院实验报告在编程软件的配合下,要求实现如下功能:8 只发光二极管做循环点亮控制,且亮灯顺序为 D1D2D3···D8D7···D1,无限循环,两次亮灯的时间间隔约为 0.5s。软件编程原理为:首先使 P0.01,其余端口0,这样可使 D1 灯亮,其余灯灭;软件延时 0.5s 后, 使 P0 口整体左移 1 位,得到 P0.11,其余端口0,这样可使 D2 灯亮其余灯灭;照此思路 P0 整体左移 7 次,再右移 7 次,如此无限往复即刻实现上述功能。三、实验结果图:工学院实验报告··········经检验,其余指示灯循环正常四 、 实 验 程 序 : #include"reg51.h"unsigned char led=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f; void delay(unsigned char time)unsignedintj=15000; for(;time>0;time-)for(;j>0;j-);void main()char i; while(1)for(i=0;i<=7;i+)P0=ledi; delay(50);汤京度妾犬泾工学院实验报告for(i=6;i>=1;i-)P0=ledi; delay(500);(丈翌 1 学g联慫芒):'1 学f 、I尘心 E 姓名:学号:班级:成绩:叮一工学院实验报告实验名称:指示灯/数码管的中断控制一、实验目的:掌握外部中断原理,学习中断编程与程序调试方法。二、实验原理:实验原理图如图所示,图中按键 K1 和 K2 分别接于 P3.2 和 P3.3,发光二极管 D1接于 P0.4,共阴极数码管 LED1 接于 P2 口。时钟电路、复位电路、片选电路忽略。在编程软件的配合下,要求实现如下功能:程序启动后,D1 处于熄灯、LED1 处于黑屏状态 单击 K1,可使 D1 亮灯状态反转一次;单击K2,可使 LED1 显示值加 1,并按十六进制数显示,达到F 后重新从 1 开始。软件编程原理为:K1 和 K2 的按键动作分别作为INT 0 和 INT1的中断请求,在中断函数中进行指示灯和数码管的信息处理。初始化后,主函数处于无限循环状态,等待中断请求。三、实验结果图:工学院实验报告四、实验程序: #include<reg51.h> sbit P0_4=P04;unsigned char count=0; unsignedcharled_mod=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x 71;void main()P2=0x00; P0_4=0; EA=1; EX1=EX0=1; IT1=IT0=1;while(1);void INT_OSVR()interrupt 0 P0_4=!P0_4;void INNT_1SVR()interrupt 2 count+;汤京度妾犬泾工学院实验报告if(count=16) count=1 P2=led_modcount(丈翌 1 学g联慫芒):'1 学f 、I尘心 E 叮一工学院实验报告姓名:学号:班级:成绩:实验名称:电子秒表显示器一、实验目的:掌握中断和定时/计数器工作原理,熟悉 C51 编程与调试方法。二、实验原理:实验电路原理图如图所示,该电路图与实验1 基本相同,不再赘述。在编程软件配合下,要求实验如下功能:数码管的初始显示值为“00”;当 1s 产生时,秒计数器加 1;秒计数到 60 时清 0,并从“00”开始,如此周而复始进行。软件编程原理为: 采用 T0 定时方式 1 中断法编程,其中 1s 定时采用 20 次 50ms 定时中断的方案实现。汤京度岳女培工学院实验报告三、实验结果图:酗i9平3ci 气f5.+t,g想1KO产尸己 斗晕 心 1中 ,“”“".,' ( 1 , 主,t ,,Q啤!.,;.: ·目,5.5 守 志雷户 已 纳片| , I . ,l 1 | | ° “玉妞 刚 沁 T邯 OO粒 1辽 值加中儿必 饲气? 袄 ·. - -"'"和心 1匀, 因 正 , ,管皿如,?,'1" t ',父睬之贮巴(士忑兰1 学沪g§ + 叩 02 凹51c,.6,回89u8µ 气 女 心3+i+L l".峙9. 琶&lilp , ,圣计饮 比15 , ," 人”屯山 , 心 “”“';1匕啤',八蠹DEl6睾1 学岛 翰 詹 宣·?| Br/K 宁/ 3 llAf 圃 丰 eor| , I ' 1 I I | 1 心 ,H 幻 平 氧 l 沁 氏 噙 脏 肛 甚 孺 nm.,“ 4 心叩 巴·艾 日 知 ° "··/f.了芹沁 . 于恤士 如 to - rn: 石 王已 l ,._- a 一 ” ? 卓 了 6 , 心叮 一 召工学院实验报告四、实验程序: #include<reg51.h> unsigned char count=0; unsigned char s=0;unsigned char led_mod10= 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f; timer0() interrupt 1 count+; if(count=20) count=0; s+;if(s=60) s=0;P0=led_mods/10; P2=led_mods%10; TH0=0x3c; TL0=0xb0;main()TMOD=0x01; TH0=0x3c; TL0=0xb0;P0=led_mods/10; P2=led_mods%10; ET0=1;EA=1; TR0=1;while(1);工学院实验报告姓名:学号:班级:成绩:实验名称:双机通信一、实验目的掌握串行口通信工作原理。二、实验原理实验的电路原理图如图所示,图中 1#机的发送线与 2#机的接收线相连,1#机的接收线与2#机的发送线相连,共阴极 BCD 数码管 BCD_LED1 和 BCD_LED2 分别接各机的 P2 口,两机共地(默认),晶振为 11.0592MHz,波特率为 2400bps,串口方式 1。实现功能为:通信中增加奇偶校验功能,即甲机在循环发送数据(0F)的同时发送相应奇偶校验码,乙机接收后先进行奇偶校验。若结果无误,在向甲机返回的接收值中使可编程位置1;若结果有误,则使可编程位清 0。甲机根据返回值中的可编程位作出发送新数据或重发当前数据的抉择。甲、乙两机都在各自 BCD 数码管上显示当前数据。三、软件编程原理1#采用查寻法编程,根据RI 和 TI 标志的软件查询结果完成收发过程;2#机采用中断法编程,根据 RI 和 TI 的中断请求,在中断函数中完成收发过程。实验原理图:汤京度岳女泾工学院实验报告四、实验结果图:, ' '雪 t < I l<lp ,平氏一'·1 匹俨T 量“” ,无k.,' . ,.记 品, 恤·宣.· -:. li,l lil ;JIA 国 十 心P厂丈罕兰忑空沪(+·=归 十·义立 佩白 , 尸 昌比嘎Ri.雪” 1. .,.,.w T霓”“'充""'':睬之 慫芒rllO ·II'” “ ' 何 凡 暑 心 n 口 mm? 咂 叩 叩 K I1l妇立,“ 七年·“” 心r "J 立1,二“了I 了? /, 二 二 二 1, m平 g口 5 '"' 卫雪 l. L I“", . 1. . .,学) 翠l 已 晶 I'll 凸 B lil 乓I+c3厂O “'”“'何 上一 nIll m立1”詈盲盯1 兀"''"''习+=, 乒 羹可 一无 井 谕· 片氧刁谕 石崔c石一”“'心 吓·J勺心1,“ ' . 立 咖 飞 匕 r,心= 闪 ?凸,:4 石,伈l五、实验程序:叮一2工学院实验报告U1: #include<reg51.h>#define uchar unsigned char Charcodemap=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x7 9,0x71;void delay(unsigned int time)unsigned int j=0; for(;time>0;time-) for(j=0;j<125;j+);void main(void)unsigned char counter=0; P2=0x3f;TMOD=0x20; TH1=0xf4; TL1=0xf4; PCON=0x00; TR1=1; SCON=0x50;while(1)ACC=counter; TB8=P;SBUF=counter; while(TI=0); TI=0;while(RI=0); RI=0; if(RB8=1)P2=mapcounter; if(+counter>15) counter=0; delay(500);U2: #include<reg51.h>#define uchar unsigned char工学院实验报告charcodemap=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71;void main(void)P2=0x3f; TMOD=0x20; TH1=0xf4; TL1=0xf4; PCON=0x00; TR1=1; SCON=0x50; ES=1;EA=1;while(1);void receive(void) interrupt 4unsigned char receiv; while(RI=1)RI=0;receiv=SBUF; ACC=receiv; if(P!=RB8)TB8=1;else TB8=0; SBUF=receiv; while(TI=0); TI=0;P2=mapreceiv;