单片机c语言程序设计---单片机实验报告
单片机实验报告

单片机实验报告学院:姓名:学号:指导老师:目录第一章实验内容、目的及要求 (2)一、内容 (2)二、目的及要求 (3)第二章实验 (3)实验一数字量输入输出实验 (3)实验二定时器/计数器实验 (4)实验三A/D、D/A转换实验 (11)实验四串行通信设计 (20)第三章实验体会 (28)第一章实验内容、目的及要求一、内容实验一数字量输入输出实验阅读、验证C语言程序功能。
使用汇编语言编程,完成实验指导书之“3.1 数字量输入输出实验”基本实验项目。
实验二定时器/计数器实验阅读、验证C语言程序功能。
使用汇编语言编程,完成实验指导书之“3.3 定时/计数器实验”基本实验项目。
提高部分:定时器控制LED灯由单片机内部定时器1,按方式1工作,即作为16位定时器使用每0.05秒钟T1溢出中断一次。
P1口的P1.0-P1.7分别接八个发光二极管。
编写程序模拟时序控制装置。
开机后第一秒钟L1,L3亮,第二秒钟L2,L4亮,第三秒钟L5,L7亮,第四秒钟L6,L8亮,第五秒钟L1,L3,L5,L7亮,第六秒钟L2,L4,L6,L8亮,第七秒钟八个LED灯全亮,第八秒钟全灭,以后又从头开始,L1,L3亮,然后L2,L4亮……一直循环下去。
实验三A/D、D/A转换实验阅读、验证C语言程序功能。
使用汇编语言编程,完成实验指导书之“4.3 A/D转换实验”项目(P64)和“4.4 D/A转换实验”项目。
提高部分:(要求:Proteus环境下完成)小键盘给定(并显示工作状态),选择信号源输出波形类型(D/A 转换方式),经过A/D采样后,将采样数据用LED灯,显示当前模拟信号值大小及变化状态。
实验四串行通讯实验阅读、调试C语言程序功能。
使用汇编语言编程,完成实验指导书之“3.7 串口通讯实验”项目。
(要求:实验仪器上完成)提高部分:(要求:Proteus环境下完成)利用单片机实验系统,实现与PC机通讯。
功能要求:将从实验系统键盘上键入的数字,字母显示到PC机显示器上,将PC机键盘输入的字符(0-F)显示到单片机实验系统的数码管上。
单片机实验报告

