单片机实验报告含仿真设计

合集下载

单片机实验报告

单片机实验报告
unsigned int second;
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; //取次低位

proteus单片机实验报告

proteus单片机实验报告

proteus单片机实验报告
Proteus单片机实验报告
一、实验目的
本次实验旨在通过Proteus单片机仿真软件,探索单片机的基本原理和应用,加深对单片机工作原理的理解,提高对单片机编程的熟练程度。

二、实验内容
1. 搭建单片机电路
在Proteus中选择合适的单片机模型,搭建基本的单片机电路,包括单片机、晶振、电源等。

2. 编写程序
利用Proteus提供的编程环境,编写简单的单片机程序,如LED灯闪烁、数码管显示等。

3. 仿真调试
通过Proteus的仿真功能,调试程序,观察单片机在仿真环境下的运行情况,检查程序是否正常运行。

三、实验步骤
1. 打开Proteus软件,选择合适的单片机模型,搭建单片机电路。

2. 编写简单的单片机程序,如让LED灯交替闪烁。

3. 在Proteus中进行仿真调试,观察程序运行情况。

四、实验结果
通过实验,我们成功搭建了单片机电路,并编写了简单的程序。

在Proteus的仿真环境下,LED灯按照设定的程序交替闪烁,证明程序正常运行。

五、实验总结
通过本次实验,我们加深了对单片机的理解,掌握了在Proteus中搭建单片机电路、编写程序并进行仿真调试的基本方法。

同时,也提高了对单片机编程的熟练程度。

总之,Proteus单片机实验为我们提供了一个良好的学习平台,使我们能够更好地理解单片机的工作原理和应用,为以后的学习和实践打下了坚实的基础。

希望通过不断地实践和探索,能够更深入地理解单片机的原理,并在实际应用中发挥其巨大的作用。

单片机仿真实验报告

单片机仿真实验报告
单片机仿真实验报告
一、功能描述:
用P1口控制8个LED灯的两灭。其亮灭规律如下:
第一次8个灯依次点亮,第二次每隔一个灯点亮,第三次每隔三个灯点亮……如此循环。
二、器件简介:
80c51----采用40引脚双列直插式DIP,内有128个RAM单元及4K的ROM。80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。
此外,该仿真中还使用了电阻,电容,电解电容,晶振,红色的LED和按键开关。
三、硬件原理图
四、软件流程图
五、程序代码
#include <REG51.H>
void Delay(unsigned int d)
{
unsigned int i,j;
for(i=0;i<d;i++)
for(j=0;j<120;j++);
}
main()
{
unsigned char m =0,n=0,l=0;
while(1)
{
for(n=1;n<7;n++)
{m=0;
for(l=0;l<(8/= ~(0x01<<m);
m = (m+n)%8;
Delay(500);
}
}
}
}
六、仿真截图

单片机设计报告-带有C语言源程序和proteus仿真图

单片机设计报告-带有C语言源程序和proteus仿真图

单片机课程设计报告河南农业大学机电工程学院目录一、前言—————————————————————3二、功能简介——————————-——————————4三、应用模块————————————————————-5四、设计方框图———————————————————-5五、硬件电路—————————————————————51、键盘部分————————————————————62、LED显示电路——————————————————73、数码管程序——————————————————74、I2C总线AT24C02 ————————————————8六、总图—————————————————————8七、硬件实现图形————————————————9八、程序—————————————————————10九、心得体会———————————————————23十、参考文献———————————————————24课题名称:掉电保护密码锁一、前言:在日常的生活和工作中, 住宅与部门的安全防范、单位的文件档案、财务报表以及一些个人资料的保存多以加锁的办法来解决。

若使用传统的机械式钥匙开锁,人们常需携带多把钥匙, 使用极不方便, 且钥匙丢失后安全性即大打折扣。

随着科学技术的不断发展,人们对日常生活中的安全保险器件的要求越来越高。

为满足人们对锁的使用要求,增加其安全性,用密码代替钥匙的密码锁应运而生。

密码锁具有安全性高、成本低、功耗低、易操作等优点。

在安全技术防范领域,具有防盗报警功能的电子密码锁逐渐代替传统的机械式密码锁,克服了机械式密码锁密码量少、安全性能差的缺点,使密码锁无论在技术上还是在性能上都大大提高一步。

随着大规模集成电路技术的发展,特别是单片机的问世,出现了带微处理器的智能密码锁,它除具有电子密码锁的功能外,还引入了智能化管理、专家分析系统等功能,从而使密码锁具有很高的安全性、可靠性,应用日益广泛。

随着人们对安全的重视和科技的发展,许多电子智能锁(指纹识别、IC卡辨认)已在国内外相继面世。

单片机仿真实习报告

单片机仿真实习报告

一、实习目的本次单片机仿真实习的主要目的是通过使用仿真软件,对单片机的原理和应用进行深入理解。

通过模拟单片机的实际工作过程,掌握单片机的基本编程方法和调试技巧,提高实际操作能力,为后续单片机相关课程的学习和工作打下坚实基础。

二、实习内容1. 仿真软件介绍本次实习采用Proteus软件进行仿真实验,Proteus是一款功能强大的仿真软件,能够模拟单片机的硬件电路,并提供丰富的编程环境。

2. 实验项目一:LED灯闪烁(1)设计目的:掌握单片机基本编程方法,实现LED灯的闪烁。

(2)实验步骤:a. 创建Proteus仿真项目,添加AT89C51单片机、LED灯和电源等元件。

b. 编写程序,设置单片机的工作模式,通过P1端口控制LED灯的亮灭。

c. 在Proteus中运行程序,观察LED灯的闪烁效果。

3. 实验项目二:按键输入(1)设计目的:学习按键输入的原理,实现按键控制LED灯的亮灭。

(2)实验步骤:a. 在Proteus中添加按键元件,并将其与单片机的P1端口连接。

b. 编写程序,检测按键状态,通过P1端口控制LED灯的亮灭。

c. 在Proteus中运行程序,观察按键控制LED灯的效果。

4. 实验项目三:温度传感器(1)设计目的:学习温度传感器的应用,实现温度显示和报警功能。

(2)实验步骤:a. 在Proteus中添加DS18B20温度传感器,并将其与单片机的P1端口连接。

b. 编写程序,读取温度传感器的数据,通过LCD显示屏显示温度值。

c. 设置温度报警阈值,当温度超过阈值时,LED灯闪烁报警。

5. 实验项目四:数码管显示(1)设计目的:学习数码管的应用,实现数字显示功能。

(2)实验步骤:a. 在Proteus中添加数码管元件,并将其与单片机的P1端口连接。

b. 编写程序,将数字数据显示在数码管上。

c. 在Proteus中运行程序,观察数码管显示效果。

三、实习总结1. 通过本次仿真实习,我对单片机的原理和应用有了更深入的理解,掌握了单片机的基本编程方法和调试技巧。

单片机实验报告

单片机实验报告

一、实验目的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按下后的操作}}}```③ 将程序编译并下载到单片机中,观察按键的扫描和识别效果。

单片机项目实训实验报告

单片机项目实训实验报告

一、实验背景与目的随着科技的发展,单片机作为嵌入式系统的重要组成部分,广泛应用于各个领域。

为了提高学生的实践能力和创新精神,我们选择了单片机项目实训作为实验课程。

本次实训旨在让学生掌握单片机的基本原理,熟悉其硬件和软件设计,并通过实际项目实践,提高学生的动手能力和解决问题的能力。

二、实验内容与步骤本次实训项目为设计一款基于ATmega16单片机的简易计算器。

该计算器能够实现基本的四则运算,并通过矩阵键盘和LCD1602显示屏进行人机交互。

1. 实验内容(1)设计计算器的硬件电路,包括ATmega16单片机、矩阵键盘、LCD1602显示屏等。

(2)编写计算器的软件程序,实现四则运算功能。

(3)测试计算器的功能,确保其正常运行。

2. 实验步骤(1)硬件设计根据实验要求,设计计算器的硬件电路。

主要包括以下步骤:1)选择合适的ATmega16单片机开发板。

2)设计矩阵键盘电路,包括按键布局和连接方式。

3)设计LCD1602显示屏电路,包括数据线和控制线。

4)将以上电路连接到ATmega16单片机开发板上。

(2)软件设计编写计算器的软件程序,实现以下功能:1)初始化ATmega16单片机,设置时钟频率。

2)初始化LCD1602显示屏,显示“0”作为初始值。

3)编写矩阵键盘扫描程序,检测按键状态。

4)根据按键输入,执行相应的四则运算。

5)将运算结果显示在LCD1602显示屏上。

6)实现清零、退格等功能。

(3)测试与调试1)将编写好的程序烧录到ATmega16单片机中。

2)连接计算器硬件电路,进行功能测试。

3)针对测试过程中发现的问题,进行调试和修改。

4)确保计算器能够正常运行,实现预期功能。

三、实验结果与分析经过实际操作和调试,我们成功设计并实现了一款基于ATmega16单片机的简易计算器。

该计算器能够实现基本的四则运算,并通过矩阵键盘和LCD1602显示屏进行人机交互。

以下是实验结果分析:1. 硬件设计方面,我们选择了合适的ATmega16单片机开发板,并设计了简洁的矩阵键盘和LCD1602显示屏电路。

单片机仿真模拟实验报告

单片机仿真模拟实验报告

计算机专业类课程实验报告课程名称:单片机原理及应用学院:数学科学学院专业:数学与应用数学学生姓名:梁南学号:2011101020013指导教师:米源日期:2016年4月15日电子科技大学实验报告实验一一、实验名称:秒表设计二、实验学时:4三、实验内容和目的:设计一个秒表,可以利用按键实现开始、停止计时的功能。

四、实验原理:该实验要求进行计时并在数码管上显示时间,用AT89C51单片机来实现,按设计要求本实验要采用四个按键,其中复位按键在电路中,不需要再用程序控制,在用protues仿真时用不到,其他三个按键可以用I/O端口来控制,写上其对应的程序,延时一秒钟可以用中断来控制,计算好中断次数.写程序时要加上防止按键抖动程序,选择好数码管的显示方式,分为静态和动态,想减少I/O 口的使用就用动态,想编程简单就是用静态,五、实验器材(设备、元器件)proteus模拟六、实验步骤:用proteus和keil实现联调,做软件仿真七、实验数据及结果分析:一些子程序的设计1)、显示精度为1秒程序if(++countor==20) { countor=0;ViewData[0]=Tab[seconed/10];ViewData[1]=Tab[seconed%10];++seconed;2)、消除按键抖动程序keynum=P1;if(keynum!=0xff){ delay(10);temp=P1;if(keynum==temp)八、实验结论、心得体会和改进建议:相比正常时间流动,该仿真的结果反而慢一些,具体尚不明白原因。

在设计中有好多问题都是因为理论知识不扎实,在有些管脚的置零置一上,概念的模糊,这使我明白要把所学到的理论转化为实践需要一段努力学习的过程;在做一个设计的过程中,一定要注意理论和实践同步进行,光有理论知识还是远远不够的电子科技大学实验报告实验二一、实验名称:两位数加法器二、实验学时:4三、实验内容和目的:设计并用proteus实现一个两位数加法器四、实验原理:计数器是一种重要的时序逻辑电路,它不仅计数,而且用作定时控制及进行数字运算等。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机原理及应用课程实验报告专业:班级::学号:实验一、keilC51及proteus软件的使用一、实验目的:1、掌握keil和proteus软件的基本操作2、通过具体实例掌握keil和proteus软件的使用。

二、实验原理: keil使用步骤,proteus使用步骤三、程序:四、实验结果分析:五、总结:学会了使用keil和proteus软件,掌握了利用keil和proteus软件进行仿真的步骤。

实验二、并行输入/输出接口实验一、实验目的:1、进一步熟悉keil仿真软件、proteus仿真软件的使用。

2、了解并熟悉单片机I/O口和LED灯的电路结构,学会构建简单的流水灯电路。

3、掌握C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。

二、实验原理:MCS 51单片机的串行口在实际使用中通常用于三种情况:利用方式 0 扩展并行 i/0 接口:利用方式 1 实现点对点的双机通信;利用方式 2 或方式 3 实现多机通信。

利用方式 0 扩展并行 i/0 接口 MCS 5 1 单片机的串行口在方式 0 时,若外接一个串入并出的移位寄存器,就可以扩展并行输出口;若外接一个并入串出的移位寄存器,就可以扩展并行输入口。

三、程序:#include<reg51.h>sbit P1_0=P1^0;void main(){unsigned char i;unsigned int j;SCON=0x00;i=0x01;for(;;){P1_0=0;SBUF=I;while(!TI) {i}P1_0=1;TI=0;for(j=0;j<=254;j++){;}i=i*2;if(i==0x00) i=0x01;}}四、实验结果分析:五、总结:进一步熟悉了keil仿真软件、proteus仿真软件的使用。

了解并熟悉单片机I/O口和LED灯的电路结构,学会了构建简单的流水灯电路。

掌握了C51中单片机I/O口的编程方法和使用I/O口进行输入输出的注意事项。

实验三、定时器/计数器实验(1)—查询方式产生500us的方波一、实验目的:1、熟悉keil仿真软件、proteus的使用和C51定时程序的编写;2、了解51单片机中定时、计数的概念,熟悉51单片机部定时/计数器的结构与工作原理;3、掌握查询方式处理定时/计数的工作过程,4、掌握定时/计数器在C51中的设置与程序的书写格式以及使用方法。

二、实验原理:通常利用定时 / 计数器来产生周期性的波形。

利用定时 / 计数器产生周期性波形的基本思想是:利用定时 / 计数器产生周期性的定时,定时时间到则对输出端进行相应的处理。

例如产生周期性的方波只需定时时间到对输出端取反一次即可。

不同的方式定时的最大值不同,如定时的时间很短,则选择方式 2 。

方式 2 形成周期性的定时不需重置初值;如定时比较长,则选择方式 0 或方式 1 ;如时间很长,则一个定时 / 计数器不够用,这时可用两个定时 / 计数器或一个定时 / 计数器加软件计数的方法。

三、程序:#include <reg51.h>sbit P1_0=P1^0;void main(){TMOD=0x02;TH0=0x06;TL0=0x06;TR0=1;for(;;){if(TF0){TF0=0;P1_0=!P1_0;}}}四、实验结果分析:五、总结:熟悉了keil仿真软件、proteus的使用和C51定时程序的编写;了解51单片机中定时、计数的概念,熟悉了51单片机部定时/计数器的结构与工作原理;掌握了查询方式处理定时/计数的工作过程,掌握了定时/计数器在C51中的设置与程序的书写格式以及使用方法。

实验四、定时器/计数器实验(2)—中断方式产生500us的方波一、实验目的:1、熟悉keil仿真软件、proteus的使用和C51定时程序的编写;2、进一步熟悉51单片机部定时/计数器的结构与工作原理;3、掌握中断方式处理定时/计数的工作过程。

二、实验原理从 P 1.0 输出周期为 500 us 的方波,只需 P 1.0 每 250 us 取反后一次即可。

当系统时钟为 12MHz 时,定时 / 计数器 TO 工作于方式 2 时,最大的定时时间为 256 us ,满足 250us 的定时要求,方式控制字应没定为 000000 1 0B ( 02H )。

系统时钟为12Mhz ,定时 250us,计数值N 为 250 ,初值 X = 256 -250 =6 ,则 THO = TLO =06 H 。

:三、程序:#include <reg51.h>sbit P1_0=P1^0;void main(){TMOD=0x02;TH0=0x06;TL0=0x06;EA=1;ET0=1;TR0=1;while(1);}void time0_int(void) interrupt 1{P1_0=!P1_0;}四、实验结果分析:五、总结:熟悉了keil仿真软件、proteus的使用和C51定时程序的编写;进一步熟悉了51单片机部定时/计数器的结构与工作原理;掌握了中断方式处理定时/计数的工作过程。

实验五:串行接口实验(1)—工作方式0扩展并行IO口一、实验目的:1, 掌握串行口工作方式0的程序设计;2、熟悉51单片机串口的结构和工作原理3、掌握串口工作方式0的工作特点。

二、实验原理:MCS 51单片机的串行口在实际使用中通常用于三种情况:利用方式 0 扩展并行 i/0 接口:利用方式 1 实现点对点的双机通信;利用方式 2 或方式 3 实现多机通信。

利用方式 0 扩展并行 i/0 接口 MCS 5 1 单片机的串行口在方式 0 时,若外接一个串入并出的移位寄存器,就可以扩展并行输出口;若外接一个并入串出的移位寄存器,就可以扩展并行输入口。

三、程序:#include<reg51.h>sbit P1_0=P1^0;void main(){unsigned char i;unsigned int j;SCON=0x00;i=0x01;for(;;){P1_0=0;SBUF=I;while(!TI) {i}P1_0=1;TI=0;for(j=0;j<=254;j++){;}i=i*2;if(i==0x00) i=0x01;}}四、实验结果分析:五、总结:掌握了串行口工作方式0的程序设计;熟悉了51单片机串口的结构和工作原理。

掌握了串口工作方式0的工作特点。

实验六:串行接口实验(2)—双机通信一、实验目的:1、掌握串行口工作方式1的程序设计;2、进一步掌握51单片机串口的结构和工作原理3、掌握串口工作方式1的工作特点。

二、实验原理:甲、乙两机处理过程一样,程序相同。

方式选择方式1 :即 8 位异步通信方式,波特率为 1200bps ,既要发送,也要接收,所以串口控制字为 50H 。

由于选择的是方式 1, 波特率由定时 / 计数器 TI 的溢出率和电源控制寄存器 PCON 中的 SMOD 位决定,则需对定时 / 计数器 Tl 初始化。

设振荡频率为 12MHz ,取 SMOD=0,波特率为1200bps ,定时 / 计数器 T1选择为方式 2 ,则初值如下初值 = 256 一 foscx2SMOD /(12 × 波特率× 32 ) = E6H 根据要求,定时 / 计数器 T1的方式控制字为 20H 。

发送过程采用查询方式,在主程序中读取 PI 口的开关状态,通过串口发送;接收过程采用中断方式,接收的容送 P2 口,通过 P2 口的发光二极管显示。

三、程序:#include <reg51.h>void main(){unsigned char i;SP=0x60;SCON=0X50;TMOD=0x20;TL1=0xe6;TH1=0xe6;TR1=1;EA=1;ES=1;while(1){P1=0XFF;i=P1;SBUF=i;while(TI==0);TI=0;}}void funins(void) interrupt 4{EA=0;RI=0;P2=SBUF;EA=1;}四、实验结果分析:五、总结:掌握了串行口工作方式1的程序设计;进一步掌握了51单片机串口的结构和工作原理,掌握了串口工作方式1的工作特点。

实验七:中断系统实验(1)—交通灯模拟控制一、实验目的1、掌握单片机外部中断的原理及过程。

2、掌握单片机外部中断程序的设计方法。

3、掌握单片机外部中断时中断方式的选择方法。

二、实验原理:交通灯正常运行时,可分为 4 个状态:状态 1 ,东西方向绿灯,南北方向红灯20 秒,状态编码“ 00100001 ” ;状态 2 ,东西方向黄灯,南北方向红灯3 秒,状态编码“ 01000001 ” ;状态 3 ,南北方向绿灯,东西方向红灯 20 秒,状态编码“ 00010010 ” 状态 4 ,南北方向黄灯,东西方向红灯 3 秒,状态编码“ 0001m00 ” 。

东西发生异常时,东西通行,南北禁止,东西方向绿灯闪,南北方向红灯闪 60 秒;南北发生异常时,南北通行,东西禁止,南北方向绿灯闪,东西方向红灯闪 60 秒。

主程序中实现交通灯正常运行过程,两种异常用外中断 0 和外中断 1 管理,外接开关模拟异常发生,在中断服务程序中实现异常处理,在主程序中开放外中断 0 和外中断 1 ,设置为边沿触发方式。

时间单位采用 500ms 信号,由定时计数器 0 定时 50ms ,循环 10 次产生,定时计数器 0 采用查询方式,主程序中设定定时计数器 0 的工作方式:方式 1 。

三、程序:#include <reg51.h>void delay500ms(unsigned char k); void main(void){SP=0x60;TMOD=0x01;IE=0x85;TCON=0x05;while(1){P1=0x21;delay500ms(40);P1=0x41;delay500ms(6);P1=0x12;delay500ms(40);P1=0x14;delay500ms(6);}}void int_0(void) interrupt 0{unsigned char i1,i2;i1=P1;for(i2=0;i2<60;i2++){P1=0x21;delay500ms(1);P1=0x00;delay500ms(1);}P1=i1;}void int_1(void) interrupt 2{unsigned char j1,j2;j1=P1;for(j2=0;j2<60;j2++){P1=0x12;delay500ms(1);P1=0x00;delay500ms(1);}P1=j1;}void delay500ms(unsigned char m){unsigned char k1,k2;TH0=0x3C;TL0=0xB0;TR0=1;for(k1=0;k1<m;k1++){for(k2=0;k2<10;k2++){while(!TF0);TF0=0;TH0=0x3C;TL0=0xB0;}}}四、实验结果分析:五、总结:掌握了单片机外部中断的原理及过程。

相关文档
最新文档