单片机实验5
单片机实验报告
单片机实验报告实验一:存储器块清零或赋值一、实验目的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)。
单片机实验指导书
目录实验一系统认识实验 (2)实验二端口I/O输入输出实验 (14)实验三外部中断实验 (17)实验四定时器实验 (21)实验五串行口通信实验 (25)实验六串行通信的调试实验 (29)实验七数码管静态显示实验 (34)实验八数码管动态显示实验 (39)实验一系统认识实验一、实验目的1.学习Keil C51编译环境的使用;2.学习STC单片机的下载软件STC-ISP的使用;3.掌握51单片机输出端口的使用方法。
二、实验内容任选单片机的一组I/O端口,连接LED发光二极管,编写程序实现8个LED按二进制加1点亮。
三、接线方案单片机P10~P17/C51单片机接L0~L7/LED显示,如下图:图1-1实验线路四、实验原理51单片机有4个8位的并行I/O端口:P0、P1、P2、P3,在不扩展存储器、I/O端口,在不使用定时器、中断、串行口时,4个并行端口,32根口线均可用作输入或输出。
作为输出时,除P0口要加上拉电阻外,其余端口与一般的并行输出接口用法相同,但作为输入端口时,必须先向该端口写“1”。
例如P0接有一个输入设备,从P0口输入数据至累加器A中,程序为:MOV P0, #0FFHMOV A, P0若将P0.0位的数据传送至C中,程序为:SETB P0.0MOV C, P0.0五、实验步骤1、连接串行通信电缆和电源线;2、根据图1-1实验线路进行电路连接;3、将C51单片机核心板上的三个开关分别拨到“独立”、“运行”“单片机”;4、打开实验箱上的电源开关。
5、利用Keil C51创建实验程序,并进行编译生成后缀为.HEX的文件;6、利用STC-ISP软件将后缀为.HEX的文件下载到单片机ROM中;7、观察实验现象,并记录。
若实验现象有误请重复第5、6步。
六、参考程序ORG 0000H ;程序的开始LJMP MAIN ;转入主程序ORG 0200H ;主程序的开始MAIN: MOV P1,#00H ;P1口做准备M1: INC P1 ;P1口连接输出计数,LCALL DELAY ;转入延时子程序LJMP M1 ;循环DELAY: MOV R5,#255 ;延时子程序D1: MOV R6,#255DJNZ R6,$DJNZ R5,D1RETEND ;程序体结束七、思考题1、利用其他I/O口实现LED加1点亮功能;2、利用P1端口实现流水灯(左移或右移)功能;3、实现LED其他点亮功能。
《单片机系统设计技术》实验指导
《单片机系统设计技术》实验指导书适用专业: 电气、自动化、信息等编写单位: 电气信息学院编写人: 曹 林审核人:审批人:批准时间:年月日目 录实验1 IO控制LED流水灯实验 (3)实验2 IO控制数码管动态扫描实验 (5)实验3 外部中断实验 (8)实验4 定时器应用控制实验 (10)实验5 UART实验 (12)实验6 键盘扫描输入编程 (14)实验7 UART与PC对话实验 (17)实验8 ADC数据采集实验 (19)实验1 IO控制LED流水灯实验1.实验目的1)、熟悉KEIL编程环境和调试环境。
2)、掌握单片机汇编语言和指令的用法。
3)、理解简单的IO控制程序,延迟子程序,并对其修改,使其功能改变。
2.实验设备硬件: PC 机,单片机教学实验开发平台;软件: KEIL集成开发环境、STC ISP程序下载软件。
3.实验内容使用P0口控制8个LED 进行流水灯显示。
4.实验预习要求和实验准备要求预习教科书关于单片机硬件架构内容、IO口的内容,特殊寄存器内容。
预习汇编程序编写、MCS-51指令表。
带上教科书、U盘、具备二进制和十六进制转换的科学计算器。
5.实验原理和步骤1)实验原理(1)实验原理图图1 P0口连接的8盏LED灯从图1中可以看出:如果需要把LED点亮有两个条件,其一是需要用短接帽把J1的2脚和3脚短接,在PCB上就是将电路板左上角LED和VCC短接起来;其二是P0.X口给出低电平,让电流从VCC开始流经限流电阻、LED后进入单片机的P0.X口,最后到单片机内部的地线上。
因此,简单地说就是在短接帽接好的前提下,向P0.X口写0则LED将点亮,写1则LED将熄灭。
图中网络标识PORT0_0、PORT0_1……PORT0_7和单片机P0.0、P0.1……P0.7连接,可观察原理图上单片机P0口的网络标识也是PORT0_0、PORT0_1……PORT0_7。
2)实验步骤(1)启动KEIL集成开发环境,按照《KEIL使用方法》中描述步骤进行工程建立、汇编源程序文件添加。
单片机原理与应用实验报告5——秒表定时器实验
大连理工大学软件学院《单片机原理与应用》实验报告姓名:学号:班级:姓名:学号:班级:组号:实验箱编号:实验时间:月日实验室:嵌入式实验室实验台:Embest Edukit-III平台指导教师:侯刚成绩:实验五:秒表定时器实验一、实验目的和要求题目:秒表定时器实验实验目的1. 学习单片机的基本接口技术。
2. 学习74HC595、74HC138使用及与51单片机的控制方法。
实验要求1.通过按键控制,完成数码管的显示计数控制。
2. 用汇编语言设计程序,完成8个数码管的显示控制。
当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。
当再次按下INT 按钮时,停止计数。
二、实验原理和内容实验内容:用汇编语言设计程序,完成8个数码管的显示控制。
当按下INT 按钮时,数码管开始快速计时,高五位为秒数,低三位为ms 数,每1ms 刷新一次显示内容。
当再次按下INT 按钮时,停止计数。
实验原理:1.根据原理图,分析工作原理,有P0进行取段码,P2.0 P2.1 P2.2进行取位码。
2.使用定时器进行计时。
根据所给开发板上的晶振频率,计算出计时器所付初值,设置计时器TO在模式下工作,每次计时100ms后,转入数码管显示中断处理程序。
3.实验板为共阴极数码管显示,将对应的显示0~9的电信号依次存储在“数组表”中。
4.使用key1,key2两个按键,按下key1,开始计时。
按下key2,计时停止。
5.根据实验要求,采用T0,T1两个定时器,其中T0用来增加时间显示,T1为按暂停键时为LED显示管循环上电所用。
6.每部分中断程序用寄存器间接寻址的方式获取显示数字的电信号量。
并进行循环上电,保证数字的亮度。
三、主要仪器设备及软件编程环境主要仪器:计算机编程软件,51电路开发板编程环境:uVision2 ,progisp烧写软件四、实验步骤与编程实验步骤:编写代码,编译,调试,烧写,完成实验。
单片机实训心得5篇
单片机实训心得5篇(实用版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的实用资料,如工作总结、工作报告、工作计划、心得体会、讲话致辞、教育教学、书信文档、述职报告、作文大全、其他资料等等,想了解不同资料格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor.I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of practical materials for everyone, such as work summaries, work reports, work plans, reflections, speeches, education and teaching, letter documents, job reports, essay summaries, and other materials. If you want to learn about different data formats and writing methods, please stay tuned!单片机实训心得5篇通过与他人分享心得体会,可以促进交流和合作,共同探讨问题和解决挑战,心得体会是我们的财富,它们可以指导我们的决策和行动,本店铺今天就为您带来了单片机实训心得5篇,相信一定会对你有所帮助。
51单片机项目教程项目 5 蜂鸣器实验
图5- 9蜂鸣器实物结果
当SM0、SM1=01时,串行口设为方式1的双机串行通信。TXD脚和 RXD脚分别用于发送和接收数据。
5.2技术准备
方式1发送时,数据位由TXD端输出,发送一帧信息为10位:1位起始 位0,8位数据位(先低位)和1位停止位1。当CPU执行一条数据写 SBUF的指令,就启动发送。发送开始时,内部发送控制信号变为有 效,将起始位向TXD脚(P3.0)输出,此后每经过一个TX时钟周期, 便产生一个移位脉冲,并由TXD引脚输出一个数据位。8位数据位全部 发送完毕后,中断标志位TI置1。 方式1接收时(REN = 1),数据从RXD(P3.1)引脚输入。当检测到 起始位的负跳变,则开始接收。当一帧数据接收完毕后,同时满足以 下两个条件,接收才有效。 (1)RI = 0,即上一帧数据接收完成时,RI = 1发出的中断请求已被 响应,SBUF中的数据已被取走,说明“接收SBUF”已空。 (2)SM2 = 0或收到的停止位 = 1(方式1时,停止位已进入RB8), 则将接收到的数据装入SBUF和RB8(装入的是停止位),且中断标 志RI置“1”。
5.2技术准备
5.2.2 了解实验板蜂鸣器电路
图5- 3蜂鸣器电路
5.2技术准备
5.2.3 蜂鸣器驱动电路
蜂鸣器驱动电路如图5-4所示。
图5- 4蜂鸣器驱动电路
5.2技术准备
5.2.4串行口的结构
单片机串口结构如图5-5所示。有两个物理上独立的接收、发送缓冲器 SBUF(属于特殊功能寄存器),可同时发送、接收数据。控制寄存器共 有两个:特殊功能寄存器SCON和PCON。发送和接收引脚分别是TXD (P3.0)和RXD(P3.1)。
SM0 0 0 1 1 SM1 0 1 0 1 工作 方式 0 1 2 3 功能简介 移位寄存器 8位UART 9位UART 9位UART 比特率 OSC/12 可变 OSC/32或 OSC/64 可变
单片机实验报告实验5行列式键盘实验
学号姓名专业电气工程及其自动化班级实验5 行列式键盘实验一、实验目的(1)、学习掌握行列式键盘接口方法(2)、学习掌握行列式键盘编程方法。
二、实验内容用单片机P1口接4*4键盘,P0口接共阳数码管,编程实现键字的显示。
P1.0-P1.3为行,P1.4-P1.7为列。
先给端口设处置FEH,相当于给第一行置0,然后分写列值,如果对应的列值为0,说明该行与该列交叉处的键是按下的,接下来扫描第二行,与第一行的操作相同。
这就是行列式键盘扫描原理。
当扫描到某行的键按下时,就退出扫描,然后取键值,再将键值对应的额编码送P0端口显示。
三、实验设备计算机(已安装Keil和Proteus软件)元器件:A T89C51, CAP, CAP-ELEC, CRYSTAL, RES, 7SEG-COM-AN-GRN, RESPACK-7, BUTTON四、实验硬件电路实验源程序:#include<reg51.h>charled_mod[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x6f,0x77,0x7c,0x58,0x5e,0x79,0x7 1};charkey_buf[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x 77};char getkey(void){char key_scan[]={0xef,0xdf,0xbf,0x7f};char i=0,j=0;for(i=0;i<4;i++){P1=key_scan[i];if((P1&0x0f)!=0x0f){for(j=0;j<16;j++){if(key_buf[j]==P1)return j;}}}return -1;}void main(void){char key=0;P0=0x00;while(1){key=getkey();if(key!=1)P0=~led_mod[key]; }}五、实验要求(1)、根据实验内容设计相应的调试程序,并通过仿真,运行正确。
单片机实验五报告_单片机键盘实验
单片机实验五报告_单片机键盘实验一、实验目的本次单片机键盘实验的主要目的是让我们深入了解单片机与键盘的接口技术,掌握如何通过编程实现对键盘输入的检测和响应,从而提高我们在单片机应用开发中的实际操作能力。
二、实验原理在单片机系统中,键盘通常是作为输入设备使用的。
常见的键盘有独立式键盘和矩阵式键盘两种类型。
独立式键盘是每个按键单独占用一根 I/O 线,其优点是电路简单,编程容易,但缺点是占用较多的 I/O 口资源。
矩阵式键盘则是将按键排列成矩阵形式,通过行线和列线的交叉来识别按键。
这种方式可以有效地节省 I/O 口资源,但电路和编程相对复杂一些。
在本次实验中,我们采用了矩阵式键盘。
其工作原理是通过逐行扫描或者逐列扫描的方式,检测行线和列线的电平状态,从而确定按下的按键。
三、实验设备及材料1、单片机开发板一块2、计算机一台3、编程软件(如 Keil C51)4、下载工具(如 STCISP)四、实验步骤1、硬件连接将矩阵式键盘与单片机的 I/O 口进行连接,注意行线和列线的对应关系。
连接好电源和地线,确保硬件电路正常工作。
2、软件编程打开编程软件,创建一个新的工程。
编写初始化程序,包括设置 I/O 口的工作模式、中断等。
编写键盘扫描程序,通过循环扫描行线和列线的电平状态,判断是否有按键按下。
当检测到按键按下时,根据按键的编码执行相应的操作,如在数码管上显示按键值、控制 LED 灯的亮灭等。
3、编译和下载对编写好的程序进行编译,检查是否有语法错误。
如果编译成功,使用下载工具将程序下载到单片机中。
4、实验调试观察硬件电路的工作状态,看是否有异常现象。
按下不同的按键,检查程序的响应是否正确。
如果出现问题,通过调试工具(如单步调试、断点调试等)查找并解决问题。
五、实验代码以下是本次实验的部分关键代码:```cinclude <reg51h>//定义键盘的行和列define ROW_NUM 4define COL_NUM 4//定义行线和列线的端口sbit ROW1 = P1^0;sbit ROW2 = P1^1;sbit ROW3 = P1^2;sbit ROW4 = P1^3;sbit COL1 = P1^4;sbit COL2 = P1^5;sbit COL3 = P1^6;sbit COL4 = P1^7;//定义按键值的编码unsigned char code KeyCodeMapROW_NUMCOL_NUM ={{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'','0','','D'}};//键盘扫描函数void KeyScan(){unsigned char i, j, temp;unsigned char keyValue = 0;//逐行扫描for (i = 0; i < ROW_NUM; i++){//先将所有行线置高电平ROW1 = ROW2 = ROW3 = ROW4 = 1;//将当前行线置低电平switch (i){case 0: ROW1 = 0; break;case 1: ROW2 = 0; break;case 2: ROW3 = 0; break;case 3: ROW4 = 0; break;}//读取列线的电平状态temp = COL1 | COL2 | COL3 | COL4;//如果有列线为低电平,则表示有按键按下if (temp!= 0xF0){//延迟去抖动delay_ms(10);//再次读取列线的电平状态temp = COL1 | COL2 | COL3 | COL4; if (temp!= 0xF0){//确定按下的按键for (j = 0; j < COL_NUM; j++){if ((temp &(1 << j))== 0){keyValue = KeyCodeMapij;break;}}//执行相应的操作switch (keyValue){case '1'://具体操作break;case '2':break;//其他按键的操作}}}}}//主函数void main(){while (1){KeyScan();}}```六、实验结果及分析在实验过程中,我们成功地实现了对矩阵式键盘的输入检测,并能够根据不同的按键执行相应的操作。
(单片机实验教学资料)5.数码管动态显示
实验效果上,学生能够通过实际操作掌握数码管动态显示 的方法,提高对单片机的应用能力。在实验过程中,需要 注意避免数码管亮度过高导致视觉疲劳,以及保证程序的 稳定性,避免出现闪烁或乱码现象。
展望
技术发展与新应用
教学改进与新方法
个人能力提升与拓展
随着技术的不断发展,数码管动态显 示技术将会有更多的应用领域。例如 ,在智能家居、物联网等领域中,数 码管动态显示可以作为人机交互界面 ,实现更加直观、高效的信息展示。
或字符。
数码管内部通常有8个LED段, 分别表示数字0-9和字母A-F。
当给某个LED段加上正向电压时, 该段点亮;反之,则熄灭。
动态显示与静态显示的区别
静态显示
每个数码管在某一时刻只显示一 个字符,需要使用多路复用技术 来控制多个数码管。
动态显示
通过轮流点亮不同的数码管,使 多个数码管同时显示不同的字符 ,实现多位显示。
实验结果展示
结果1
数码管成功显示数字或字母,无闪烁 或错位现象。
结果2
数码管显示效果不理想,存在闪烁或 错位现象。
结果分析
分析1
程序编写正确,数码管连接无误,因此数码管能够正确显示数字或字母。
分析2
程序中存在延时函数设置不当或数码管连接存在问题,导致数码管显示效果不 理想。
05
总结与展望
总结
发送控制信号
02
根据需要显示的内容,编写程序代码以向数码管发送相应的控
制信号。
刷新显示
03
在需要动态显示的情况下,编写程序代码以实现数码管的刷新
显示。
数码管驱动程序的编写
确定驱动程序功能
根据实际需求,确定驱动程序应具备的功能,如显示数字、字母 或自定义字符等。
-单片机实验
实验一数据传送实验实验内容:将8031内部RAM 40H—4FH单元置初值A0H—AFH,然后将片内RAM 40H—4FH单元中的数据传送到片外RAM 9800H—980FH单元,再从片外RAM 9800H—980FH单元中的数据传送到片内RAM 50H—5FH单元。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
源程序清单:ORG 0000HRESET: SJMP MAINORG 003FHMAIN: MOV R1,#40HMOV R2,#10HMOV A, #0A0HA1: MOV @R0,AINC R0INC ADJNZ R2,A1MOV R0, #40HMOV DPTR, #9800HMOV R2, #10HA2: MOV A, @R0MOVX @DPTR, AINC R0INC DPTRDJNZ R2,A2MOV R0, #50HMOV DPTR, #9800HMOV R2, #10HA3: MOVX A, @DPTRMOV @R0, AINC RINC DPTRDJNZ R2, A3LJMP 0000HEND思考题:1. 按照实验内容补全程序。
2. CPU 对8031内部RAM存储器和外部RAM存储器各有哪些寻址方式?内部RAM存储器寻址方式:直接寻址方式寄存器间接寻址基址变址寄存器间接寻址外部RAM存储器寻址方式:寄存器间接寻址基址变址寄存器间接寻址3. 执行程序后下列各单元的内容是什么?内部RAM 40H~4FH _________________________ 内部RAM 50H~5FH__________________________ 外部RAM 9800H~980FH______________________ 截图:实验二多字节十进制加法实验实验内容:多字节十进制加法。
加数首地址由R0 指出,被加数和结果的存储单元首地址由R1指出,字节数由R2 指出。
将程序经模拟调试通过后,运行程序,检查相应的存储单元的内容。
单片机实验五 -键盘实验
电子信息工程系实验报告课程名称:单片机与接口技术实验项目名称:键盘实验 实验时间:2013-5-23班级:通信10 姓名:Microlab_4 学号:实 验 目 的:熟悉keil 仿真软件、proteus 仿真软件的使用和实验板中行列式键盘的使用。
了解并熟悉行列式键盘的电路结构、与单片机的连接方法及其工作原理,理解掌握C51中单片机控制行列式键盘中判断按键是否按下、按键的识别、按键的消抖分别是如何实现的。
实 验 原 理:键盘是单片机系统中通用的输入设备,用于向系统输入数据或控制信息。
键盘中一般矩阵式(行列式)键盘用得较多,适用于按键数量较多的场合。
矩阵式键盘由行线和列线组成,按键位于行线、列线的交叉点上。
当键被按下,则其交点的行线和列线接通。
行和列可分别用两个I/O 口来控制。
判断是否有键按下时,行线通过上拉电阻接+5V 上,而先使所有列线为低电平(I /O 输出0),再读行线状态(输入口),当无键按下时,所有行线为高电平,即读到“全1”数据;当有某键按下时,总会有一根行线为低电平,即读到的数据不全为“1”。
按键的识别(识别键的行列位置)有两种方法:扫描法和反转法。
反转法将行线接一并口,做输出方式;列线接一并口,做输入方式。
使所有行线为低电平(送全“0”),读入列线值,为“0”的那列,即按键所在列;反过来,使行线做输入方式,列线做输出方式。
将刚读到的列线值输出,然后读行线值,为“0”的那行,即按键所在行。
编程时使用P1=0x0f;m=P1;P1=0xf0;n=P1;mn=m|n;即可得到按键的键值,每一个按键都有自己唯一的键值。
按键或键盘都是一个机械开关,键的按下和放开是利用机械触点的闭合和断开来实现的。
由于机械触点的弹性作用,一个按键开关在闭合及断开瞬间均有一连串的抖动,抖动的时间长短由按键的机械特性决定,一般为5~10ms。
为了确保按键动作只确认一次,必须消除抖动的影响。
一般采用延时的方法。
单片机实验报告(完整版)
单片机原理与应用实验报告学院(部):专业:学生姓名:班级:学号:最终评定成绩:实验一存储器读写一、实验目的: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仿真、调试等基本操作方法。
单片机实验内容
;然后继续两个灯亮两个灯灭的路口的正常状态,正常状态是每3秒钟信号切换一次;R7为1代表有急救车通过,为0表示正常状态
;需要的硬件连线有P1.0~P1.4连发光二极管,单片机的P3.0与P3.1连EXB51仿真板旁边的RXD与TXD
SUBB A,R3
JC LOOP1
SETB F0
MOV A,R3
XCH A,@R1
DEC R1
XCH A,@R1
INC R1
LOOP1:MOV A,@R1
DJNZ R5,LOOP
JB F0,START
ORG 0000H
LJMP START
ORG 0100H
START: MOV R2,#10H
MOV R0,#40H
MOV A,#00H
LP:MOV @R0 ,A
INC R0
INC A
DJNZ R2,LP
MOV R2 ,#08H
MOV R0,#40H
MOV R1,#50H
LP1:MOV A,@R0
INC R0
ADD A,@R0
MOV @R1,A
INC R0
TIME0:
PUSH PSW
CJNE R7,#0H,SOS
DJNZ R0,TIMEOUT
MOV R0,#30
CPL P1.0
CPL P1.1
CPL P1.2
CPL P1.3
MOV B,P1
TIMEOUT:
MOV TH0,#03CH
MOV R0,#30
单片机实训报告范文精选5篇
单片机实训报告范文精选5篇单片机课程设计心得体会在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。
通过在单片机小组里的学习我简单总结了几点心得和体会:第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。
凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。
可以从建工程开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。
第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。
比方:小灯得点亮就没有用到中断可以先不用看。
这样可以防止知识过多记不住的麻烦。
对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。
第三:程序不要只是看别人得,一定要自己写过才是自己的。
开始不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。
明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。
当你自己能写出来的时候说明你真懂了。
第四:一定要学会程序调试的方法。
有时候把程序写完了然后运行时不能实现理想的现象。
这时有人就晕了不知该怎么办,然后就去问别人。
当别人找出问题出在哪里时就会恍然大悟。
其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。
自己一定要掌握解决问的方法和思路。
第五:在学习初期看别人的代码,学习别人的思路这个很有用。
通过看别人的代码特别是有多年编程经验的人的程序,可以迅速提高自己的编程水平。
也可以结合着别人的手法,与自己的想法结合在一起写出更好的程序。
但是切记将学习变成抄袭,不能认为抄袭别人的你就学会了,这样只能使你退步。
单片机实验报告
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
51单片机实验心得体会5篇
51单片机实验心得体会5篇(经典版)编制人:__________________审核人:__________________审批人:__________________编制单位:__________________编制时间:____年____月____日序言下载提示:该文档是本店铺精心编制而成的,希望大家下载后,能够帮助大家解决实际问题。
文档下载后可定制修改,请根据实际需要进行调整和使用,谢谢!并且,本店铺为大家提供各种类型的经典范文,如述职报告、演讲发言、汇报材料、对照材料、心得体会、策划方案、规章制度、教学资料、作文大全、其他范文等等,想了解不同范文格式和写法,敬请关注!Download tips: This document is carefully compiled by this editor. I hope that after you download it, it can help you solve practical problems. The document can be customized and modified after downloading, please adjust and use it according to actual needs, thank you!Moreover, our store provides various types of classic sample essays for everyone, such as job reports, speeches, presentation materials, reference materials, insights, planning plans, rules and regulations, teaching materials, complete essays, and other sample essays. If you want to learn about different sample formats and writing methods, please pay attention!51单片机实验心得体会5篇心得体会是内在世界的翻译,将情感的语言变为思考的文字,重视体会的写作,我们才能让自己的观点影响更多人,本店铺今天就为您带来了51单片机实验心得体会5篇,相信一定会对你有所帮助。
单片机实验报告(学期全部实验)
单片机程序设计实验报告姓名:学号:专业班级:第二节课:实验一: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次后全部的灯亮,最后定义整个循环。
定时计数器实验-单片机
单片机实验报告G A T EC /TM 1M 0G A T EC /TM 1M 0TH1TL1TH0TL0T1方式T1引脚T0引脚机器周期脉冲内部总线TMODTCON 外部中断相关位T F 1T R 1T F 0T R 0实验五 定时/计数器实验一、实验目的1.学习8051内部定时/计数器的工作原理及编程方法; 2.掌握定时/计数器外扩中断的方法。
二、实验原理8051单片机有2个16位的定时/计数器:定时器0(T0)和定时器1(T1)。
它们都有定时器或事件计数的功能,可用于定时控制、延时、对外部事件计数和检测等场合。
T0由2个特殊功能寄存器TH0和TL0构成,T1则由TH1和TL1构成。
作计数器时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数,当输入脉冲信号从1到0的负跳变时,计数器就自动加1。
计数的最高频率一般为振荡频率的1/24。
定时/计数器的结构:定时/计数器的实质是加1计数器(16位),由高8位和低8位两个寄存器组成。
TMOD 是定时/计数器的工作方式寄存器,确定工作方式和功能;TCON 是控制寄存器,控制T0、T1的启动和停止及设置溢出标志。
计数器初值的计算:设计数器的最大计数值为M(根据不同工作方式,M 可以是213、216或28),则计算初值X的公式如下:X=M-要求的计数值(十六进制数)定时器初值的计算:在定时器模式下,计数器由单片机主脉冲fosc经12分频后计数。
因此,定时器定时初值计算公式:X=M-(要求的定时值)/(12/fosc)80C51单片机定时/计数器的工作由两个特殊功能寄存器控制。
TMOD用于设置其工作方式;TCON用于控制其启动和中断申请。
❖工作方式寄存器TMOD:工作方式寄存器TMOD用于设置定时/计数器的工作方式,低四位用于T0,高四位用于T1。
其格式如下:GATE:门控位。
GATE=0时,只要用软件使TCON中的TR0或TR1为1,就可以启动定时/计数器工作;GATA=1时,要用软件使TR0或TR1为1,同时外部中断引脚或也为高电平时,才能启动定时/计数器工作。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
;设定UART方式MODE0 ;数据指针指到TABLE ;清除ACC ;到TABLE取数据 ;到结束码03了么?不是转A1 ;是则重新开始 ;数据取向 ;A存入30H ;30H的值存入SBUF ;监测TI=1?是则跳到LOOP2 ;否则继续监测 ;延时;数据指针加1
DELAY: MOV R5,#255 D3:MOV R2,#255 D4:DJNZ R2,D4 DJNZ R5,D3 RET table : db 01h,02h,04h,08h db 10h, 20h,40h,80h db 01h,02h,04h,08h db 10h, 20h,40h,80h db 80h,40h,20h,10h db 08h, 04h,02h,01h db 80h,40h,20h,10h db 08h, 04h,02h,01h db 00h,0ffh,00h,0ffh db 03h END
K4: LCALL DELAY2 LCALL KS JNZ K4 POP ACC RET NEXT: INC R4 MOV A,R2 JNB ACC.7,KEY RL A MOV R2,A AJMP K3 KS: MOV P1,#0FH MOV A,P1 XRL A,#0FH RET
;调用延时去抖动程序 ;调用按键检测程序 ;按键没有松开继续返回检测 ;将堆栈的值送入ACC
实验五:串行口应用、 实验五 串行口应用、按键识别与数码管动态 串行口应用 显示 实验目的: 一、实验目的:
单片机在实际应用中需要进行系统扩展, 1、单片机在实际应用中需要进行系统扩展,如果 并行口不够用, 可使用未用的串行口进行扩充, 并行口不够用, 可使用未用的串行口进行扩充,实现 串行输入并行输出。 串行输入并行输出。 输出显示与键盘输入是扩展的重要内容。 2、输出显示与键盘输入是扩展的重要内容。要求 掌握数码管动态显示与矩阵按键的识别技术。 掌握数码管动态显示与矩阵按键的识别技术。 熟悉XLISP XLISP系列 单片机综合仿真试验仪的组成 3、熟悉XLISP系列 单片机综合仿真试验仪的组成 和使用方法。学会应用XLISP仿真试验和keil-uvision2 XLISP仿真试验和 和使用方法。学会应用XLISP仿真试验和 集成调试软件进行仿真实验。 集成调试软件进行仿真实验。
UV2快捷图标 (1)双击桌面上的UV2快捷图标,启动软件。 )双击桌面上的UV2快捷图标,启动软件。 出现的界面分为4部分:左上角为REG REG和系统显 (2)出现的界面分为4部分:左上角为REG和系统显 示区;左下角为调试程序时的信息显示; 示区;左下角为调试程序时的信息显示;右上角为程 序编写和修改区;右下角为CODE(程序存储器) 序编写和修改区;右下角为CODE(程序存储器)和 DATA/XDATA(内部/外部数据存储器)的显示区。 ATA/XDATA(内部/外部数据存储器)的显示区。 点击P (3)点击P工程 N新建工程 输入文件名并选择 存入的盘(如E:)点击保存。出现CPU屏幕,选Atmel 存入的盘( E:)点击保存。出现CPU屏幕, 点击保存 CPU屏幕 点确定。屏幕左上方出现图标目标1 AT89C51 点确定。屏幕左上方出现图标目标1。
开始调试, (5)点击调试 开始调试,点击屏幕上方左下角的 对文件进行编译, 编译图标 对文件进行编译,观察左下角的调试程序 信息显示,如有错可根据该栏提示的信息进行修改, 信息显示,如有错可根据该栏提示的信息进行修改, 修改后要重新保存和编译,直到无错误提示。 修改后要重新保存和编译,直到无错误提示。 点击编译图标右边的建造目标和建造所有目标图 编译图标右边的建造目标和 (6)点击编译图标右边的建造目标和建造所有目标图 对文件进行链接, 标,对文件进行链接,观察左下角的调试程序信息显 直到无错误提示。 示,直到无错误提示。 点击调试,按单步调试F10 观察运算结果: F10, (7)点击调试,按单步调试F10,观察运算结果:左 上角为系统和REG 右下角为存储器( REG, CODE、 上角为系统和REG,右下角为存储器(C:CODE、D: DATA、 XDATA)显示区,查看运算结果是否正确。 DATA、X:XDATA)显示区,查看运算结果是否正确。
;显示4
;选中第六个数码管 ;显示5
;选中第七个数码管 ;显示6
;选中第八个数码管
MOV P0,#7AH LCALL DELAY SETB P2.7 MOV P0,#0FFH AJMP MAIN DELAY: MOV R7,#2 D1: MOV R6,#25 D2: DJNZ R6,D2 DJNZ R7,D1 RET END
;延时程序
;左移
;右移
;闪烁
数码管动态扫描显示01234567 2、数码管动态扫描显示01234567
学习七段LED显示器的动态显示方法 学习七段LED显示器的动态显示方法 LED 硬件连接: 硬件连接: 位数码管的数据线: (1)8位数码管的数据线:将数码管部份的数据口 JP5接到CPU部份的P0口JP51。 JP5接到CPU部份的P0口JP51。 接到CPU部份的P0 位数码管的显示位控制线: (2)8位数码管的显示位控制线:将数码管部份的显 示控制口JP8接到CPU部份的P2口JP52。 示控制口JP8接到CPU部份的P2口JP52。 JP8接到CPU部份的P2
;确认有按下进行下一步 ;无键按下返回继续检测 ;将扫描值送入 R2暂存 ;将第一列值送入R4暂存 ;将R2的值送入P1口 ;P1.0等于1跳转到L1 ;将第一行值送入ACC ;跳转到键值处理程序 ;P1.1等于1跳转到L2 ;将第二行的行值送入ACC ;跳转到键值理程序进行键值处理 ;P1.2等于1跳转到L3 ;将第三行的行值送入ACC ;跳转到键值处理程 ;P1.3等于1跳转到NEXT处 ;将第四行的行值送入ACC ;行值与列值相加后的键值送入A
;选中第四个数码管 ;显示3
;选中第五个数码管
MOV P0,#74H LCALL DELAY MOV P0,#0FFH SETB P2.4 CLR P2.5 MOV P0,#61H LCALL DELAY MOV P0,#0FFH SETB P2.5 CLR P2.6 MOV P0,#21H LCALL DELAY MOV P0,#0FFH SETB P2.6 CLR P2.7
二、实验内容
1、串入并出实验 本实验用74LS164来扩充并行口。 74LS164来扩充并行口 本实验用74LS164来扩充并行口。 硬件连接: 硬件连接: 用一个2PIN数据排线一端插入CPU部分JP53 2PIN数据排线一端插入CPU部分JP53( (1) 用一个2PIN数据排线一端插入CPU部分JP53(P3 P3.0,P3.1。另外一端插入74LS164 74LS164部分的输入 口)的P3.0,P3.1。另外一端插入74LS164部分的输入 JP20。 端JP20。 (2) 用一根8PIN的数据排线,一端插入74LS164部分的 用一根8PIN的数据排线,一端插入74LS164部分的 8PIN的数据排线 74LS164 输出端JP26, 另一端插入8路指示灯的JP32 JP32。 输出端JP26, 另一端插入8路指示灯的JP32。 利用74LS164串行口实现8 74LS164串行口实现 利用74LS164串行口实现8路跑马灯程序。
MOV P0,#0FFH SETB P2.1 CLR P2.2 MOV P0,#0A2H LCALL DELAY MOV P0,#0FFH SETB P2.2 CLR P2.3 MOV P0,#62H LCALL DELAY MOV P0,#0FFH SETB P2.3 CLR P2.4
;选中第三个数码管 ;显示2
; 显示7
;重新开始 ;延时子程序
3、选作 矩阵按键识别技术
了解矩阵式键盘的识别方法,硬件连接如下: (1)用一条8PIN数据排线,把矩阵按键部份的JP50, 接到CPU部份的P1口JP44。 (2) 接8位数码管的数据线。将数码管部份的数据口 JP5接到CPU部份的P0口JP51。 (3) 接8位数码管的显示位线。将数码管部份的显示 位口 JP8接到CPU部份的P2口JP52。 参考程序:本程序实现扫描按键显示功能。 分别按16个键盘分别显示数字123A456B789C*0#D。 键盘口P1,数码管显示第二位p21, 数码管段位p0口。
参考程序: 参考程序:
ORG 0000H LJMP MAIN ORG 0030H MAIN: CLR P2.0 MOV P0,#28H LCALL DELAY MOV P0,#0FFH SETB P2.0 CLR P2.1 MOV P0,#7EH LCALL DELAY
;选中第一个数码管 ;显示0 ; 调用延时 ;关显示 ;选中第二个数码管 ;显示1
出现汇编语言输入区。 (4)点击文件 新建文件 出现汇编语言输入区。 输入汇编语言程序,点击文件中的保存,输入: 输入汇编语言程序,点击文件中的保存,输入:程序 并选择存入的盘( E:)点击保存 点击保存。 名.ASM 并选择存入的盘(如E:)点击保存。(输入的程 序名一般不超过6个字母数字,以字母打头) 序名一般不超过6个字母数字,以字母打头) (5)点击(图标)目标1前的“+”号,出现(图标) 点击(图标)目标1前的“ 号 出现(图标) 源程序组1,选中并点右键,选”文件增加到源程序组 源程序组1 选中并点右键, 文件增加到源程序组 Asm, 1”,选择文件类型为Asm,再选输入的程序名.ASM, ,选择文件类型为Asm 再选输入的程序名.ASM, ADD(加入),点确定。 ),点确定 点ADD(加入),点确定。 此时点击源程序组1可以看到输入的程序名. 此时点击源程序组1可以看到输入的程序名.ASM
本次实验报告中要回答的问题
1、分析80C51串行口的 种工作方法的不 、分析 串行口的4种工作方法的不 串行口的 同 2、分析动态扫描显示的原理和优缺点 、 3、说明矩阵按键识别的控制原理 、
kerl-uvision集成调试软件的操作 三、kerl-uvision集成调试软件的操作 操作步骤: 操作步骤: