实验报告(单片机)
单片机实验报告一 单片机软件实验
南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.9 实验成绩:实验一单片机软件实验(一)实验目的1.掌握51单片机keil软件集成开发环境,能够使用汇编语言编写应用程序。
2.掌握使用集成开发环境Keil进行单片机程序开发的方法3.掌握使用集成开发环境Keil进行单片机程序跟踪调试的方法。
(二)设计要求熟悉51单片机的keil软件集成开发环境,使用汇编语言编写“1+2+3+…+100”的程序。
(三)实验原理KeilC51软件使用:在KeilC51集成开发环境下,建立一个工程并编辑源程序,熟悉Keil C51集成开发环境下各种菜单、命令的使用。
(四)实验设备PC机,Keil C51集成开发环境。
(五)实验结果对汇编程序进行编译、链接、调试,在Keil C51软件中运行仿真结果如下图所示,由于“1+2+……100”运行结果超过8位二进制所能表示的范围,计算结果将存放于两个8位工作寄存器单元R2、R3中。
其中,低八位存放于R2中,高八位存放于R3中,R4中存放计算数。
下图中的寄存器窗口中可以显示计算结果为0x13ba。
调出存储器窗口Memory:选择菜单命令View →Memory Window →Memory 1:可见计算结果存放于当前工作寄存器R2(02H)与R3(03H)中,为0x13BA。
(六)结果讨论与心得体会第一次使用Keil C51软件,初步了解了软件:Keil uVision4的使用方法,初步了解了Keil软件中程序的编辑,新工程的建立运行,初步对单片机实验进行了解,加强了实验动手操作能力。
第一次尝试单步调试,能观察到内存中每一个单元的变化,感到单片机系统复杂中的严谨,收获颇丰。
(七)附录:实验源代码实验源代码如下:ORG 0000HLJMP MAINORG 0050H MAIN:MOV R2,#00HMOV R3,#00HMOV R4,#64HMOV A,#00HCLR C LOOP:MOV A,R2ADD A,R4MOV R2,AMOV A,#00HADDC A,R3MOV R3,ADJNZ R4,LOOPSJMP $END。
实验报告(单片机实验报告)
1 双字节无符号数加法例1: 双字节无符号数加法(R0 R1)+(R2 R3) → (R4 R5),R0、 R2、 R4存放16位数的高字节, R1、 R3、 R5存放低字节。
已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h)假设其和不超过16位。
请编程。
org 0000hLjmp startorg 0050hstart:mov R0,#93hmov R1, #79hmov R2,#25hmov R3, #0a4hmov A,R1ADD A,R3mov R5,Amov A,R0ADDC A,R2mov R4,Ass: jmp ssend2双字节无符号数减法例2: 双字节无符号数相减(R0 R1)-(R2 R3) → (R4 R5)。
R0、 R2、R4存放16位数的高字节, R1、 R3、 R5存放低字节,已知(R0 R1)=(93h,79h);(R2 R3)=(25h,a4h);请编程。
同学自己可以设置被减数与减数数值org 0000hLjmp startorg 0050hstart:mov R0,#93hmov R1,#79hmov R2,#25hmov R3,#0a4hmov A,R1CLR CSUBB A,R3mov R5,Amov A,R0SUBB A,R2mov R4,Ass: jmp ssend3双字节数乘以单字节数例3: 利用单字节乘法指令,进行双字节数乘以单字节数运算。
若被乘数为16位无符号数, 地址为M1(30H) 和M1+1(31H)(低位先、高位后), 乘数为8位无符号数, 地址为M2(32H), 积由高位到低位存入R2、 R3和R4三个寄存器中。
30H,31H,32H内容 12H,34H,56H ;org 0000hLjmp startorg 0050hstart:mov 30h,#12hmov 31h,#34hmov 32h,#56hmov a,(30h)mov b,(32h)mul abmov R3,bmov R4,amov a,(31h)mov b,(32h)mul abadd A,R3mov R3,Amov A,bADDC A,#00hmov R2,Ass: jmp ssend4. 把8位二进制数转换为3位BCD例4: 利用除法指令把累加器A中的8位二进制数转换为3位BCD 数, 并以压缩形式存放在地址M1、 M2单元中。
单片机实验报告1
单片机实验报告1单片机实验报告1一、实验目的本实验的目的是通过学习单片机的基本知识和原理,了解单片机的工作原理,熟悉编写单片机程序并进行实验验证。
二、实验器材和软件实验器材:单片机开发板、USB数据线、LCD液晶屏、面包板、电缆线、电阻、LED等。
实验软件:KEIL C51开发软件、Proteus电路仿真软件。
三、实验原理单片机是一种集成度很高的微处理器芯片,本实验使用的单片机开发板中集成了一款8051系列的单片机。
这款单片机具有强大的数据处理能力和丰富的接口资源,可以用来实现各种功能。
四、实验内容本实验主要分为两个部分:第一部分是通过LED灯的亮灭来实现二进制数的计数;第二部分是通过LCD液晶屏显示温度和湿度数值。
1.二进制数计数利用单片机的IO口,将LED灯连接到P2口,通过对P2口的输出信号进行控制,实现二进制数的计数。
2.温湿度显示利用单片机的ADC(模数转换)功能,将温湿度传感器与单片机相连,通过ADC模块将温湿度信号转换成数字信号,并通过LCD屏幕显示出来。
五、实验步骤1.硬件连接将开发板与电脑连接,使用数据线将开发板上的USB接口与电脑的USB接口相连。
然后将LCD液晶屏和温湿度传感器连接到开发板上的相应接口,并将LED灯连接到P2口。
2.编写程序使用KEILC51软件编写程序,通过编写相应的代码,实现LED灯计数和温湿度显示功能。
4.运行实验将开发板上的拨码开关打开,开启单片机的电源。
LED灯开始计数并显示在开发板上,LCD屏幕同时显示温度和湿度的数值。
六、实验结果经过实验,LED灯能够正常进行二进制数的计数,LCD屏幕也能够准确地显示温度和湿度的数值。
七、实验总结通过本实验,我对单片机的工作原理和编程有了更深入的了解。
实验中遇到的问题,我通过查找资料、请教老师和同学进行了解决,提高了我的解决问题的能力。
通过实验,我进一步认识了单片机在各个领域中的重要性和应用价值,对未来的学习和工作有了更加明确的方向。
单片机实验报告
单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。
二、实验设备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 引脚。
单片机实验报告 附含说明书
第一章 DICE-5208K开发型单片机综合实验仪概述一、系统简介DICE-5208K型单片机实验系统由DICE-5208K开发型单片机综合实验箱、DICE-3000型仿真器、扩展卡和DICE-51仿真开发系统软件等组成。
是《MCS-51单片机原理与接口》、《单片机控制技术》、《C8051Fxxx高速SOC单片机原理及应用》、《EDA》、《VHDL硬件描述语言》、《CPLD/FPGA应用基础》等课程教学的配套实验设备。
新增加了几乎所有最实用、新颖的接口电路(如1 WIRE /I2C/SPI总线等)和通讯类接口实验(如USB2.0通讯/TCP/IP网络通讯/CAN总线/红外线收发等)。
可进行MCS-51、C8051F嵌入式单片机、CPLD/FPGA等课程的开放式实验教学。
二、主要特点1.该实验系统配置DICE-3000型高性能MCS-51硬件仿真器,64K数据空间,64K程序空间全部开放,不占用CPU资源,采用双CPU模式,仿真CPU和用户CPU独立运行,上位仿真软件支持汇编、C语言、PL/M语言。
可运行于WIN98/2000/NT/XP操作系统平台。
2.实验系统带有ISP在线下载电路,学生在完成实验后可脱离仿真机和PC机独立运行学生自行设计的单片机系统。
(可在线编程AT89S51/52/53系列单片机)。
3.该实验系统可扩展C8051F020嵌入式实验开发模块, 并配有DICE-EC5型USB高速通讯仿真器,通过4脚的JTAG接口可以进行非侵入式、全速的在线系统调试、仿真;集成开发环境支持Silicon Labs IDE和KEIL C软件。
4.该实验系统可扩展CPLD/FPGA模块,并配有相应的并口下载电路,轻松变成一台EDA实验开发平台。
5.该实验系统可扩展“数控式电子演示装置”,该装置是本公司的专利产品,结合上位演示软件和USB接口,可为该实验系统扩展多达十五个生动、形象、复杂的实验,其中大部分是闭环实验,实验践性非常强。
单片机实验报告
1.SCM即单片微型计算机(Single Chip Microcomputer)阶段,主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM与通用计算机完全不同的发展道路。在开创嵌入式系统独立发展道路上,Intel公司功不可没。 2.MCU即微控制器(Micro Controller Unit)阶段,主要的技术发展方向是:不断扩展满足嵌入式应用时,对象系统要求的各种外围电路与接口电路,突显其对象的智能化控制能力。它所涉及的领域都与对象系统相关,因此,发展MCU的重任不可避免地落在电气、电子技术厂家。从这一角度来看,Intel逐渐淡出MCU的发展也有其客观因素。在发展MCU方面,最著名的厂家当数Philips公司。
I01 = 1; //输出0
I11 = 1;
PH2 = 1; //PH2为1则B线圈为正向电流
I02 = 0; //以最大电流输出
I12 = 0;
delay(speed);
//B
PH1 = 1; //PH1为1则A线圈为正向电流
I01 = 0; //以最大电流输出
I11 = 0;
PH2 = 1; //PH2为1则B线圈为正向电流
I02 = 1; //输出0
I12 = 1;
delay(speed);
PH1 = 1; //PH1为1则A线圈为正向电流
I01 = 1;
I11 = 1;
PH2 = 0; //PH2为0则B线圈为反向电流
I02 = 0;
I12 = 0;
delay(speed);
}
void delay(int time)
uchar Key_Scan();
单片机实验报告1
单片机实验报告1单片机实验报告实验一数据传送 (RA M ndash; 〉XRA M)一、实验目得熟悉星研集成环境软件或熟悉 KeilC51集成环境软件得使用方法。
熟悉 MCS51 汇编指令,能自己编写简单得程序,掌握数据传输得方法。
二、实验内容1、熟悉星研集成环境软件或熟悉Keil C51 集成环境软件得安装与使用方法。
2、编写程序,实现内外部数据段得传送、校验。
三、程序框图开始堆栈指针初始化计数器、地址初始化内部RAM数据传送外部RAM一次地址指针+1计数器-1=0?计数器、地址指针复位取内部RAM和对应的外部RAM比较是否相等地址指针+1计数器-1=0?传送正确传送错误结束NNYYYN数据传送程序框图四、实验步骤MAR 据数部外测检,序程试调式方点断、步单用使;据数入输中HF3~ H03 MAR 部内在ﻩ得 1000H ~100FH 中得内容。
熟悉查瞧特殊功能寄存器、内部数据 RAM、外部数据空间得各种方法.五、程序清单;将内部RAM Address1 开始得 16个字节送到外部RAM从 Address2开始得单元里,再作比较。
Address1 DATA 30HAddress2 _DATA1000HORG 0000HLJMP STARORG 0100HSTAR: MOV SP,#60HMOV R0,#Address1MOV DPTR,#Address2MOV R7,#10HSTAR1: MOV A,R0 ;传送MOV_ DPTR,AINC R0INC DPTRDJNZ R7,STAR1MOV R0,#Address1MOV DPTR,#Address2MOV R7,#10HSTAR2: MOV B,R0 ;比较MOV_ A,DPTRCJNE A,B,STAR3INC R0INC DPTRDJNZ R7,STAR2SJMP $ ;传送正确STAR3: SJMP $ ;传送错误END实验二双字节 D BCD 码( ( 十进制数) ) 加法一、实验目得熟悉51 汇编指令,学会使用星研集成环境软件,能自己编写简单得程序,熟悉BCD 码,了解如何调用系统提供得子程序.二、实验内容从键盘上输入4位被加数、加数,实现双字节 BCD 码(四位数)得加法,结果显示在数码管上;熟悉使用断点、单步进入、单步、运行到光标处、修改 PC 指针、全速运行等各种调试手段;熟悉查瞧特殊功能寄存器、内部数据RAM、外部数据空间得各种方法。
单片机实训实验报告
单片机实训实验报告课题:单片机实训院系:电子信息工程学院班级学号:姓名:指导老师:熊老师、罗老师日期:2011.6.10一、硬件系统1、自制单片机实验板由七部分组成:(1).8路跑马灯(2)动态扫描共阳型数码管(3)4X4矩阵键盘(4)蜂鸣器(5)4路独立键盘(6)温度传感器(7)I2C通信方式的EEPROM芯片24C02二、Keil C u Vision2 简述与使用1.打开 u Vision22.新建工程:菜单【project】→【New Project】选择工程存放的路径,并输入工程文件名,然后点“保存”3.进入器件选择界面树列表框内选择“Atmel”→“AT89C52”,然后点“确定”完成器件选择。
4.编辑源程序:新建文件:菜单【File】→【new…】。
然后输入代码,编辑完成后菜单【File】→【Save】或【Save As…】把代码文件存入硬盘。
C源文件存为.C后缀,汇编源文件存为.a或.src后缀,并存放在同一个工程文件夹下。
5.加入源文件到工程中:在左边浮动窗口【File】选项卡里展开“Target 1”树,在“Source Group 1”上右键单击,弹出菜单,选【Add File to Group“Source Group 1”】,选择需要加入的源文件,点“Add”按钮加入,加入完成后按“Close”关闭。
6.设置编译选项:先选中左边浮动窗口【File】选项卡里“Target1“树节点,然后选菜单【Project】→【Options for Target “Target 1”】。
7.在弹出的“Options for Target “Target 1””对话框中选择[output]选项卡,勾选“Create HEX File”然后按“确定”完成设置。
8.按“F7”开始编译,编译成功后会在工程文件夹内生成.Hex目标文件生成的.hex文件就可以用来对AT89S52芯片进行编程和运行了。
单片机实验报告(相当不错,有具体实验结果分析哦)
学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:实验一 I/O 口输入、输出实验地点:基础实验大楼A311一、实验目的掌握单片机P1口、P3口的使用方法。
二、实验内容以P1 口为输出口,接八位逻辑电平显示,LED 显示跑马灯效果。
以P3 口为输入口,接八位逻辑电平输出,用来控制跑马灯的方向。
三、实验要求根据实验内容编写一个程序,并在实验仪上调试和验证。
四、实验说明和电路原理图P1口是准双向口,它作为输出口时与一般的双向口使用方法相同。
由准双向口结构可知当P1口作为输入口时,必须先对它置高电平使内部MOS管截止。
因为内部上拉电阻阻值是20K~40K,故不会对外部输入产生影响。
若不先对它置高,且原来是低电平,则MOS管导通,读入的数据是不正确的。
本实验需要用到CPU模块(F3区)和八位逻辑电平输出模块(E4区)和八位逻辑电平显示模块(B5区)。
2学生姓名:学号:专业班级:实验类型:□ 验证□ 综合□ 设计□ 创新实验日期:实验成绩:五、实验步骤1)系统各跳线器处在初始设置状态。
用导线连接八位逻辑电平输出模块的K0 到CPU 模块的RXD(P3.0 口);用8 位数据线连接八位逻辑电平显示模块的JD4B 到CPU 模块的JD8(P1 口)。
2)启动PC 机,打开THGMW-51 软件,输入源程序,并编译源程序。
编译无误后,下载程序运行。
3)观察发光二极管显示跑马灯效果,拨动K0 可改变跑马灯的方向。
六、实验参考程序本实验参考程序:;//******************************************************************;文件名: Port for MCU51;功能: I/O口输入、输出实验;接线: 用导线连接八位逻辑电平输出模块的K0到CPU模块的RXD(P3.0口);;用8位数据线连接八位逻辑电平显示模块的JD2B到CPU模块的JD8(P1口)。
单片机实验报告二 单片机IO口实验
南昌大学实验报告学生姓名:学号:专业班级:实验类型:⃞验证⃞综合⃞设计⃞创新实验日期:2019.4.16 实验成绩:实验二单片机I/O口实验(一)实验目的1.掌握单片机最小系统的构成,学习如何控制I/O口来驱动发光二极管,掌握移位和软件延时程序的编写。
2.熟练掌握STC型开发板的使用方法和注意事项。
3.掌握应用STC_ISP烧录过程;(二)设计要求利用51单片机及4个LED发光二极管,设计一个单片机流水灯程序,P4.7 /P4.6/ P1.6/ P1.7 来演示跑马灯。
其中流水灯的变化形式多样。
(三)实验原理STC实验箱单片机型号为IAP15W4K32S4-Student,其在线编程与在线仿真可由Keil uVision4集成开发环境和STC系列单片机在线可编程(ISP)电路实现:1.设置STC仿真器:运行STC-ISP在线编程软件,选择“keil 仿真设置”选项,如图1所示,单击“添加型号和头文件到keil中/ 添加STC仿真器驱动到keil中”,弹出“浏览文件夹”对话框,在浏览文件夹中选择keil的安装目录,单击“确定”按钮即完成添加。
根据所用芯片,单击“将IAP15W4K32S4-Student设置为仿真芯片”。
图12.Keil uVision4环境设置:选择菜单命令Project →Options for Target →Debug,选中“STC Monitor-51 Driver”,勾选“Load Application at Startup”选项和“Run to main()”选项,如图2所示。
单击图2右上角的“settings”按钮,弹出硬件参数设置对话框,如图2所示,根据仿真电路所使用的串口号(本机所用为串口5)选择串口端口,如图3所示:图2图33.STC15单击串口TTL电平通信模块结构如图4所示,P1.6、P1.7、P4.6、P4.7所连接的LED灯为共阳极LED,控制对应I/O口为低电平即可点亮LED。
单片机实验报告范文
单片机实验报告范文一、实验目的本实验旨在通过实际操作和实践,使学生掌握单片机的基本原理和编程方法,培养学生分析问题和解决问题的能力,并能够通过编程实现各种功能。
二、实验器材1.STC89C52单片机开发板2.LED灯3.电阻4.电源5.连接线三、实验内容1.实验一:LED灯闪烁实验本实验利用单片机控制LED灯的亮灭,使LED灯以一定的频率交替闪烁。
2.实验二:数码管显示实验本实验利用单片机控制数码管的显示,实现0-9的数字显示功能,并通过编程实现数字的递增和递减。
四、实验步骤实验一:LED灯闪烁实验1.将LED正极连接到开发板的P0端口,将LED负极连接到GND端口。
2. 使用Keil C编译器编写程序,编写程序实现LED灯闪烁功能。
4.打开电源,观察LED灯的闪烁情况,检查实验结果是否正确。
实验二:数码管显示实验1.将数码管的A-G引脚连接到开发板的P0.0-P0.6端口,将数码管的共阳极连接到开发板的VCC端口。
2. 使用Keil C编译器编写程序,编写程序实现数码管的显示功能。
4.打开电源,观察数码管的显示情况,通过按键实现数字的递增和递减功能,检查实验结果是否正确。
五、实验结果实验一:LED灯闪烁实验实验结果符合预期,LED灯以一定的频率交替闪烁。
实验二:数码管显示实验实验结果符合预期,数码管能够正确地显示0-9的数字,并且可以通过按键实现数字的递增和递减。
六、实验总结通过本次实验,我对单片机的原理和编程方法有了更深入的了解。
通过编写程序,我成功地实现了LED灯的闪烁和数码管的显示功能,并且通过按键实现了数字的递增和递减功能。
实验过程中,我也遇到了一些问题,但通过查找资料和向同学请教,我成功地解决了这些问题。
通过实验,我发现单片机的编程控制功能非常强大,可以实现各种各样的功能,这对我以后的学习和工作都具有重要的意义。
七、实验心得通过本次单片机实验,我不仅学习了单片机的基本原理和编程方法,还锻炼了自己的动手能力和解决问题的能力。
单片机原理实验报告
实验一:系统认识实验一、设计目的:1. 学习 Keil C51 集成开发环境的操作;2. 熟悉 TD-51 系统板的结构及使用。
二、设计内容:编写程序,将 00H~0FH 共 16 个数写入单片机内部 RAM 的 30H~3FH 空间。
三、设计步骤:1. 创建 Keil C51 应用程序(1)运行 Keil C51 软件,进入 Keil C51 集成开发环境。
(2)选择工具栏的 Project 选项,弹出下拉菜单,选择 NewProject 命令,建立一个新的μVision2 工程。
这时会弹出文件保存对话框,选择工程目录并输入文件名 Asm1 后,单击保存。
(3)工程建立完毕后,μVision2 会马上弹出器件选择窗口。
器件选择的目的是告诉μVision2 使用的 80C51 芯片的型号是哪一个公司的哪一个型号,不同型号的 51 芯片内部资源是不同的。
此时选择 SST 公司的 SST89E554RC。
(4)到此建立好一个空白工程,现在需要人工为工程添加程序文件,如果还没有程序文件则必须建立它。
选择工具栏的 File 选项,在弹出的下拉菜单中选择 New 目录。
(5)输入程序,完毕后点击“保存”命令保存源程序,将 Text1 保存成Asm1.asm。
Keil C51 支持汇编和 C 语言,μVision2 会根据文件后缀判断文件的类型,进行自动处理,因此保存时需要输入文件名及扩展名.ASM 或.C。
保存后,文件中字体的颜色会发生一定变化,关键字会变为蓝色。
(6)程序文件建立后,并没有与 Asm1.Uv2 工程建立任何关系。
此时,需要将 Asm1.asm 源程序添加到 Asm1.Uv2 工程中,构成一个完整的工程项目。
在Project Window 窗口内,选中Source Group1 点击鼠标右键,选择 Add Files to Group‘Source Group1’命令,此时弹出添加源程序文件对话框,选择文件Asm1.asm,点击 Add 命令按钮即可将源程序文件添加到工程中。
单片机实验报告
目录一、实验一 (1)二、实验二 (7)三、实验三 (11)四、实验四 (15)实验一定时/计数器验证实验一、实验目的熟悉定时/计数器T0的特点,学会合理选择定时方式并能根据具体情况结合软件的方式定时;二、实验设备及器件IBMPC机一台PROTEUS硬件仿真软件KeilC51;三、实验内容用AT89C51单片机的定时/计数器T0产生1s的定时时间,作为秒计数时间,当1s产生时秒计数加1;秒计数到60时,自动从0开始;四、实验要求要求采用Proteus软件实现上述实验;五、实验步骤1.打开ProteusISIS编辑环境,按照表1-1所列的元件清单添加元件;元件全部添加后,在ProteusISIS的编辑区域中按图1-1所示的原理图连接硬件电路;图1-1电路原理图2.根据参考程序绘出流程图,并辅以适当的说明;流程图如图1-2所示:图1-2程序流程图3.打开KeilμVision4,新建Keil项目,选择AT89C51单片机作为CPU,将参考程序导入到“SourceGroup1”中;在“OptionsforTarget”对话窗口中,选中“Output”选项卡中的“CreateHEXFile”选项和“Debug”选项卡中的“Use:ProteusVSMSimulator”选项;编译汇编源程序,改正程序中的错误;4.在ProteusISIS中,选中AT89C51并单击鼠标左键,打开“EditComponent”对话窗口,设置单片机晶振频率为12MHz,在此窗口中的“ProgramFile”栏中,选择先前用Keil生成的.HEX文件;在ProteusISIS的菜单栏中选择“File”→“SaveDesign”选项,保存设计,在ProteusISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“UseRemoteDebugMonitor”选项,以支持与Keil的联合调试;5.在Keil的菜单栏中选择“Debug”→“Start/StopDebugSession“选项,或者直接单击工具栏中的“Debug”→“Start/StopDebugSession”图标,进入程序调试环境;按“F5”键,顺序运行程序;调出“ProteusISIS”界面可以看到7段数码管显示从0~59s的计数值,每个数值显示1s,如图1-3所示;图1-3程序运行结果六、实验程序SECOND EQU 30HCOUNT EQU 31HORG 00HLJMP STARTORG 0BHLJMP INT_T0START: MOV SECOND,00HMOV COUNT,00HMOV DPTR,TABLECLR AMOV P0,AMOV P2,AMOV TMOD,00HMOV TH0,65536-50000/256MOV TL0,65536-50000MOD256SETB TR0SETB ET0SETB EAMOVIE,82HLJMP $INT_T0:MOV TH0,65536-50000/256MOV TL0,65536-50000MOD256INC COUNTMOV A,COUNTCJNE A,20,I2MOV COUNT,00HINC SECONDMOV A,SECONDCJNE A,60,I1MOV SECOND,00HI1: MOV A,SECONDMOV B,10HDIV ABMOVC A,A+DPTRMOV P0,AMOV A,BMOVC A,A+DPTRMOV P2,AI2: RETITABLE: DB 3FH,06H,5BH,4FH,66HDB 6DH,7DH,07H,7FH,6FHEND七、思考题1.罗列一下Proteus软件的能带给我们的好处,指出一点最能帮助你的地方;使用Proteus软件能使我们方便的搭建电路,同时在没有元器件的情况下进行便于仿真,方便我们在将程序写入单片机前确认运行是否正确,同时可在采购器件之前即可开始开发产品,而不必等到器件采购完后搭建电路才进行程序调试;2.用Proteus界面中的播放键运行仿真与KeilμVision4的环境中联调运行它们两者的区别在什么地方3.用Proteus界面中的播放键运行仿真仅可以观察运行结果,即程序运行在硬件表面上的表现;而联调的时候可以再Keil软件里查看各寄存器和存储器的状况,即硬件的内部情况;4.Keil软件软件仿真与Proteus的仿真对比;使用Proteus仿真可从硬件的角度观察仿真结果,使仿真结果更加形象直观,使我们可从硬件运行状态清楚的判断运行结果是否正确;而在Keil环境中则是从程序的角度通过观察程序中数据的变化来观察仿真结果,需要对程序运行结果充分了解;八、实验总结及相关问题通过本次实验了解了Ptoteus软件的使用方法,以及在掌握了Keil的使用方法下,学会了Proteus与Keil软件联调的方法;在用Proteus中由于忽略了要在总线处放置网络标号导致联调失败,最后通过观察发现数码管引脚电平无变化发现此问题,放置网络标号后运行仿真时数码管引脚电平发生变化可是数码管却没有变亮,经过多次检查接线,未发现接线错误后,觉得可能是软件本身错误,故将总线及数码管周围硬件线路重新绘制一遍后再次运行仿真及可得到图1-3的结果;实验二单片机I/O口控制实验一、实验目的利用单片机的P1口作IO口,使同学学会利用P1口作为输入和输出口;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.编写一段程序,用P1口作为控制端口,使D1区的LED轮流亮;2.编写一段程序,用P1.0~P1.6口控制LED,P1.7控制LED的亮和灭P1.7接按键,按下时LED亮,不按时LED灭;四、实验要求学会使用单片机的P1口作IO口,如果有时间同学也可以利用P3口作IO口来做该实验;五、实验步骤1.用导线把A2区的J61接口与D1区的J52接口相连;原理如图2-1所示;图2-1实验二原理图2.先编写一个延时程序;延时程序见程序1子程序DELAY;3.将LED轮流亮的程序编写完整并使用TKStudyICE调试运行;LED轮流亮程序见程序1;调试运行结果:D1区LED轮流亮;4.使用导线把A2区的J61接口的P1.0~P1.6与D1区的J52接口的LED1~LED7相连,另外A2区J61接口的P1.7与D1区的J53的KEY1相连;5.编写P1.7控制LED的程序,并调试运行;按下K1看是否全亮;P1.7控制LED的程序见程序2;调试运行结果:按下P1.7后D1区LED全灭;6.A2区J61接口的P1.7与D1区的J54的SW1相连;然后再使用TKStudyICE运行程序,查看结果;P1.7控制LED的程序见程序2;调试运行结果:按下P1.7后D1区LED全亮;六、实验参考程序程序1:ORG 0000HLJMP MAINORG 0100HMAIN: MOV A,0FFHCLR CMAINLOOP:CALL DELAYRLC AMOV P1,ASJMP MAINLOOPDELAY: MOV R7,0LOOP: MOV R6,0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOPRETEND程序2:ORG 000HLJMP MAINORG 0100HMAIN: JB P1.7,SETLEDCLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP MAINSETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6SJMP MAINEND七、实验思考题1.请同学思考一下,想出几个实现以上功能的编程方法;程序1可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位后输出至P1口;程序2可在判断P1.7高低电平后根据判断结果直接将80H或7F直接送P1口而不必逐位进行位操作;2.请同学再思考一下,第二个程序中如果使用KEY1作为外部中断控制LED的亮和灭时,程序应如何修改;此时将KEY1接/INT0口,在主程序中开启外部中断设置外部中断触发方式,通过中断服务子程序控制LED亮灭;程序如下所示:ORG 000HLJMP MAINORG 0003H ;中断服务程序LJMP SETLEDMAIN: MOV SP,40HSETB ET0 ;开外部中断CLR IT0 ;设置为电平触发SETB EACLRLED:CLR P1.0CLR P1.1CLR P1.2CLR P1.3CLR P1.4CLR P1.5CLR P1.6SJMP CLRLEDSETLED:SETB P1.0SETB P1.1SETB P1.2SETB P1.3SETB P1.4SETB P1.5SETB P1.6RETIEND八、实验总结及相关问题通过本次实验掌握了使用TKStudyICE进行硬件仿真调试的方法,在设置仿真器驱动程序声明时对C:\Keil目录下的Tools.ini文件添加描述时,由于添加的路径错误导致无法进行硬件仿真调试,修改为正确路径后方可在DEBUG窗口中的Use选项中找到对应的选项;使用TKStudyICE进行硬件仿真调试相比本学期的电子系统设计中用到的调试方法更快捷,使用更方便;与此同时,通过本次实验对单片机的I/O控制有了更深入的了接,同时加深入对单片机I/O编程的理解;实验三串转并I/O口实验一、实验目的熟悉并掌握串转并的I/O口扩展方法;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.写程序,通过单片机的P1口控制74HC164的串行输入端口,实现串并转换;2.验证串并转换数据的正确性;四、实验要求熟悉串并转换芯片的工作原理,学会使用串并转换芯片扩展单片机的I/O口资源;表3-174HC164真值表五、实验步骤1.短接C5区JP10接口,将C5区J43接口与A2区J61接口的P10~P13对应相连CLK对P10等等;如图3-1所示;图3-1实验三原理图2.运行编写好的软件程序,完成一次串并转换;实验程序见实验参考程序;2.使用C2区的逻辑笔或D1区的J52接口LED指示灯测试并行输出数据Q0~Q7数据的正确性;调试运行结果:通过观察LED的亮灭情况可判断完成一次串并转换,且转换结果正确无误;六、实验参考程序CLK EQU P1.0DINA EQUP1.1DINB EQU P1.2CLR164 EQUP1.3ORG 0000HLJMP MAINORG 0100HMAIN: MOV SP,60HNOPCLR CLKSETB DINBCLR CLR164SETB CLR164MOV A,0FFHMOV R4,08HSLCHG: RLC AMOV DINA,CSETB CLKNOPCLR CLKNOPDJNZ R4,SLCHGSJMP$END七、实验思考题参考图3-2电路图,尝试编写软件程序,实现8位LED流水灯的控制;图3.2实验原理图可利用单片机的定时计数器通过选择定时计数器工作方式和预置初值设定延时时间,通过定时计数器产生的中断在中断程序中对A进行移位;程序如下所示:CLK EQU P1.0DINA EQUP1.1DINB EQU P1.2CLR164 EQUP1.3ORG 0000HLJMP MAINORG 000BH ;定时器0中断服务程序LJMP SLCHGMAIN: MOV SP,60HNOPCLR CLKSETB DINBCLR CLR164SETB CLR164MOV A,0FFHMOV TMOD,01H ;定时器0工作方式1MOV TH0,18H ;送2ms时间常数MOV TL0,0FCHSETB TR0 ;开中断SETB ET0SETB EASJMP $SLCHG: MOV TH0,18HMOV TL0,0FCHRLC AMOV DINA,CSETB CLKNOPCLR CLKRETIEND八、实验总结及相关问题由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验对串并转化程序的编写有了一定了解,通过编写流水灯程序加深了对单片机串并口的了解;实验四继电器控制实验一、实验目的加深理解继电器的工作原理和特点,掌握利用单片机的IO口控制继电器的一般方法;二、实验设备及器件IBMPC机一台DP-51PRO单片机仿真器、编程器、实验仪三合一综合开发平台一台三、实验内容1.利用D1区的拨动开关和LED,学习继电器的工作原理和特点;2.编写一段程序,用P1.0口控制继电器,继电器控制LED的亮和灭,COM与CLOSE连通时,一盏LED亮;不连通时该LED灭;COM与OPEN连通时,另一盏LED亮,不通时该LED灭;四、实验要求学会继电器的使用和利用单片机的IO口控制继电器的方法;五、实验步骤图4-1继电器驱动控制电路图1.用短路帽短接JP7,使用导线把D1区J54接口的SW1与C7区J9接口的KJ任意一根针相连接;2.使用导线把D1区J52接口的LED1、LED2与C7区J103接口的OPEN1,CLOSE1分别相连,另外C7区J103接口的COM1接地GND;3.接好线后,同学可以拨动D1区的SW1拨动开关,观察现象拨到1时LED2亮,拨到0时LED1亮,并得出结论;运行结果:拨到1时LED2亮,拨到0时LED1亮,说明每拨动一次开关改变一次继电器的状态;4.然后把C7区J9接口的KJ改接到A2区的J61接口的P10;再编写一个程序程序参考实验二,使P1.0口延时一段时间后改变电平值,来控制继电器的开关;实验程序见实验参考程序;调试运行结果:两个LED交替变亮,继电器状态不断改变;六、实验参考程序ORG 0000HLJMP MAINORG 0100HMAIN: MOV R7,0LOOP: MOV R6,0DJNZ R6,$DJNZ R6,$DJNZ R6,$DJNZ R7,LOOPCPL P1.0SJMP MAINEND七、实验思考题1.请同学思考一下,改由OPEN2、COM2、CLOSE2时本实验如何进行;同使用OPEN1、COM1和CLOSE1时连接方法类似,把D1区J52接口的LED1、LED2与C7区J103接口的OPEN2,CLOSE2分别相连,另外C7区J103接口的COM2接地GND即可;2.请同学再思考一下,继电器的用途,并举例说明;继电器是一种电控制,是当输入量激励量的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器;它具有又称输入回路和被控制系统又称输出回路之间的互动关系;通常应用于自动化的控制中,它实际上是用小电流去控制大电流运作的一种“自动开关”;故在电路中起着自动调节、安全保护、转换电路等作用;按照其工作原理可有以下应用:电磁继电器固体继电器温度继电器舌簧继电器时间继电器高频继电器极化继电器其他类型的继电器八、实验总结及相关问题由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验了解了继电器的控制方法;对继电器这一器件有了一定了解;。
80C51单片机-实验报告
实验一 CPU片内(外)清零1.CPU片内RAM清零一、实验目的:掌握MCS-51汇编语言的设计,了解单片机的寻址方式以及调试方法。
二、实验内容:把单片机片内的30H~7FH单元清零。
三、实验框图:四、实验步骤:用连续或者单步的方式运行程序,检查30H-7FH执行前后的内容变化。
五、参考实验程序:程序名称:PNQL.ASMORG 0000HJMP MAINORG 0030HMAIN:MOV R0,#30H ;30H送R0寄存器CLR1:MOV A,#00H ;00送累加器AMOV @R0,A ;00 送到30H-7FH单元INC R0 ;R0加1CJNE R0,#7FH,CLR1 ;不到7F字节再清WAIT:LJMP WAITEND六、实验思考:如果把30H-7FH的内容改为99H,如何修改程序。
2.CPU 片外RAM清零一、实验目的:掌握MCS-51汇编语言的设计,了解单片机的寻址方式以及调试方法。
二、实验内容:把外部扩展的RAM的0000H-00FFH单元内容清零。
三、实验框图:四、实验步骤:用连续或者单步的方式运行程序,检查0000H-00FFH执行前后的内容变化。
五、参考实验程序:程序名称:PWQL.ASMORG 0000HMAIN:MOV SP,#60HMOV DPTR,#0000H ;0000H送DPTR寄存器MOV R6,#0FFH ;FFH送R6寄存器(计数)CLR1:MOV A,#00H ;00送累加器AMOVX @DPTR,A ;00 送到0000H-00FFH单元INC DPTR ;DPTR+1DJNZ R6,CLR1 ;不到FF个字节再清WAIT:SJMP WAITEND六、实验思考:把1-10先对应存入片内0030H起始的单元内,然后再从片内取出,对应存入片外7FFFH起始的单元中去。
实验二P1口亮灯实验一、实验目的:学习MCS-51单片机P1口的使用方法二、实验内容:P1口做输出,接8个发光管,编写程序,使得8个二极管循环点亮。
《单片机原理及应用》实验报告
《单片机原理及应用》实验报告一、实验目的本次实验旨在深入理解单片机的工作原理,掌握其基本的编程和应用方法,通过实际操作提高我们对单片机系统的设计和调试能力。
二、实验设备1、计算机一台2、单片机开发板一套3、下载线一根4、相关软件,如 Keil C51 等三、实验原理单片机是一种集成在一个芯片上的微型计算机,它包含了中央处理器(CPU)、存储器(ROM、RAM)、输入输出接口(I/O 口)等基本组件。
通过编写程序,可以控制单片机的各个引脚输出高低电平,实现对外部设备的控制和数据采集。
单片机的工作原理是基于时钟信号,按照程序指令的顺序依次执行操作。
程序通常使用 C 语言或汇编语言编写,经过编译后下载到单片机的存储器中,由单片机的 CPU 读取并执行。
四、实验内容1、点亮单个 LED 灯首先,我们将单片机的一个 I/O 口与一个 LED 灯相连。
通过编写程序,设置该 I/O 口输出高电平,使 LED 灯点亮;输出低电平,使 LED 灯熄灭。
程序代码如下:```cinclude <reg51h> //包含 51 单片机的头文件void main(){P1_0 = 1; //设置 P10 口为高电平,点亮 LED 灯while(1);//无限循环,保持 LED 灯常亮}```2、流水灯实验在这个实验中,我们使用多个 LED 灯,通过依次控制每个 LED 灯的点亮和熄灭,实现流水灯的效果。
程序代码如下:```cinclude <reg51h>void delay(unsigned int i) //延时函数{unsigned int j, k;for (j = 0; j < i; j++)for (k = 0; k < 125; k++);}void main(){unsigned char led ={0xfe, 0xfd, 0xfb, 0xf7, 0xef, 0xdf, 0xbf, 0x7f};//定义 LED 灯的控制码unsigned char i;while (1){for (i = 0; i < 8; i++){P1 = ledi; //依次输出控制码,点亮相应的 LED 灯delay(500);//延时一段时间}}}```3、按键控制 LED 灯我们将一个按键连接到单片机的一个I/O 口,通过检测按键的状态,控制 LED 灯的亮灭。
单片机实验报告(完整版)
单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的:1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作。
二、实验仪器设备1.PC机,1台2.WAVE软件开发系统三、实验内容及步骤:1、将下面的汇编程序输入到W A VE集成开发软件中ORG 0000HSJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08HMOV R1,#70HMOV DPTR,#2000HLOOP:MOVX A,@R1MOVX A,@DPTRINC R1INC ADJNZ R7,LOOPSJMP $END2、选择菜单“仿真器”→“仿真器设置”,按下图所示完成软件初始设置。
3、选择菜单“项目”下“编译”,编译通过后,选择“单步运行”,观察记录寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。
四、源程序源程序:ORG 0000H ;定义起始地址SJMP STARTORG 0030HSTART:MOV R0,#07HMOV 70H,#08H ;给内部RAM的70H单元赋初值MOV R1,#70H ;使R1指向内部70H单元MOV DPTR,#2000H ;定义外部存储器开始单元LOOP:MOVX A,@R1 ;将R1所指向的70H的内容赋给AMOVX @DPTR,A;将A的内容赋给外部存储器单元INC R1 ;内部RAM地址加1INC DPTR ;外部存储器地址加1DJNZ R7,LOOP ;循环,直到RAM中70H~7FH;单元的内容全部相应赋给;外部2000H~2007H单元SJMP $END3、记录下程序单步运行时,寄存器(R0、R1)、累加器(A)、程序状态字(PSW)、外部存储器(2000H单元)、I/O端口(P1)的数据变化。
五、仿真效果图实验二I/O端口操作一、实验目的:1、掌握I/O端口读写等基本汇编指令;2、掌握单片机最小系统硬件电路设计及仿真软件PROTEUS仿真、调试等基本操作方法。
单片机实验报告
MOV TL1,#0F4H
MOV TH1,#0F4H
SETB TR1
DLAL:MOV SBUF,#99H
CHECK_99:JBC TI,WAIT_RSPS
JMP CHECK_99
WAIT_RSPS:JBC RI,CHECK_01
JMP WAIT_RSPS
CHECK_01:MOV A,SBUF
二.实验目的
(1)掌握中断系统的工作原理
(2)掌握中断向量的概念。
(3)学习外部中断的基本使用方法。
(4)学习外部中断的基本使用方法。
(5)学习中断处理程序的处理方法。
(6)掌握规范的程序设计方法。
三.实验元件
(1)AT89C51,LED-RED,RED-GREEN,BUTTON,RES
(2)AT89C51,LED-RED,BUTTON1,BUTTON2,RES
MOV TL0,#9CH
MOV TCON,#50H
MOV IE,#9AH
AJMP $
PINT0:MOV TL0,#9CH
CPL P1.0
RETI
PINT1:MOV TH0,#38H
CPL P1.1
RETI
END
(4)T0方式3 定时300us 输出占空比1/3矩形波查询方式
ORG 0000H
LJMP MAIN
D1:MOV R4,#255
D2:MOV R5,#255
D3:DJNZ R5,$
DJNZ R4,D2
DJNZ R3,D1
SETB P0.1
RETI
END
(2)INT0、INT1中断控制LED
ORG 0000H
LJMP MAIN
单片机实验报告
一、实验目的1、熟练单片机的结构组成及原理;2、软硬兼施,采用硬件电路的焊接搭建和软件的设计调试、下载,亲自动手,对硬件系统加深了解的同时,软件编程也能得心应手;3、了解如何从硬件和软件上分析问题,排除故障。
二、实验内容MCS-51/MCS-52单片机的跑马灯硬软件设计、键盘控制及键号显示电路的软硬件设计、直流电机转速电路的软硬件设计、转速计数控制电路的软硬件设计、步进电机转速的硬软件设计三、实验器材与工具实验器材:多功能电路板、AT89S52单片机、电解电容、瓷片电容、电阻、二极管、集成芯片、插槽、八段共阴数码管、发光二极管、三极管、12MHz晶振、小按钮开关、光电开关、直流电机、步进电机主要工具PC机、下载器、电烙铁、焊锡丝、导线、尖嘴钳、斜口钳、剥线钳、数字万用表、透明胶带等。
四、实验原理1-1 MCS-51/MCS-52单片机的跑马灯的硬软件设计1 MCS-51/MCS-52单片机跑马灯的硬件电路的设计。
如图1-1是一个利用51单片机设计的跑马灯电路,51单片机的第9引脚为复位电路,单片机上电之初,使用C-R充电过程使得第9脚保持10ms以上的高电位,使机器复位。
复位开关K可使之做到随机复位。
51单片机的第18,19引脚为外接晶振,接一个12M的晶振,同51单片机内部电路配合,上电后产生12兆的晶振频率和1兆的机器周期频率。
因为89S52机片内含8K程序存储器,机器运行程序将下载其中,故89S51的引脚EA接电源VCC。
51单片机第32—39引脚为P0口,分别对应P0.7—P0.0,P0口外接10KΩ的上拉排阻。
P0口的P0.0—P0.7与74HC573的D0—D7一一对应相连,74HC573的Q0—Q7为输出,分别经220Ω电阻后接于发光二极管(跑马灯)的D0—D7上。
74HC573为8位锁存器,其1脚为输出使能端OE,低电平有效。
本电路将其接地,所以74HC573的8位Q端为直通输出。
单片机设计实验报告简单计算器的设计
目录1.总体方案选择 (2)1.1 实验要求: (2)1.2方案设计 (2)2.硬件原理电路图的设计及分析 (2)2.1主控模块 (2)2.1.1 STC89C52单片机主要特性 (3)2.1.2 STC89C52单片机管脚图 (4)2.1.3 STC89C52单片机的中断系统 (4)2.1.4 STC89C52单片机的定时/计数器 (4)2.2矩阵键盘模块设计: (5)2.2.1矩阵键盘原理介绍 (5)2.2.2矩阵键盘电路设计 (5)2.3 LCD液晶显示器简介 (6)2.3.1液晶模块简介 (6)2.3.2液晶显示部分与89S52的接口 (7)3系统软件设计 (9)3.1系统软件流程图 (9)3.2系统整体原理图 (10)4.系统调试 (11)4.1硬件调试 (11)4.2软件调试 (11)4.3调试结果 (12)5. 心得体会 (13)1.总体方案选择1.1 实验要求:1)通过小键盘实现数据的输入,并在LED数码管上显示2)实现+、-、*、/3)在LED数码管上显示结果4)并有清零,退出功能1.2方案设计本系统以STC89C52单片机为控制核心,对系统进行初始化,主要完成对键盘的响应、液晶显示灯功能的控制,起到总控和协调各模块之间工作的作用。
单片机通过检测键盘读取使用者按下对用功能的按键,然后通过单片机内部运放把运算的结果显示在液晶屏幕上。
图1-1系统结构框图本系统结构如图1-1所示,本设计可分为以下模块:单片机主控模块、键盘模块、功率放大模块、闹铃模块、按键设置模块。
下面对各个模块的设计方案逐一进行论证分析。
2.硬件原理电路图的设计及分析2.1主控模块STC89C52有40个引脚,4个8位并行I/O口,1个全双工异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。
STC89C52的存储器系统由4K的程序存储器(掩膜ROM),和128B的数据存储器(RAM)组成。
STC89C52单片机的基本组成框图见图2-1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验报告实验课程:单片机原理及应用实验名称:实验1 ——原理图绘制练习班级:13自动化2班学号:201310320226 :李浩教师:张玲成绩:实验日期:2016 年 5 月24 日一、实验目的:学习Proteus 软件的使用,掌握单片机原理图的绘图方法二、实验内容:1、绘制“计数显示器”电路原理图;2、利用提供的hex文件验证此电路的运行效果。
三、实验要求:提交的实验报告中应包括:1、绘图方法简述,要求说明元件与电源的选取、摆放及属性编辑,总线与标签的画法等内容;2、电路原理图;3、仿真运行效果展示,要求就仿真文件加载方法及3~4幅运行截图进行简要说明;4、实验小结,说明遇到的主要问题或实验1体会等。
参考电路原理图如下:元件类别电路符号元件名称Microprocessor ICs “U1”80C51Miscellaneous “X1”/12MHz CRYSTALCapacitors “C1”~“C2”/1nF CAPCapacitors “C3”/22μF CAP-ELECResistors Packs “RP1”/7-100ΩRESPACK-7Resistors “R1”/100ΩRESOptoelectronics “LED1”~“LED2”7SEG-COM-CAT-GRNSwitches & Relays “BUT”BUTTON ————————————————1、绘图方法简述Protues绘图:打开之后首先新建设计,然后按照元件英文名查找器件,单击鼠标即可放置好元件,单击引脚即可连好导线。
点击左方标签后即可在相应导线上放置标签,点击总线图标后即可画出总线。
Keic中生成hex文件后在protues中双击单片机芯片即可下载仿真程序。
点击左下角播放开始仿真。
2、电路原理图3、仿真运行效果展示4、实验小结因为是第一次实验,我准备的不是很充分,导致去了实验室后不知道干什么,而且因为是机房的机子,我没考虑到机子上的软件问题,所以我只是画好了原理图而没有仿真,所以第一次实验草草了事,就结果而言,是以失败而告终。
实验报告实验课程:单片机原理及应用实验名称:实验二——LED指示灯循环控制班级:13自动化2班学号:201310320226 :李浩教师:张玲成绩:实验日期:2016 年 5 月25 日一、实验目的熟悉μVision3编译软件、掌握C51编程与调试方法。
二、实验内容1、按照教材P243的图A.34,绘制实验二电路原理图;2、编写C51程序,实现8个LED灯依次点亮的功能:P0.0→P0.1→P0.2→P0.3→┅→P0.7→P0.6→P0.5→┅→P0.0的顺序,无限循环,间隔约50ms;3、观察仿真结果,完成实验报告。
三、实验要求1、采用两种加载并运行可执行文件的方法,即proteus独立运行和proteus + Keil联合运行,体会其中的差异和意义;2、练习采用单步、断点以及监视窗等手段进行程序调试的方法;3、观察仿真结果,完成实验报告:绘制的电路原理图、编程思路分析及C51源程序、调试过程简述,仿真运行效果以及实验小结。
1、电路原理图2、编程思路及C51源程序#include<reg51.h>#include<intrins.h>int a=0xfe;int i;void delay(int x){int i,j;for(i=0;i<100;i++)for(j=0;j<x;j++) ;}void main(){while(1){for(i=0;i<7;i++){P0=a;delay(500) ;a=_crol_(a,1);}for(i=0;i<7;i++){P0=a;delay(500) ;a=_crol_(a,-1);}}}3、调试过程简述1.首先启动ISIS模块,使用A4纸,写上名字,学号,班级2.选取元件,有80C51,CRYSTAL,CAP,,CAP-ELEC,RESPACK-8,RES, LED-YELLOW3.摆放元件,将元件一一放好,鼠标单击元件在点击图纸就可以4.编辑元件属性,编辑元件文本属性,更改电阻,电容5.原理图布线,把元件之间用导线连接起来,还有画总线6.添加.hex仿真文件,书写对应的程序7.仿真运行4、仿真运行效果5、实验小结因为以前学过protues,所以真正用起来不是很难,只是时间有点久,忘了很多步骤,但是书上有清楚地步骤,所以就结果而言,完成的比较顺利实验报告实验课程:单片机原理及应用实验名称:实验三——指示灯和数码管的中断控制班级:13自动化2班学号:201310320226 :李浩教师:张玲成绩:实验日期:2016 年 5 月26 日一、实验目的掌握外部中断的工作原理,学会中断程序设计。
二、实验内容1、按照教材帕图A.53,绘制实验四电路原理图;2、要求采用外部中断原理完成本次实验,其中按键K1、K2均设置为下降沿触发方式,自然优先级;3、编写C51程序实现如下功能:开机后D1灭灯,LED1黑屏,随后单击K1→D1状态反转,单击K2 →LED1从0开始循环显示0~F字符。
4、观察仿真结果,完成实验报告。
四、实验要求提交的实验报告中应包括:电路原理图,外部中断工作原理阐述(以K1为例说明中断响应过程),C51源程序(含流程图与注释语句),运行效果(含运行截图与说明),实验小结。
1、电路原理图2、外部中断工作原理阐述持续按下K1则D1将亮-灭,亮-灭,亮-灭如此循环,表现了K1对应D1状态反转这个功能,持续按下K2则数码管一次显示1-F,实现了K2对应0-F的数码管加计数器显示。
3、C51程序#include<reg51.h>char i;sbit P0_4=P0^4;unsignedchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0 x6f,0x77,0x7c,0x39,0x5e,0x79,0x71} ;/*void delay(int x){int i,j;for(i=0;i<110;i++)for(j=0;j<x;j++);} */void main(){P2=0;P0_4=1;IT0=1;IT1=1;IE=0x85;while(1);}void x0()interrupt 0{P0_4=!P0_4;}void x1()interrupt 2{i++;if(i==16)i=1;P2=table[i];}4、仿真运行效果5、实验小结实验还是比较容易的,有了之前的几次经验,实验最终还是成功了。
在做这个实验时明显比前两个熟练了许多,做这种实验时我觉得应该多多的练习这样才能变得熟练,做起来能够更加的得心应手。
实验报告实验课程:单片机原理及应用实验名称:实验四——电子秒表显示器班级:13自动化2班学号:201310320226 :李浩教师:张玲成绩:实验日期:2016 年 5 月27 日一、实验目的掌握定时/计数器的中断法工作原理,熟悉C51编程与调试方法二、实验要求:1、实验电路原理图如教材P260 A.65图所示。
程序开始时显示“00”;当1s产生时,秒计数加1;秒计数到59后,自动从“00”开始。
2、采用12MHz晶振频率,T0定时方式1、50ms定时中断法编程(1s需要经过20软循环)(流程图和参考程序模版如下所示)。
//定时中断方式实现的电子秒表(51头文件)(定义无符号字符型变量t——中断次数计数器,并赋初值0(定义无符号字符型变量second——秒计数器,并赋初值0(定义位于ROM区的无符号字符型数组table——显示字模)timer0() (中断函数关键词){(关闭T0)(初值重装载0x3cb0)(中断次数计数器增1)if(t==20){ //若中断20次,相当于1秒t=0; //中断次数计数器清零second++; //秒计数器清零}(若秒计数器值达到60,清零)(P0和P2口分别输出变量second的显示值)(启动T0)}main(){P0=table[second/10]; //P0和P2口分别输出显示值P2=table[second%10];(定义T0定时方式1——TMOD)(50ms溢出初值0x3cb0加载——TH0和TL0)(中断初始化——ET0,EA)(启动T0)(死循环)}3、提交实验报告:原理图,编程分析,源程序(含注释语句),调试过程描述,运行效果图(拷屏),结论与体会。
————————————————1、原理图2、源程序#include<reg51.h>#define uchar unsigned char#define uint unsigned intuchar a,aa;ucharcodetable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c ,0x39,0x5e,0x79,0x71} ;void main(){P0=P2=table[0];TMOD=0x01;TH0=(65536-50000)/256;TL0=(65536-50000)%256;EA=1;ET0=1;TR0=1;while(1);}void t0()interrupt 1{TH0=(65536-50000)/256;TL0=(65536-50000)%256;a++;if(a==20){a=0;aa++;if(aa==60)aa=0;P2=table[aa%10];P0=table[aa/10];}}3、调试过程简述1.首先启动ISIS模块,使用A4纸,写上名字,学号,班级2.选取元件,有80C51,CRYSTAL,CAP,,CAP-ELEC,RES,7SEG-COM-CAT-GRN3.摆放元件,将元件一一放好,鼠标单击元件在点击图纸就可以4.编辑元件属性,编辑元件文本属性,更改电阻,电容5.原理图布线,把元件之间用导线连接起来,还有画总线6.添加.hex仿真文件,书写对应的程序7.仿真运行4、仿真. . .. .5、实验小结因为有前几次的经验,所以还是很容易的。
经过前几个实验的锻炼这个实验几乎没出错的很顺利的完成了,通过这几个实验使我感觉到了单片机的魅力而且学到了许多知识希望以后使用到。
c. . . ..。