unsigned int count;
void display(unsigned int d);
void delay(unsigned int n);
main()
{
second=0;
count=0;
TMOD=0x61; //T0定时器方式1 T1计数器方式2
TH1=255; TL1=255; //T2计数初值计一次即中断
}
else
{TR1=0;TR0=0;TH0=(65536-50000)/256;TL0=(65536-50000)%256;} //满一分钟停止TR1
}
void time1(void)interrupt 3 using 2
{
second++;
}
void int_1() interrupt 0 using 3 //0号中断(外中断0),使用3号寄存器组
{
display(second);
}
}
void time0(void) interrupt 1 using 1
{
count++; //中断一次计一次数
if(count<1200)
{
TH0=(65536-50000)/256; //T1计数初值(65535-50000)/fosc/12 50ms
TL0=(65536-50000)%256;
outdata[2]=10; //不显示
outdata[3]=d/10000; //取最高位
outdata[4]=d/1000%10; //取次高位
outdata[5]=d/100%10; //取次次高位
outdata[6]=ቤተ መጻሕፍቲ ባይዱ/10%10; //取次低位
单片机实验报告c语言

单片机实验报告c语言单片机实验报告C语言引言:单片机是一种集成电路,具有微处理器的功能。
它可以用于控制各种电子设备,从家电到汽车电子,都可以看到单片机的身影。
在本次实验中,我将通过C语言编程来控制单片机,实现一些简单的功能。
实验一:LED灯控制在这个实验中,我使用了一块基于8051单片机的开发板。
首先,我将一个LED 灯连接到开发板的引脚上。
然后,我使用C语言编写了一个简单的程序,通过控制引脚的高低电平来控制LED灯的亮灭。
程序的逻辑很简单,当引脚输出高电平时,LED灯亮起;当引脚输出低电平时,LED灯熄灭。
通过调整程序中的延时时间,我可以控制LED灯的闪烁频率。
实验二:数码管显示在这个实验中,我使用了四个七段数码管和一个74HC595芯片。
数码管是一种常见的显示设备,可以显示数字和一些字母。
74HC595芯片是一个串行输入并行输出的移位寄存器,可以通过串行数据输入来控制数码管的显示。
通过C语言编程,我可以将数字数据转换为对应的二进制码,并通过74HC595芯片将数据发送到数码管上,从而实现数字的显示。
我还可以通过编写程序来实现数码管的滚动显示、闪烁等效果。
实验三:温度传感器在这个实验中,我使用了一个温度传感器和一个ADC0804芯片。
温度传感器可以将温度转换为电压信号,而ADC0804芯片可以将模拟信号转换为数字信号。
通过将温度传感器和ADC0804芯片连接到单片机开发板上,并使用C语言编程,我可以实时获取温度信息,并将其显示在数码管上。
这样,我就可以实时监测环境温度,并做出相应的控制。
实验四:蜂鸣器控制在这个实验中,我使用了一个蜂鸣器和一个可变电阻。
蜂鸣器是一种能够发出声音的设备,可以用于报警、提醒等场景。
通过调节可变电阻的电阻值,我可以改变蜂鸣器的声音的频率和音量。
通过C语言编程,我可以控制蜂鸣器的开关和声音的频率,从而实现不同的声音效果。
实验五:红外遥控在这个实验中,我使用了一个红外接收模块和一个红外发射模块。
单片机实验报告

单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。
二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil)4、下载器5、示波器6、万用表三、实验内容1、点亮 LED 灯通过编写简单的程序,控制单片机的引脚输出高低电平,从而点亮或熄灭连接在该引脚上的 LED 灯。
这是单片机最基础的操作之一,旨在熟悉单片机的编程环境和引脚控制方式。
2、数码管显示利用单片机驱动数码管,实现数字的显示。
需要了解数码管的工作原理和驱动方式,通过编程控制数码管的段选和位选信号,显示不同的数字。
3、按键输入设计按键电路,通过读取按键的状态,实现对单片机系统的输入控制。
例如,通过按键切换不同的显示模式或控制其他外部设备。
4、定时器/计数器应用使用单片机的定时器/计数器功能,实现定时、计数等操作。
例如,设计一个定时闪烁的 LED 灯,或者通过计数器统计外部脉冲的个数。
5、串口通信实现单片机与计算机之间的串口通信,将单片机采集到的数据发送到计算机上进行显示和处理,或者接收计算机发送的指令对单片机系统进行控制。
四、实验原理1、单片机的基本结构单片机通常由中央处理器(CPU)、存储器(包括程序存储器和数据存储器)、输入输出接口(I/O 口)、定时器/计数器、中断系统等部分组成。
2、编程语言本次实验采用 C 语言进行编程。
C 语言具有简洁、高效、可移植性强等优点,非常适合单片机的开发。
3、引脚功能单片机的引脚分为电源引脚、时钟引脚、复位引脚、I/O 引脚等。
通过对这些引脚的合理配置和控制,可以实现各种功能。
4、数码管驱动原理数码管分为共阴极和共阳极两种类型。
通过控制数码管的段选和位选信号,可以使数码管显示不同的数字和字符。
5、按键检测原理按键通常采用上拉电阻或下拉电阻的方式连接到单片机的I/O 引脚。
单片机实验报告

一、实验目的1. 熟悉单片机的硬件组成和基本工作原理。
2. 掌握单片机最小系统的搭建方法。
3. 学习使用单片机编程软件进行程序编写和调试。
4. 通过实际操作,加深对单片机应用的理解。
二、实验环境1. 实验设备:MCS-51单片机实验板、电源模块、面包板、连接线、LED灯、蜂鸣器、按键等。
2. 软件环境:Keil uVision5、Proteus仿真软件。
三、实验内容1. 点亮LED灯(1)实验目的:掌握单片机I/O口的使用,实现LED灯的点亮。
(2)实验步骤:① 将LED灯的阳极连接到单片机的P1.0口,阴极连接到GND。
② 在Keil uVision5中新建工程,编写程序如下:```cvoid main() {while (1) {P1 = 0xFF; // 点亮LED灯delay(500000); // 延时P1 = 0x00; // 熄灭LED灯delay(500000); // 延时}}③ 将程序编译并下载到单片机中,观察LED灯的点亮效果。
2. 蜂鸣器控制(1)实验目的:掌握单片机I/O口的使用,实现蜂鸣器的控制。
(2)实验步骤:① 将蜂鸣器的正极连接到单片机的P1.1口,负极连接到GND。
② 在Keil uVision5中编写程序如下:```cvoid main() {while (1) {P1 = 0x02; // 使能蜂鸣器delay(100000); // 延时P1 = 0x00; // 禁止蜂鸣器delay(100000); // 延时}}```③ 将程序编译并下载到单片机中,观察蜂鸣器的鸣叫效果。
3. 按键扫描(1)实验目的:掌握单片机I/O口的使用,实现按键的扫描和识别。
(2)实验步骤:① 将两个按键分别连接到单片机的P1.2和P1.3口。
② 在Keil uVision5中编写程序如下:void main() {while (1) {if (P1 & 0x04) { // 检测按键1是否按下// 执行按键1按下后的操作}if (P1 & 0x08) { // 检测按键2是否按下// 执行按键2按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。
【报告】南邮单片机实验报告

【报告】南邮单片机实验报告一、实验目的本次南邮单片机实验旨在通过实际操作和实践,深入了解单片机的工作原理、编程方法以及其在实际应用中的功能实现。
通过完成一系列实验任务,提高我们对单片机系统的设计、开发和调试能力,为今后在电子信息领域的学习和工作打下坚实的基础。
二、实验设备1、单片机开发板2、计算机3、编程软件(如 Keil C51)4、下载器5、示波器6、万用表三、实验内容(一)点亮 LED 灯1、原理通过控制单片机的引脚输出高低电平,来控制连接在引脚上的 LED 灯的亮灭。
2、编程实现使用 C 语言编写程序,设置相应引脚为输出模式,并通过循环语句实现 LED 灯的闪烁效果。
3、调试与观察将程序下载到单片机中,观察 LED 灯的闪烁情况,使用示波器测量引脚的电平变化,以验证程序的正确性。
(二)数码管显示1、原理数码管由多个发光二极管组成,通过控制不同段的发光二极管的亮灭,可以显示不同的数字和字符。
2、编程实现编写程序,实现数码管的动态扫描显示,将需要显示的数字或字符转换为对应的段码,并通过定时中断实现动态刷新。
3、调试与观察下载程序后,观察数码管的显示效果,检查是否能够正确显示预定的数字和字符。
(三)按键控制1、原理按键连接到单片机的引脚,当按键按下时,引脚的电平发生变化,通过检测引脚电平的变化来实现按键的识别和响应。
2、编程实现设置引脚为输入模式,采用查询或中断的方式检测按键状态,根据按键的不同操作执行相应的功能。
3、调试与观察按下不同的按键,观察系统的响应是否符合预期,如 LED 灯的状态改变、数码管显示内容的变化等。
(四)温度传感器采集与显示1、原理使用数字式温度传感器(如 DS18B20)采集环境温度,传感器将温度转换为数字信号,单片机通过特定的通信协议读取温度数据。
2、编程实现编写驱动程序,实现与温度传感器的通信,读取温度值,并将其转换为合适的显示格式。
3、调试与观察将传感器置于不同的温度环境中,观察数码管或液晶显示屏上显示的温度值是否准确。
单片机c语言编程实训报告

单片机c语言编程实训报告单片机C语言编程实训报告随着科技的不断发展,单片机已经成为了现代电子技术中不可或缺的一部分。
单片机的应用范围非常广泛,从家用电器到工业自动化,从医疗设备到航空航天,都有单片机的身影。
因此,学习单片机编程已经成为了现代电子工程师必备的技能之一。
本次实训的主要目的是让学生掌握单片机C语言编程的基本知识和技能,能够独立完成简单的单片机应用程序设计。
下面将从实训的内容、实训的过程和实训的收获三个方面进行介绍。
一、实训的内容本次实训的内容主要包括以下几个方面:1.单片机的基本知识:学习单片机的基本结构、工作原理、寄存器、中断等知识。
2.C语言基础:学习C语言的基本语法、数据类型、运算符、流程控制语句等知识。
3.单片机C语言编程:学习如何使用Keil C51编译器进行单片机C 语言程序的编写、编译和下载。
4.实验设计:通过实验设计,学习如何使用单片机控制LED灯、蜂鸣器、数码管等外设,实现简单的电子系统控制。
二、实训的过程本次实训的过程主要分为以下几个步骤:1.理论学习:在实训开始前,老师会给我们讲解单片机的基本知识和C语言基础知识,让我们对单片机编程有一个初步的了解。
2.实验设计:在理论学习之后,老师会给我们布置一些实验任务,让我们自己设计程序,实现对LED灯、蜂鸣器、数码管等外设的控制。
在实验设计的过程中,我们需要根据实验要求,设计程序,编译程序,下载程序,然后进行实验验证。
3.实验报告:在完成实验之后,我们需要撰写实验报告,详细记录实验过程、实验结果和实验心得。
实验报告需要包括以下内容:实验目的、实验原理、实验步骤、实验结果、实验分析和实验心得等。
三、实训的收获通过本次实训,我收获了以下几点:1.掌握了单片机C语言编程的基本知识和技能,能够独立完成简单的单片机应用程序设计。
2.加深了对单片机的理解,了解了单片机的基本结构、工作原理、寄存器、中断等知识。
3.提高了自己的实验能力和动手能力,通过实验设计,学会了如何使用单片机控制LED灯、蜂鸣器、数码管等外设,实现简单的电子系统控制。
单片机实验报告c语言

单片机实验报告c语言
单片机实验报告C语言
在当今科技发展迅猛的时代,单片机技术已经成为各种电子设备中不可或缺的一部分。
而C语言作为一种高效的编程语言,也成为了单片机编程的首选语言之一。
本文将介绍一次单片机实验的过程,并以C语言为主要编程语言进行编程。
实验目的:
本次实验的主要目的是通过单片机控制LED灯的亮灭,实现简单的电路控制。
同时,通过C语言编程实现对单片机的控制,加深对C语言和单片机的理解。
实验步骤:
1. 确定实验所需材料:单片机开发板、LED灯、跳线、电阻等。
2. 将LED灯连接到单片机开发板的GPIO口,并通过跳线和电阻连接。
3. 打开单片机开发板的开发环境,新建一个C语言项目。
4. 在C语言项目中编写控制LED灯的程序,包括初始化GPIO口和控制LED灯亮灭的代码。
5. 编译并下载程序到单片机开发板中。
6. 运行程序,观察LED灯的亮灭情况。
实验结果:
经过以上步骤的操作,我们成功地实现了对LED灯的控制。
通过C语言编程,我们可以轻松地控制单片机的各种功能,实现各种电路控制。
同时,通过这次实验,我们对单片机的工作原理和C语言的应用有了更深入的了解。
结论:
本次实验通过C语言编程实现了对单片机的控制,实现了对LED灯的简单控制。
通过这次实验,我们不仅掌握了C语言在单片机编程中的应用,也加深了对单
片机技术的理解。
单片机技术和C语言编程在电子领域有着广泛的应用前景,
希望通过不断的实践和学习,我们可以更好地掌握这些技术,为电子领域的发
展做出更大的贡献。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机c语言程序设计---单片机实验报告
实验目的:
1.掌握单片机的中断的原理、中断的设置,掌握中断的处理及应用
2.掌握单片机的定时器/计数器的工作原理和工作方式,学会使用定时器/计数器
实验内容:
一.定时器/计数器应用程序设计
实验1.计数
功能:用定时器1方式2计数,每计数满100次,将P1.0取反。
(在仿真时,为方便观察现象,将TL1和TH1赋初值为0xfd,每按下按键一次计数器加1,这样3次就能看到仿真结果。
)分析:外部计数信号由T1(P3.5)引脚输入,每跳变一次计数器加1,由程序查询TF1。
方式2有自动重装初值的功能,初始化后不必再置初值。
将T1设为定时方式2,GATE=0,C/T=1,M1M0=10,T0不使用,可为任意方式,只要不使其进入方式3即可,一般取0。
TMOD=60H。
定时器初值为X=82-100=156=9CH,TH1=TL1=9CH。
程序:#include<REGX51.H>
void main()
{
P1_0=0;
TMOD=0x60;
TH1=0xFD;
TL1=0xFD;
ET1=1;
EA=1;
TR1=1;
while(1)
{
}
}
void timer1_Routine()interrupt3
{
P1_0=~P1_0;}
实验2.中断定时
使用定时器定时,每隔10s使与P0、P1、P2和P3端口连接的发光二极管闪烁10次,设P0、P1、P2和P3端口低电平灯亮,反之灯灭。
分析:中断源T0入口地址000BH;当T0溢出时,TF0为1发出中断申请,条件满足CPU响应,进入中断处理程序。
主程序中要进行中断设置和定时器初始化,中断服务程序中安排灯闪烁;TL0的初值为0xB0,TH0的初值为0x3C,执行200次,则完成10s定时。
实验要求:
完成计数实验和中断计数实验。
具体包括绘制仿真电路图、编写c源程序、进行仿真并观察仿真结果,需要保存原理图截图,保存c源程序,对仿真结果进行总结。
程序:#include<REGX51.H>
#include"Delay.h"
int i;int j=0;
void main()
{ P1=0; P2=0;P3=0; P0=0; TMOD=0x01;
TH0=0x3C;
TL0=0xB0;
ET0=1;
EA=1;
TR0=1;
while(1) {
}
}
void timer0_Routine()interrupt1 {
TH0=0x3C;
TL0=0xB0;
j++;
if(j>=150)
{ j=0; for(i=0;i<20;i++)
{
P1=~P1;
P2=~P2;
P3=~P3;
P0=~P0;
Delay(200); } }}
实验分析:
心得体会:。