单片机实验报告1
单片机实验报告
PIC单片机原理与应用实验报告学校:学院:班级:姓名:学号:指导教师:实验一I/O端口实验一、实验目的(1)掌握MPLAP IDE集成开发环境的基本操作。
(2)掌握单片机的I/O端口的设计方法。
(3)掌握在线调试器的使用方法。
(4)学会查阅相关数据手册。
二、实验仪器设备(1)PC机一台;(2)MPLAP IDE开发软件一套;(3)PICkit3在线调试器一套;(4)APP009实验板一块;三、实验要求(1)设计发光LED灯闪烁程序,下载调试,验证功能。
(2)设计流水灯程序,或其他花样彩灯程序,下载调试,验证功能。
(3)设计按按键加1计数程序,下载调试,验证功能。
四、实验步骤(1)连接在线调试器PICkit3、APP009实验板和计算机;(2)打开MPLAP IDE集成开发环境软件,点击Debugger>Select Tools>PICkit 3 选择调试工具;(3)点击Debugger>Settings,在Settings窗口中点击Power栏,选择由PICkit3向实验板供电;(4)完成实现发光LED灯闪烁实验;程序代码:#include <p30f4011.h>void delay(void);int main(){while(1){TRISEbits.TRISE0 = 0; //RE0设置为输出(1输入,0输出);TE0 =1; //RE0=1输出高电平+5V,亮灯delay(); //延时TE0 =0; //RE0=0输出低电平0V,灭灯delay(); //延时}}void delay(void){long int i;for (i=0;i<65000;i++);}实验现象:将程序下载到实验板上,运行程序,LED闪烁,通过改变延时函数改变延时时间,进而可以改变LED闪烁的频率。
(5)完成实现流水灯或花样彩灯实验;程序代码:#include <p30f4011.h>void delay(void);int main(void){int i;int ledcode[6]={0x01,0x02, 0x04, 0x08, 0x10, 0x20};TRISE =0x00; //RE0-RE5配置为输出while(1){for (i=0;i<6;i++){LATE=ledcode[i]; //按状态循环点灯delay(); //延时}}}void delay(void){long int i;for (i=0;i<65000;i++);}实验现象:将程序下载到实验板上,运行程序,LED按照设定的规律循环点亮和熄灭,通过改变数组ledcode的元素,可以方面地实现流水灯或花样彩灯的效果。
单片机实验报告
单片机实验报告实验一:存储器块清零或赋值一、实验目的1 熟悉存储器的读写方法,熟悉51汇编语言结构。
2 熟悉循环结构程序的编写。
3 熟悉编程环境和程序的调试。
二、实验内容指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。
例如将4000H开始的10个字节内容清零或全部赋值为33H。
注意:1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。
2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。
5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。
三、实验仪器微机、VW,WA VE6000编程环境软件,(单片机实验箱)Lab6000/Lab6000通用微控制器MCS51实验四、实验步骤1、新建工程文件。
(注意:文件不要用中文名称保存时不要用中文路径)2、编写程序。
3、运行和调试过程。
外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH):单步执行程序,观察SFR中外部地址指针的变化;全速执行程序,可以看到外部数据存储器已赋值33H:五、实验结果可以看到外部数据存储器已赋值33H:六、问题讨论本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。
同时,学习掌握汇编程序的编写和调试过程。
实验二:存储块移动一、实验目的1 熟悉51汇编语言程序结构。
2 熟悉循环结构程序的编写,进一步熟悉指令系统。
3 熟悉编程环境和程序的调试。
二、实验内容将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。
湖南工业大学单片机实验报告 1认识实验剖析
实验一、认识实验实验一(一):存储器读写一、实验目的1、掌握寄存器、存储器读写等汇编指令;2、掌握编程软件编辑、编译、调试等基本操作;3、学习简单程序的基本调试方法。
二、实验设备PC机、Keil 软件、Proteus软件。
三、实验内容将70H-7FH16个字节单元的数据复制到片外存储器2000H开始的地址单元中,程序清单如下:ORG 0000HSJMP STARTORG 0030HSTART:MOV 70H,#00HMOV 71H,#01HMOV 72H,#02HMOV 73H,#03HMOV 74H,#04HMOV 75H,#05HMOV 76H,#06HMOV 77H,#07HMOV 78H,#08HMOV 79H,#09HMOV 7AH,#0AHMOV 7BH,#0BHMOV 7CH,#0CHMOV 7DH,#0DHMOV 7EH,#0EHMOV 7FH,#0FHMOV R1,#10HMOV R0,#70HMOV DPTR,#2000HLOOP:MOV A,@R0MOVX @DPTR,AINC R0INC DPTRDJNZ R1,LOOPEND四、上机操作及调试步骤1、启动PC机,打开Keil4软件,如图(1)图(1)2、建立Keil工程文件,如图(2)图(2)3、建立一个exe1工程文件(工程文件名任意取),不需要扩展名。
选择工程存放路径,点击“保存”按钮。
如图(3)图(3)4、选择芯片,51单片机在Atmel下,找到A T89C51,选中点击OK;图(4)5、因为使用汇编语言,下面弹出窗口选否;图(5)6、建立工程如图图(6)7、为工程添加文件,也就是汇编代码,点击新建按钮(或File->new),弹出Text1文本文件。
新建.ASM文件如图图(7)8、另存为到工程文件,点击保存,保存.asm文件图(8)9、保存后如图图(9)10、添加源文件exe1.asm,右键单击Source Group1,选中其中的“Add file to Group”Source Group1”,出现一个对话框,要求寻找源文件,单击exe1.asm文件,然后在点击Add按钮,此时对话框不会消失,在点击close就Ok 了,如图图(10)图(11)11、没有匹配的源文件,不要急,将C Source file(*.c)换成All files(*.*),源文件就出来了图(12)12、最终如图13、接下来就是写汇编代码了14、写好汇编代码,点击下面三个按钮进行编译……,没有错误(0 Error)就编译通过15、生成hex文件,下载到单片机中,使得单片机工作…………设置如下:单击如下按钮,在弹出的对话框中选中output列表项,按图设置,并单击OK保存就行了。
实验报告(单片机实验报告)
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 计数显示器一、实验目的熟悉51单片机的基本输入输出应用,掌握Proteus模块的原理图绘图方法及单片机系统仿真运行方法二、实验原理由共阴极数码管LED1和LED2、P0口、P2口,上拉电阻RP1及Vcc组成的输出电路;由按钮开关BUT、P3.7和接地点组成的输入电路,该电路在编程软件的配合下,可实现计数显示功能:可统计按钮BUT的按压次数,并将按压结果以十进制数形式显示出来;当显示值达到99后可自动从1开始,无限循环。
三、实验内容(1)观察Proteus模块的软件结构,熟悉菜单栏、工具栏、对话框等基本单元功能(2)学会选择元件、画导线、修改属性等基本操作(3)学会可执行文件加载及程序仿真运行方法(4)验证计数显示器的功能四、实验要求提交实验报告并包括如下内容:电路原理图、电路原理分析、仿真运行截图及实验小结1.实验原理图2.仿真运行截图3.实验小结通过这次实验让我认识了kell和proteus软件的基本功能,学会了用kell编写程序用proteus仿真运行。
在这次实验中同时也遇到了很多问题。
比如因为第一次使用这两个软件对界面还不太熟悉,浪费了很多的时间也产生了很多错误,但之后与同学们的交流过程中,慢慢的对这两个软件有了更深入的了解,在后期仿真的时候才能得心应手的处理问题。
这个计数显示器的实验让我进一步了解了单片机与数码管的魅力,看到了电子元件的神奇之处,只要按动按键就能让数码管的数字逐次加一,这大大激发了我的学习单片机兴趣,这次实验也会成为我以后学习单片机的奠基石,因为它打开了我认识单片机的大门,让我认识到了单片机的魅力,并让我沉浸其中。
实验2 指示灯开关控制器一、实验目的学习51单片机I/O口基本输入输出功能,掌握汇编语言的编程与调试方法。
二、实验原理输入电路由外接在P1口的8只拨动开关组成;输出电路由外接在P2口的8只低电平驱动的发光二极管组成。
单片机实验报告
单片机实验报告一、实验目的本次单片机实验的主要目的是通过实际操作和编程,深入了解单片机的工作原理和应用,掌握单片机系统的设计、开发和调试方法,提高自身的动手能力和解决问题的能力。
二、实验设备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 P1口实验一一、实验目的:1.学习P1口的使用方法。
2.学习延时子程序的编写和使用。
二、实验设备:CPU挂箱、8031CPU模块三、实验内容:1.P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮。
2.P1口做输入口,接八个按纽开关,以实验箱上74LS273做输出口,编写程序读取开关状态,在发光二极管上显示出来。
四、实验步骤:1、打开CPU挂箱,正确安装8031CPU模块,指导显示屏上显示“199502”字样2、执行程序1(T1_1.ASM)时:P1.0~P1.7口接发光二极管L1~L8。
执行程序2(T1_1.ASM)时:P1.0~P1.7口接平推开关K1~K8;74LS273的O0~O7接发光二极管L1~L8;74LS273的片选端CS273接CS0。
3、打开软件,选择相应的COM口和波特率,电脑与CPU挂箱正确连接上后,软件窗口的下端会显示已连接上,相应的CPU挂箱显示屏上会显示“C ”字样。
4、在软件上选择新建,新建文件类型为ASM51,新建好后,编写程序。
5、程序编写好后,选择保存,然后进行编译,调试,运行程序。
6、观察CPU挂箱上硬件的运行是否与设计的一样,否则进行相应的修改和调试。
五、注意事项1、P1口为准双向口,P1口的每一位都能独立地定义为输入位或输出位。
作为输入位时,必须向锁存器相应位写入“1”,该位才能作为输入。
8031中所有口锁存器在复位时均置为“1”,如果后来在口锁存器写过“0”,在需要时应写入一个“1”,使它成为一个输入。
2、延时程序的实现,采用指令循环来实现,本实验系统晶振为 6.144MHZ,则一个机器周期为12÷6.144us即1÷0.512us。
现要写一个延时0.1s的程序,可大致写出如下: MOV R7,#X (1)X为外循环的次数,放在R7DEL1:MOV R6,#200 (2)200为内循环的次数,放在R6DEL2:DJNZ R6,DEL2 (3)执行内循环DJNZ R7,DEL1 (4)判断R7是否为0,是否结束循环上面MOV、DJNZ指令均需两个机器周期,所以每执行一条指令需要1÷0.256us,现求出X 值:1÷0.256+X(1÷0.256+200×1÷0.256+1÷0.256)=0.1×10⁶指令(1)指令(2)指令(3)指令(4)所需时间所需时间所需时间所需时间所以X=(0.1×10⁶-1÷0.256)/(1÷0.256+200×1÷0.256+1÷0.256)=127D=7FH 经计算得X=127。
单片机实验报告参考
《实验一 应用系统开发过程演示》实验报告参考一.实验目的1.了解单片机应用系统的开发过程,获得感性认识。
2.了解开发箱/开发板的使用方法3.了解仿真软件的基本功能和使用方法。
二.实验环境(一) EL 型微机教学实验系统:1. 设备::北京精议达盛科技有限公司EL-MUT3多CPU 单片机/微机实验实训系统2. 软件:北京精议达盛科技有限公司8051调试软件4.0版 二.实验电路(一) EL 型微机教学实验系统实验电路(二) 仿真软件开发调试环境: 1.英国 Labcenter electronics 公司的Proteus EDA 工具软件, 2. 美国Keil 公司的µVision 集成开发环境 (二) 仿真软件实验电路:三. 操作步骤:(一)EL 型微机教学实验系统操作步骤1. 连线:P1.0~P1.7接LED1~LED82. 新建汇编语言源文件3. 另存为D:\J08X\SY1.ASM4. F3编译生成目标文件,F5进入调试:工具栏上“R ”打开寄存器窗,“H ”打开反汇编窗口F8,单步执行,观察相关寄存器窗口中有关寄存器中数据的变化。
四. 源程序(括号中为EL 型微机教学实验系统中的程序)ORG 0000H (ORG 4000H ) SJMP MAIN (LJMP MAIN) ORG 0040 H (ORG 4100H) MAIN: MOV A,#0FEH LOOP: MOV P2,A (MOV P1,A ) LCALL D_1s RL A AJMP LOOP ;以下为延时子程序 D_Is: MOV R6,#100 ;1s D10ms: MOV R5,#40 :10ms DL: MOV R4,#123 N0P DJNZ R4,$ DJNZ R5,DL DJNZ R6,D10ms RET END(二) 仿真软件开发调试环境: ◆Proteus 工具软件下, 1.新建设计 ①选取元件 A T89C51,RES,LED-RED ②在工作区放置元件,地线,电源 电阻RES 阻值200Ω,模式DIGITAL ③连线 2. 源程序设计,生成目标文件代码 “Source →Add/RemoveFiles ”新建源程序文件D:\J08X\L Y1.ASM “Source → SY1.ASM ”在文本编辑器编写源程序 通过“Source →BuildAll ”编译源程序,生成目标程序。
单片机实验报告1
单片机实验报告第一单元1-1(1)原程序:$include (C8051F020.inc)LCALL Init_DeviceMOV A, #0FFH ;清除挂接在总线上的数码管的显示内容MOV DPTR, #00HMOVX @DPTR,AMOV A,#07FH ;赋初始值并在发光二极管上显示该数值MOV P1,A修改:MOV A,#80H ;赋初始值80H并在发光二极管上显示该数值CPL A ;正逻辑,点亮发光二极管(2)修改:将RR A改为RL A,即左移(3)修改:减少CALL DELAY指令个数即可加快点亮速度。
第二单元2-1(1)修改:将原程序中STAR中断入口地址0003H与STOP中断入口地址0013H 对调,并将程序中EX0与EX1 ,IE0与IE1对调。
在中断子程序中设置INT1为高优先级,即将MOV IP,#01H指令改为MOV IP,#04H(2)修改:INITIAL: SETB 7FHLOOP: CLR EA ;关闭中断JB 7FH,LEFTRR ASJMP NEXTLEFT: RL ANEXT: MOV P1,A ;刷新发光二极管控制数据INC R1 ;发光二极管点亮位置计数值增1SETB EA ;开放中断LCALL DELAY1 ;延时LCALL DELAY1LCALL DELAY1 ;延时LCALL DELAY1CJNE R1,#8,LOOP ;发光二极管点亮位置计数值有效性检测MOV R1,#0H ;发光二极管点亮位置计数值等于8则回0SJMP LOOP ;无限次循环STOP: CPL 7FH2-2 原程序:LOOP: MOV A,TL0 ;读计数器0的计数值CJNE A,#10H,L1 ;如果A中为16时MOV TL0,#0 ;计数器0清0MOV A,TL0MOV DP_L,A ;在DS2显示计数器0的计数值CALL DISPLAY ;调用显示子程序显示计数值SJMP LOOP ;无限次循环修改:LOOP: MOV A,TL0 ;读计数器0的计数值CJNE A,#10H,L1 ;如果A中为16时MOV TL0,#0 ;计数器0清0MOV A,TL0INC DP_HMOV R0,DP_HCJNE R0,#10H,L1MOV DP_H,#0L1: MOV DP_L,A ;在DS2显示计数器0的计数值CALL DISPLAY ;调用显示子程序显示计数值SJMP LOOP ;无限次循环第三单元3-1(1)修改:将TIM_L EQU 0FDH 与TIM_H EQU 0FDH指令中0FDH 改为0F4H(2)修改:将L0中ADD A,#30H指令改为ADD A,#40H(3)原程序:REC1: PUSH ACC ;保护累加器AMOV A SBUF ;接收串行数据PUSH ACC ;暂存ANL A,#0FH ;取低4位MOV DP_L,A ;送低位显示数据缓冲器POP ACC ;读取暂存数据SWAP AANL A,#0FH ;取高4位MOV DP_H,A ;送高位显示数据缓冲器CALL DISPLAY ;调用显示子程序POP ACC ;恢复累加器ACLR RI ;清除接收中断标志RETI ;中断返回修改:REC1: PUSH ACC ;保护累加器AMOV A,SBUF0 ;读接收缓冲器CPL AMOV P1,APOP ACC ;恢复累加器ACLR RIRETI ;中断返回。
单片机实验报告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、外部数据空间得各种方法。
单片机原理实验报告
实验一:系统认识实验一、设计目的: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.请同学再思考一下,继电器的用途,并举例说明;继电器是一种电控制,是当输入量激励量的变化达到规定要求时,在电气输出电路中使被控量发生预定的阶跃变化的一种电器;它具有又称输入回路和被控制系统又称输出回路之间的互动关系;通常应用于自动化的控制中,它实际上是用小电流去控制大电流运作的一种“自动开关”;故在电路中起着自动调节、安全保护、转换电路等作用;按照其工作原理可有以下应用:电磁继电器固体继电器温度继电器舌簧继电器时间继电器高频继电器极化继电器其他类型的继电器八、实验总结及相关问题由于具有之前实验的基础所以本实验基本没碰到什么问题,调试运行都符合实验要求,通过本次实验了解了继电器的控制方法;对继电器这一器件有了一定了解;。
单片机原理及应用实验报告
ET0=1;
TR0=1;
while (1)
{
ScanKey0( );
keyscan( ); //按键扫描
time_pro( ); //时间处理
display( ); //显示时间
}
}
实验结果:
数码管可以显示时钟的时分秒,按下按键1,可以在时钟的时分秒为切换,按下按键2,可以在选择的任意位+1,从而实现时间的修改。
实验接线图:
实验程序:
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define uint unsigned int
uchar code dispcode[ ]={0xC0,0xF9,0xA4,0xB0,0x99,
0x92,0x82,0xf8,0x80,0x90};
loop:
Dsplay();
goto loop;
}
void Dsplay() //动态扫描显示
{uchar i;
for(i=0,P1=0x01;i<6;i++)
{ P0=cDsCode[mDS[i]];//输出段
Delayms(2);
P1=P1<<1; //选通下一位
}
P1=0x00; //关闭位选通
实验五:存储器系统设计
实验目的:掌握存储器工作原理及特点。通过该实验让学生掌握单片机存储器系统的硬件设计,存储器在系统中的地址分配,地址总线、数据总线与控制总线的连接。
实验内容:1.在实验板上将一片6264RAM芯片设计成8K的外部数据存储器,地址为0000H—1FFFH。
单片机实验报告(完整版)
单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的: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仿真、调试等基本操作方法。
单片机实验报告
一、实验目的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端为直通输出。
单片机实验报告
单⽚机实验报告单⽚机原理及接⼝技术实验报告班级学号:姓名:实验⼀P1⼝输⼊输出实验与P1、P3⼝输⼊输出实验⼀、实验⽬的及任务学习P1、P3⼝的使⽤⽅法,熟练HICE单⽚机试验系统的操作步骤。
⼆、实验总体设计本实验分为两部分:P1⼝和P1、P3⼝输⼊输出实验。
1、P1⼝是⼀个准双向⼝,外接⼋个发光⼆极管,连续运⾏程序,发光⼆极管循环点亮2、P3⼝作为输⼊读取开关状态,P1⼝作为输出⼝,连续运⾏程序,发光⼆级管显⽰开关状态。
3、设计思路如下:(1)、开始——>P1⼝初始化——>点亮⼀位发光⼆极管——>右移⼀位——>循环;(2)、开始——>初始化——>P3⼝开关状态送到P1⼝——>驱动发光⼆极管——>延时三、试验程序框图及实验电路(实验电路及连线详见附录)四、软件设计⼀、P1⼝输⼊输出程序代码:#inc lud e#def ine uc har un sig ned ch ar#def ine ui nt uns ign ed intucha r r rc(uch ar a,n);ucha r r rc(uch ar a,n) //循环右移⼦程序{ucha r b,c;b=a<<(8-n);c=a>>n;a=c|b;retu rn(a);}void ma in(){ucha r i,te mp;uint j;P1=0xff;loop:temp=0x7f;for(i=0;i<8;i++){P1=r rc(tem p,i);for(j=0;j<30000;j++);//延时}}⼆、和P1、P3⼝输⼊输出实验。
#i ncl ude#def ine uc har un sig ned ch ar#def ine ui nt uns ign ed intvoid ma in(){uint j;loop:P1=0XFF;P1=P3;//读取P3⼝状态送P1⼝for(j=0;j<5000;j++);//延时goto lo op;}五、硬件设计1、仿真模式设置:8752模式,仿真存储器模式选择:内程序存储器外数据存储器;2、仿真器P3.6/P3.7短路块设置在WR/RD状态(见仿真器说明书跳线设置)。
单片机实验报告(学期全部实验)
单片机程序设计实验报告姓名:学号:专业班级:第二节课:实验一:1357,2468位置的灯交替闪烁一实验要求1357,2468位置的灯交替闪烁。
二硬件连接图与结果三原理简述程序直接控制LED各位置的灯亮灭,时间间隔简单的用了一个延时的语句。
四程序#include<reg51.h>main (){int i;P0=0XAA; //1357四个灯亮for (i=0;i<=25000;i++); //延时程序P0=0X55; //2468四个灯亮for (i=0;i<=25000;i++); //延时程序}五所遇问题与解决方式程序比较简单,没有遇到问题。
实验二:流水灯一实验要求流水灯,一个接一个的灯亮,亮到最后一个后,全部的灯亮,然后重头开始。
二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。
时间间隔简单的用了一个延时的语句。
因为移位时是直接补0,发送低电平不亮,所以直接移位达到要求。
四程序//流水灯#include<reg51.h>main (){int i,j;while(1){P0=0X01; //第1个灯亮for (i=0;i<=30000;i++); //延时程序for(j=0;j<=7;j++) //移位循环程序{P0=P0<<1; //移位for (i=0;i<=30000;i++); //延时程序}P0=0xff; //全亮for (i=0;i<=30000;i++); //延时程序}}五所遇问题与解决方式程序比较简单,没有遇到问题。
实验三:跑马灯一实验要求一个接一个的灯亮,前面亮过的等依旧亮,直到最后一个灯,最后重新开始,循环。
二硬件连接图与结果三原理简述程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。
单片机设计实验报告简单计算器的设计
目录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)。
输入程序并保存,运行程序并填写下表。
程序
执行结果
源操作数寻址方式
MOV #30H
MOV A ,
R0, R0=30H @R0
立即寻址
MOV A , R0
MOV 31H, 30H
MOV #30H
32H,
INC @R0
MOV 31H, @R0
MOV #0010H
DPTR,
MOVX
A,
@DPTR
MOVC
A,
《 单片机原理及接口技术》
实验报告
专业
班级
姓名
学号
同组人
实验时间
年
月
日节
实验名称
基本指令实验
一、实验目的:
指导教师 实验地点
二、实验设备: 三、实验内容
四、实验预习
五、实验程序及运行记录
1、 数据传送类指令及寻址方式。
设定内部 RAM(30H)=07H,外部 RAM(0010H)=01H,(0011H)=00H,R7=15H,
六、成绩评定
@A+DPTR
SWAP A
XCHD A, @R0
PUSH ACC
PUSH 07H
POP ACC
POP 07H
END
2、 算术运算类指令及 PSW 状态的变化规律
程序
A
B
CY
AC
OV
P
ORG 0000H
00H 00H
0
0
0
0
SETB C
MOV A,#49H
ADDC A,#27H
DA A
SUBB A,#0A5H
ADD A,#2DH INC A ADDC A,#95H DIV AB MOV B,#08H MUL END 3、 拆字程序,设(20H)=35H,要求拆为 03H、05H 存放在外部 RAM0020H、0021H 单 元中。 写出该程序的机器代码。
源程序
指令首地址
机器代码
ORG 0000H MOV R0, #20H
MOV DPTR, #0020H MOV A,@R0
ANL A, #0FH
MOVX @DPTR, A
INC DPTR
MOV A,@R0 SWAP A ANL A, #0FH MOVX @DPTR, A
SJMP $ 4、 通过指令EN实D现信号灯的显示。 开发板实验线路:
(1)D3 号信号灯亮,其他灯灭。 用字节操作指令实现: 用位操作指令实现: (2)信号灯 D3\D5\D7 亮,其余灭。