Keil-C51单片机实验指导.5.4
《单片机原理与应用》KeilC51软件使用实验
《单片机原理与应用》KeilC51软件使用实验一、实验目的和要求熟悉51单片机的基本输入输出应用,掌握Proteus ISIS模块原理图绘图方法及单片机系统仿真运行方法。
二、实验内容和原理(1)观察Proteus模块的软件结构,熟悉菜单栏、工具栏、对话框等基本单元功能。
(2)学会选择元件、画导线、画总线、修改属性等操作。
(3)学会可执行文件加载及程序仿真运行。
(4)验证计数显示器的功能。
三、主要仪器设备电脑、keil c51、Proteus四、操作方法与实验步骤(1)提前阅读与实验1相关的阅读材料;(2)参考实验1电路原理图和元件清单,在ISIS中完成电路原理图的绘制;(3)加载可执行文件,观察仿真结果,检验电路图绘制的正确性。
五、实验数据记录和处理Keil代码部分:电路图:六、实验结果与分析运行结果:实验分析:1.由实验结果可知,这是通过开关控制计数器的,每按一次开关,数码管显示就加一。
2.硬件电路分析关于51单片机P0双向I/O口以及P2通用I/O口的使用:P0口为双向IO口,驱动负载能力强,因此本实验采用P0作为八位共阴极数码管的段选口。
但是其输出时为漏极开路输出,需要加一个上拉电阻,如上图所示。
P2口为通用I/O口,做一般I/O口使用,其内部有上拉电阻,因此不需要再外接电阻。
七、讨论和心得经过本次单片机实验,我掌握了Keil C51软件使用和单片机程序的编写和调试,更加了解了AT89C51的工作原理,培养了我综合应用相关知识来解决测试问题的基础能力。
按照操作步骤进行实验后,由实验现象可以看出,通过单片机实现了数码管按位加一的功能。
在这次实验中我认为最宝贵的还是让我学会了解决问题,突破瓶颈的方法。
将理论知识合理应用到实践中,才是我们学习的目标。
实验一 Keil C51软件使用
实验一Keil软件使用
一、实验目的
1、熟悉Keil软件的工作界面及其基本使用方法;
2、初步掌握程序的调试方法,能够查询指令的执行效果;
3、熟悉汇编语言程序和C语言程序的编译方法,能够生成目标代码HEX文档。
二、实验仪器
1、PC机;
2、Keil软件。
三、实验内容
1、熟悉Keil C51软件界面及使用。
2、简单程序及汇编指令调试,编译。
(1) 传送指令
设置内部RAM的值,(30H)=40H, (40H)=10H,单步执行下列程序,检查结果。
MOV R0,#30H
MOV A,@R0
MOV R1, A
MOV B, @R1
执行后:(R0)= ,(R1)= ,(A)= ,(B)= ,(30H)= ,(40H)= 。
(2) 运算指令
3、编译LED灯闪烁程序,生成HEX文档。
(1) PROTEUS电路图
(2) 汇编程序
ORG 0000H
CLR P1.0 ; LED点亮
SJMP $
END
(3) C语言程序
#include <reg51.h>
sbit LED = P1^0;
void main()
{
while(1)
{
LED =0;
}
}
四、预习要求
1、读懂各程序;
2、预先给出运算结果,以便和实验结果比较;
3、能够读懂,并能编写点亮LED灯程序。
五、思考题
1、如何才能使上述电路图的LED灯闪烁?
2、何为汇编语言伪指令?程序中“ORG 0000H”和“END”分别具有什么作用?。
单片机实验一 Keil C51编译环境的使用
实验一Keil C51编译环境的使用一、实验目的:1)安装keil uVision4 集成开发环境。
2)熟悉Keil C51 集成开发环境二、实验内容:(一)安装keil u Vision集成开发环境1、下载keil C51 安装软件2、运行srtup.exe安装软件并安装3、选择安装路径4、等待安装,单击finish安装完毕(二)熟悉Keil C51 集成开发环境1、打开Keil C51熟悉界面2、创建一个工程项目文件点击工具栏中的Project选项,选择new project建立一个工程,并为你的工程命名,选择存放路径并保存3、建立源文件点击工具栏中的File选项,在下拉菜单中选择New,在此窗口中输入我们的源文件ORG 0000HSJMP MAINORG 0030HMAIN: MOV 30H,#55HMOV A,30HSJMP $END4、保存源文件点击工具栏中的File选项下拉菜单的保存命令进行保存。
如果源文件是汇编语言,则文件名应有ex.asm,若为c语言,则应该有ex.c。
保存完毕后,会发现程序中的关键字变成了蓝色。
5、将文件加入工程中要将刚刚建立的程序文件ex.asm加入到工程项目中。
在Project Windows窗口内,选择Source Group1后,点击鼠标右键,在弹出的快捷菜单中选择Add Files To Group “Source Group1”命令,选择源文件的路径,文件类型和文件名,点击Add按钮将源文件加入工程项目中。
6、程序文件的编译和连接点击Project选项,在弹出的下拉菜单中选择”Option For Target “Target1””命令分别对Target 、Output、C51、Debug等选型卡进行设置完成后,再对程序进行编译。
点击点击Project选项,在弹出的下拉菜单中选择Build Taget 或Rebuild All Target Files 命令对源程序文件进行编译,若没有错误,此刻会在“Output Windows”信息输出窗口输出一些相关的信息,如果有错也会有相关的错误信息。
单片机实验指导书
单片机实验指导书第一章实验概述本实验指导书旨在帮助学生掌握单片机基本原理和应用技巧。
通过实验的学习,学生将了解单片机的内部结构,学习单片机的编程方法,并能够用单片机实现简单的控制功能。
第二章实验准备2.1 实验器材准备本实验需要准备以下器材:- 单片机开发板- USB线- 电脑2.2 软件安装在开始实验之前,需要安装以下软件:- Keil C51开发环境- STC单片机系列驱动程序第三章实验步骤3.1 硬件连接将单片机开发板通过USB线连接到电脑上,并确保连接正常。
3.2 软件设置打开Keil C51开发环境,点击菜单栏中的“文件”选项,选择“新建”创建新的工程。
设置工程的名称和保存位置,确定后点击“保存”。
3.3 编写程序在Keil C51开发环境中,编写单片机程序。
首先需要包含相应的头文件,然后编写具体的程序逻辑,实现所需的功能。
3.4 编译和烧录程序在编写完程序后,点击菜单栏中的“编译”选项进行编译。
编译成功后,点击菜单栏中的“下载”选项将程序烧录到单片机开发板中。
3.5 实验验证将程序烧录完毕后,将开发板与外部模块连接,观察实验现象是否符合预期。
第四章实验注意事项4.1 安全注意事项在实验过程中,要注意使用安全电压和电流,避免短路和电击风险。
4.2 实验环境实验需要在安静、整洁的环境中进行,以避免干扰和误操作。
4.3 调试和故障排除如果遇到实验效果不理想或者出现故障的情况,可以参考开发板的说明书进行故障排查和调试。
第五章实验总结通过本次实验,我深入了解了单片机的基本原理和应用技巧。
通过编写程序并实际观察实验现象,我成功掌握了单片机编程的方法和技巧,并能够用单片机实现简单的控制功能。
本次实验还让我意识到了实验中的安全注意事项和环境要求的重要性。
在实验过程中,我严格遵守了安全规定,并在安静整洁的环境中进行操作,确保实验顺利进行。
通过反复实践和调试,我不断提高了自己的实验技巧和问题排查能力。
在遇到故障时,我能够通过检查并参考说明书,准确地找到并解决问题。
(参考资料)Keil C51 uVision4使用指南
圖 1-6 選取晶片型號
圖 1-7 詢問是否需要加入 8051 啟動碼 STARTUP.a51 的主要工作是把包含 idata、xdata、及 pdata 在內的記憶體區塊清除為 0,並且初始化遞迴指標。STARTUP.a51 的內容在附錄 1 中,用戶可自行參考。注意, 若是編寫組合語言程式,則不需加入此啟動程式。在完成上述的初始化程序之後,8051 的控制權才會交給 main()主程式開始執行用戶的程式。 (3) 首先在專案中建立新的程式檔案或加入舊程式檔案。如果您沒有現成的程式或 是第一次使用,那麼就要新建一個 C 程式檔案。在 C51 中有一些程式的範例,但是在 這裡我們還是以一個 C 程式為例介紹如何新建一個 C 程式,和如何加到您的第一個專 案中吧。點擊圖 1-8 中 1 的新建文件的圖示按鈕,在 2 中出現一個新的文字編輯視窗, 或是也能透過選單 File/New 或是按下快速鍵 Ctrl+n 來實現。接著現在就能編寫程式了。
圖 1-5 選擇舊版或新版的專案檔副檔名 (2) 選擇所要的單晶片型號,這裡選擇常用的 Ateml 公司的 AT89S51。目前 Atmel 已經停產 AT89C51/AT89C52,改由 AT89S51/AT89S52 來取代之。AT89S 系列較 AT89C 系列更為便宜,工作頻率可高達 33 MHz,且重複燒錄次數至少可達一千次以上,非常 適合學校學習或工程師開發產品之用。所以本講義裡的大部分程式都是基於此 AT89S51 晶片的,此時螢幕如圖 1-6 所示。在右邊圖中的“Description”方塊內,會簡單的介紹 AT89S51 有什麼功能及特點。點選 OK 按鈕後,會出現圖 1-7,詢問你是否需要拷貝標 準的 8051 啟動碼程式(STARTUP.a51)到你的專案資料夾,並且將此檔案加入專案“Copy Standard 8051 Startup Code to Project Folder and Add File to Project”,點選“是”後,就可以 進行程式的編寫了。
c51单片机实验报告
c51单片机实验报告C51单片机实验报告引言C51单片机作为一种常见的微控制器,广泛应用于各种电子设备中。
本实验报告旨在介绍C51单片机的基本原理、实验过程和结果分析,以及对其在实际应用中的潜力进行探讨。
一、C51单片机的基本原理C51单片机是一种高度集成的微处理器,由中央处理器、存储器、输入输出接口和时钟电路等组成。
其核心是Intel公司开发的8051系列单片机,具有高性能、低功耗和易于编程等优点。
C51单片机采用汇编语言进行编程,可以实现各种功能,如数据处理、控制和通信等。
二、实验过程本次实验选取了LED灯的控制作为示例,通过C51单片机控制LED灯的亮灭来展示其基本功能。
1. 实验材料准备准备工作包括C51单片机开发板、连接线、电源和LED灯等。
确保所有材料齐全并连接正确。
2. 编写程序使用汇编语言编写程序,通过控制特定的IO口来控制LED灯的亮灭。
程序需考虑到时序和逻辑关系,确保正确的控制信号发送到LED灯。
3. 烧录程序将编写好的程序通过烧录器烧录到C51单片机中,确保程序能够正确运行。
4. 运行实验将电源接入开发板,开启电源。
通过按下相应的按键或其他输入方式,触发C51单片机发送控制信号,从而控制LED灯的亮灭。
三、实验结果分析经过实验,我们成功地实现了通过C51单片机控制LED灯的亮灭。
通过改变程序中的控制信号,我们可以实现不同的灯光效果,如闪烁、流水灯等。
这说明C51单片机具有良好的可编程性和控制能力。
此外,我们还发现C51单片机具有较高的稳定性和可靠性。
在实验过程中,单片机能够稳定地工作,并根据程序的要求正确地控制LED灯的状态。
这为其在实际应用中提供了良好的基础。
四、C51单片机在实际应用中的潜力C51单片机作为一种常见的微控制器,广泛应用于各种电子设备中。
其可编程性和控制能力使得它在工业自动化、家电控制、通信设备和电子产品等领域有着广阔的应用前景。
例如,在工业自动化领域,C51单片机可以用于控制机器人、自动化生产线和仪器设备等。
Keil_C51单片机实验项目指导 (1)
Keil C51实验项目Keil C51实验项目 (1)一、单片机的IO编程 (2)实验1 IO开关量输入实验 (2)二、单片机的中断系统 (3)实验 1 外部中断----脉冲计数实验 (3)三、单片机的定时器/计数器 (4)实验1 计数器实验 (4)1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
(5)实验2 秒时钟发生器实验 (6)1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
(6)四、单片机的串口特点和编程 (7)实验1 PC机串口通讯实验 (7)实验2 RS485通讯实验 (9)五、存储器 (10)实验1 RAM存储器读写实验 (10)六、PWM发生器 (12)实验1 PWM发生器(模拟)实验 (12)实验2 蜂鸣器实验 (13)1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
(13)七、WDG看门狗 (14)实验1 外扩WDG(MAX705)实验 (14)实验2 WDG(内部)实验 (14)1、将CPU板正确安放在CPU接口插座上。
(15)八、SPI总线 (15)实验1 SPI(模拟)实验-----TLC2543 AD转换实验 (15)实验2 SPI(模拟)实验-----TLV5616 DA转换实验 (16)九、I2C总线 (18)实验1 I2C(模拟)实验-----IC卡(AT24C01)读写实验 (18)十、综合实验 (19)实验1 HD7279LED数码管显示实验 (19)1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
(20)实验2 HD7279键盘实验 (20)1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
(20)实验3 电机转速实验 (21)1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
(21)十一、步进电机实验 (22)实验1 步进电机正反转实验 (22)1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
keilc51教程
Keil 工程文件的建立、设置与目标文件的获得单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU 可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。
Keil提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。
掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。
我们将通过一些实例来学习Keil软件的使用,在这一部份我们将学习如何输入源程序,建立工程、对工程进行详细的设置,以及如何将源程序变为目标代码。
图1所示电路图使用89C51单片机作为主芯片,这种单片机性属于MCS-51系列,其内部有4K的FLASH ROM,可以反复擦写,非常适于做实验。
89C51的P1引脚上接8个发光二极管,P3.2~P3.4引脚上接4个按钮开关,我们的第一个任务是让接在P1引脚上的发光二极管依次循环点亮。
一、Keil工程的建立首先启动Keil软件的集成开发环境,这里假设读者已正确安装了该软件,可以从桌面上直接双击uVision的图标以启动该软件。
实验一KeilC51集成开发环境的使用练习、仿真与调试
实验一KeilC51集成开发环境的使用练习、仿真与调试实验一Keil C51集成开发环境的使用练习、仿真与调试一、实验目的1、熟悉Keil C51集成开发环境的使用方法2、熟悉Keil C51集成开发环境调试功能的使用和DP-51PROC单片机综合仿真实验仪的使用。
二、实验设备及器件IBM PC机一台DP-51PROC单片机综合仿真实验仪一台三、实验内容1、进行Keil C51集成开发环境的安装和使用练习。
然后按照以下内容建立文件并编译产生HEX文件。
ORG 0000HLJMP MainORG 00F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反CPL P1.7 ; P 1 .7 取反SJMP Main;END2、进行Keil C51集成开发环境的仿真调试练习。
然后按照以下内容建立文件并编译仿真调试。
ORG 8000HLJMP MainORG 80F0HMain:MOV R7, #0Loop:MOV R6, #0DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R6, $DJNZ R7, LoopCPL P1.0 ; P 1 .0 取反CPL P1.1 ; P 1 .1 取反CPL P1.2 ; P 1 .2 取反CPL P1.3 ; P 1 .3 取反CPL P1.4 ; P 1 .4 取反CPL P1.5 ; P 1 .5 取反CPL P1.6 ; P 1 .6 取反SJMP MainEND四、实验要求1、熟练掌握Keil C51集成开发环境的工程建立、编辑与编译功能。
KeilC51集成开发环境的使用实验报告
Keil C51集成开发环境的使用姓名:专业:学号:成绩:一、实验目的1、熟悉Kei C51集成开发环境的基本操作;2、掌握简单Kei C51和汇编程序的编写、调试。
二、实验内容1、仔细阅读教材相关内容,掌握KeiC51集成开发环境的基本功能;2、分别用汇编和C51编写清零程序,把片外RAM中的7000H-70FFH单元中内容清零;3、分用汇编和C51编写查找相同个数程序。
统计片外RAM7000H-700FH中“ 00H”的个数并保存在片内RAM30H单元中。
三、实验原理与步骤1、清零程序(1)汇编语言程序设计框图(2)实验步骤用连续或单步方式运行程序,检查7000H-70FFH单元中执行内容变化(3)假使把7000H-70FFH中的内容改成FFH,如何修改程序。
(4)用C51重新编写该程序,运行并查看结果。
2、查找相同数个数(1)汇编语言程序设计框图(2)实验步骤① 在7000H-700FH 单元中放入随机数,其中几个单元输入 0;② 用连续或单步方式运行程序;③ 观察片内RAM 30H 的内容,应显示“ 00H'的个数。
(3)用C51重新编写程序, 运行并查看结果。
四、实验程序1、清零程序(1)汇编语言 ⑵C 语言ORG 0000H#in clude<reg51.h>MOV R0,#0100Hvoid mai n()MOV DPTR,#7000H {MOV A,#0char xdata *p=0x7000;LOOP:MOVX @DPTR,A int t=0x7100-0x7000 ;INC DPTR while(t--)DJNZ RO,LOOPEND{*p=00;p++; }}2、查找相同数个数(2) C 语言#include<reg51.h> #include<stdio.h> void main(){char sum=0; char a=0x10;char xdata *p=0x7000; char data *q=0x30; while(a--) {if(*p==0)sum++; p++; }*q=sum;while(1);}五 实验后的经验总结1 、新建项目:选择 Project->New Project 菜单,在弹出的对话框中键入 项目名称并保存,选择“ AT89C51”, 点击“确定”,在出现的对话框中 选择“否”;2、创建新源程序文件:点击 File->New 创建,C 语言源程序扩展名 .c, 汇 编源程序扩展名 .asm 。
c51单片机实验报告
C51单片机实验报告实验目的本实验旨在通过对C51单片机的学习和实践,了解单片机的基本原理和使用方法,掌握C语言与单片机的编程技巧。
实验器材•C51单片机•电脑•C语言开发环境•连接线实验步骤步骤一:准备工作1.将C51单片机与电脑连接,确保连接线连接正确且稳固。
2.在电脑上安装C语言开发环境,如Keil等。
3.打开C语言开发环境,创建一个新的工程。
步骤二:编写程序1.在新建的工程中,打开主程序文件。
2.根据实验要求,编写相应的C语言程序。
3.确保程序逻辑正确,没有语法错误。
步骤三:编译程序1.在C语言开发环境中,点击编译按钮,对程序进行编译。
2.检查编译结果,确保没有出现错误提示。
步骤四:下载程序1.将编译成功的程序下载到C51单片机中。
2.确保下载过程中连接稳定,避免中断导致下载失败。
步骤五:运行程序1.完成程序下载后,断开C51单片机与电脑的连接。
2.将C51单片机连接到相应的电路中。
3.打开电源,启动C51单片机。
4.观察程序的运行情况,检查是否符合预期的结果。
实验结果根据实验要求,我们可以通过观察C51单片机的运行结果来验证程序的正确性。
如果程序实现了预期的功能,且单片机能够正常运行,即可认为实验结果是成功的。
实验总结本次实验通过对C51单片机的学习和实践,我们掌握了单片机的基本原理和使用方法,同时也提升了C语言与单片机的编程技巧。
在实验中,我们遵循了一步一步的思路,从准备工作到编写程序、编译程序、下载程序以及最终的运行程序,每个步骤都有条不紊地进行,确保实验的顺利进行。
通过本次实验,我们深刻认识到了单片机在现代电子技术中的重要性,它广泛应用于各个领域,如家电、汽车、通信等。
掌握单片机的原理和使用方法,对于我们今后的学习和工作都具有重要的意义。
参考资料[1] C51单片机实验指导书[2] C语言与单片机编程教程。
keil c51实验报告
keil c51实验报告Title: Keil C51 Experiment ReportIntroductionKeil C51 is a popular integrated development environment (IDE) for the 8051 microcontroller family. It provides a complete development environment for creating, debugging, and testing embedded applications for the 8051 architecture. In this experiment report, we will discuss our experience with using Keil C51 for developing and testing a simple embedded application. Experiment SetupFor this experiment, we used the Keil C51 IDE to develop a simple LED blinking application for the 8051 microcontroller. We used the Keil C51 compiler and debugger to write, compile, and debug the application code. The hardware setup included an 8051 microcontroller development board with an LED connected to one of the GPIO pins.ResultsUsing Keil C51, we were able to write and compile the application code easily. The IDE provided a user-friendly interface for writing and organizing code, as well as for setting up the build and debugging configurations. We were able to use the debugger to step through the code, set breakpoints, and inspect variables, which helped us to identify and fix any issues in the code.After successfully debugging the application, we were able to flash the compiled code onto the 8051 microcontroller using a programmer. The LED on thedevelopment board started blinking as per our program, indicating that the application was running correctly on the microcontroller.ConclusionOur experience with using Keil C51 for developing and testing an embedded application for the 8051 microcontroller was very positive. The IDE provided a comprehensive set of tools for writing, compiling, debugging, and flashing code onto the microcontroller. The user-friendly interface and powerful debugging capabilities of Keil C51 made the development process smooth and efficient. Overall, Keil C51 is a valuable tool for embedded systems development, especially for the 8051 microcontroller family. It provides a seamless development environment for creating and testing embedded applications, making it a preferred choice for embedded systems engineers. We look forward to using Keil C51 for future embedded development projects and recommend it to others in the field.。
c51单片机实验报告
c51单片机实验报告
《C51单片机实验报告》
C51单片机是一种广泛应用于嵌入式系统中的微控制器,具有高性能、低功耗和丰富的外设接口,因此在各种电子设备中得到了广泛的应用。
本次实验将以C51单片机为研究对象,通过实验验证其性能和功能。
实验一:LED灯控制实验
首先,我们将C51单片机与LED灯连接起来,通过程序控制LED灯的亮灭。
实验结果表明,C51单片机可以准确地控制LED灯的亮度和闪烁频率,具有良好的稳定性和可靠性。
实验二:蜂鸣器控制实验
接着,我们将C51单片机与蜂鸣器连接起来,通过程序控制蜂鸣器的发声。
实验结果显示,C51单片机可以精准地控制蜂鸣器的音调和音量,具有较高的音频输出质量。
实验三:温湿度传感器实验
最后,我们将C51单片机与温湿度传感器连接起来,通过程序读取并显示温湿度数值。
实验结果表明,C51单片机可以准确地读取传感器的数据,并通过显示屏输出,具有良好的数据处理能力。
通过以上实验,我们验证了C51单片机在LED灯控制、蜂鸣器控制和温湿度传感器应用方面的性能和功能。
C51单片机具有较高的稳定性、可靠性和可编程性,适用于各种嵌入式系统的设计与开发。
希望本次实验报告能够对C51单片机的应用和研究提供一定的参考价值。
单片机Keil C51和PROTEUS实验指导书
目录实验一单片机仿真开发系统的使用 (2)1.1 Keil C51 集成开发环境介绍 (2)1.2 用Proteus仿真软件 (6)1.3 实现单片机最小系统的简单应用。
(8)实验二显示及驱动电路设计用 (10)实验三简单输入/输出实验 (12)实验四外部中断的运用 (14)实验五单片机内部定时/计数器实验 (15)实验六串行口通信设计 (17)实验七直流电机控制 (18)实验八步进马达控制 (19)实验一单片机仿真开发系统的使用1.1 Keil C51 集成开发环境介绍①、运行keil C51编辑软件,软件界面如图1-1所示②、建立一个新的工程项目单击Project菜单,在弹出的下拉菜单中选中New Project选项③、保存工程项目a、选择要保存的文件路径,输入工程项目文件的名称,如保存的路径为C51文件夹,工程项目的名称为C51,如图所示,单击保存b、为工程项目选择单片机型号在弹出的对话框中选择需要的单片机型号,如图所示,这里选择51核单片机中使用较多的89S51,选定型号后,单击确定,出现如图所示的开发平台界面④、新建源程序文件在下图中单击“File”菜单,选择下拉菜单中的New选项,新建文件后得到如图的界面:⑤、保存源程序文件单击“File”菜单,选择下拉菜单中的Save选项,在弹出的对话框中选择保存的路径及源程序的名称,如图所示。
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时必须键程序录入区域入正确的.扩展名。
注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。
然后,单击“保存”按钮⑥、为工程项目添加源程序文件在编辑界面中,单击“Target”前面的“+”,再在“Source Group”上单击右键,得到如图所示的对话框,选择“Add File to Group’Source Group 1’”,弹出如图所示的对话框,选中要添加的源程序文件,单击“Add”,得到如图所示的界面,同时,在“Source Group 1”文件夹中多了一个添加的“Text1.c”文件。
Keil C51 uVision4实验指导
80C51单片机程序调试实验1.按钮控制LED——51单片机的Proteus实验实验原理51单片机的一个I/O口接按钮,再通过另一个I/O口控制LED的亮、灭。
主要器件以及电路图单片机——A T89C51,上拉电阻——pullup,按钮button,发光二极管——LED。
按钮控制LED汇编程序源码ORG 0START:MOV P1,#0 ;LED不亮MOV P0,#0FFH ;P0口准备读数ST1:JB P0.0,$ ;等待按钮抬起JNB P0.0,$ ;等待按钮按下;以上两句使得只有按一下按钮才可能执行下面的语句CPL P1.0 ;LED状态改变SJMP ST1 ;返回END2.流水灯—51单片机的Proteus实验实验原理通过个51单片机的一个I/O口送不同的数字,实现8个LED的流水灯。
本实验为移动一个不亮的LED。
通过修改送给I/O口送的数字可以实现不同方式的流水灯。
主要器件以及电路图单片机——A T89C51,8排电阻——RX8,发光二极管——LED。
流水灯汇编程序源码org 0sjmp startorg 30hstart: mov P1,#1 ;P1.0为1,不亮mov P1,#2 ;P1.1为1,不亮mov P1,#4 ;以下原理同上mov P1,#8mov P1,#10hmov P1,#20hmov P1,#40hmov P1,#80hsjmp startdelay: nopnopnopnopretend3.蜂鸣器—51单片机的Proteus实验实验原理51单片机的一个I/O口接7个按钮,再通过另一个I/O口控制蜂鸣器发出声音。
主要器件以及电路图单片机——A T89C51,蜂鸣器——speaker,按钮button。
汇编程序源码晶振12M,已在Proteus下测试,听起来声音差不多。
ORG 0SJMP STARTDL Y: MOV R2,#20 ;延时程序D1: MOV R3,#248DJNZ R3,$DJNZ R2,D1RETORG 30HSTART:MOV TMOD,#1 ;定时器0方式1MOV P3,#0FFH ;P3准备读数JNB P3.0,DODOACALL DL YJNB P3.1,REREACALL DL YJNB P3.2,MIMIACALL DL YJNB P3.3,FAFAACALL DL YJNB P3.4,SOSOACALL DL YJNB P3.5,LALAACALL DL YJNB P3.6,XIXIACALL DL YJNB P3.7,DO2DO2ACALL DL YSJMP STARTDODO:LJMP DORERE:LJMP REMIMI:LJMP MIFAFA:LJMP FASOSO:LJMP SOLALA:LJMP LAXIXI:LJMP XIDO2DO2:LJMP DO2DO:MOV TH0,#0FBHMOV TL0,#44HSETB TR0 ;开启定时器JNB TF0,$ ;等待定时到CLR TF0 ;清除中断CPL P2.7 ;喇叭JNB P3.0,DOCLR TF0SJMP STARTRE:MOV TH0,#0FBHMOV TL0,#88HSETB TR0JNB TF0,$CLR TF0CPL P2.7JNB P3.1,RECLR TF0SJMP STARTMI:MOV TH0,#0FBHMOV TL0,#0CCHSETB TR0JNB TF0,$CLR TF0CPL P2.7JNB P3.2,MICLR TF0SJMP STARTFA:MOV TH0,#0FCHMOV TL0,#00HSETB TR0JNB TF0,$CLR TF0CPL P2.7JNB P3.3,FACLR TF0LJMP STARTSO:MOV TH0,#0FCHMOV TL0,#44HSETB TR0JNB TF0,$CLR TF0CPL P2.7JNB P3.4,SOCLR TF0LJMP STARTLA:MOV TH0,#0FCHMOV TL0,#88HSETB TR0JNB TF0,$CLR TF0CPL P2.7JNB P3.5,LACLR TF0LJMP STARTXI:MOV TH0,#0FCHMOV TL0,#0CCHSETB TR0JNB TF0,$CLR TF0CPL P2.7JNB P3.6,XICLR TF0LJMP STARTDO2:MOV TH0,#0FDHMOV TL0,#00HSETB TR0JNB TF0,$CLR TF0CPL P2.7JNB P3.7,DO2CLR TF0LJMP STARTEND附上蜂鸣器发声的简单程序1.汇编ORG 0 START: CPL P2.7 ;蜂鸣器LCALL DELAYLJMP STARTDELAY: MOV R7,#0FFHDJNZ R7, $RETEND2.C语言#include<reg51.h>void delay(unsigned int z);//声明延时函数sbit beep=P2^7;void main()数{while(1){beep=0;//蜂鸣器响delay(1);//调用1ms延时beep=1;//蜂鸣器不响delay(1);//调用1ms延时}}void delay(unsigned int z)//1ms延时,通过z值改变延时{unsigned int x;for(;z>0;z--)for(x=110;x>0;x--);}4.蜂鸣器演奏祝你平安——51单片机的Proteus实验实验原理51单片机的一个I/O口控制speaker发声,演唱祝你平安歌曲。
keil c51实验报告
keil c51实验报告Keil C51实验报告引言:Keil C51是一款嵌入式系统开发工具,被广泛应用于单片机编程和开发。
本实验报告将介绍在使用Keil C51进行单片机编程时的一些实验结果和经验总结。
一、实验背景在嵌入式系统开发中,单片机是最常用的控制器之一。
单片机的编程需要使用特定的开发工具,Keil C51就是其中之一。
Keil C51提供了强大的集成开发环境,使得单片机的编程工作变得更加高效和便捷。
二、实验目的本实验的目的是通过使用Keil C51开发工具,学习单片机的编程方法和技巧,并通过实验验证编写的程序的正确性和可靠性。
三、实验过程1. 硬件准备在进行实验之前,首先需要准备好所需的硬件设备,包括单片机开发板、电源、连接线等。
确保硬件设备的连接正确且稳定。
2. 软件安装下载并安装Keil C51开发工具,根据提示进行相应的设置和配置。
确保软件的安装和配置正确。
3. 编写程序使用Keil C51开发工具,编写所需的程序。
根据实验要求和目标,编写相应的代码,并进行调试和测试。
在编写过程中,可以使用Keil C51提供的丰富的函数库和工具,提高编程的效率和质量。
4. 烧录程序将编写好的程序通过编程器烧录到单片机中。
确保烧录的程序正确无误。
5. 实验验证将烧录好的单片机连接到实验电路中,进行实验验证。
通过观察实验结果和数据,判断编写的程序是否达到了预期的效果和要求。
四、实验结果与分析通过使用Keil C51进行单片机编程实验,我们得到了以下实验结果和分析:1. 实验一:LED闪烁在这个实验中,我们使用Keil C51编写了一个简单的程序,控制LED灯的闪烁。
通过调试和测试,我们成功地实现了LED灯的闪烁效果。
这个实验验证了我们对Keil C51开发工具的基本掌握程度。
2. 实验二:温度传感器读取在这个实验中,我们使用Keil C51编写了一个程序,通过温度传感器读取环境的温度值,并将其显示在数码管上。
Keil-C51使用指南
Keil C51使用详解V1.0第一章 Keil C51开发系统基本知识 (6)第一节系统概述 (6)第二节 Keil C51单片机软件开发系统的整体结构 (6)第三节 Keil C51工具包的安装 (7)1. C51 for Dos 72. C51 for Windows的安装及注意事项: (7)第四节 Keil C51工具包各部分功能及使用简介 (7)1. C51与A51. 72. L51和BL51. 83. DScope51,Tscope51及Monitor51. 84. Ishell及uVision. 9第二章 Keil C51软件使用详解 (10)第一节 Keil C51编译器的控制指令 (10)1. 源文件控制类 (10)2. 目标文件(Object)控制类: (10)3. 列表文件(listing)控制类: (10)第二节 dScope51的使用 (11)1. dScope51 for Dos 112. dScope for Windows 12第三节 Monitor51及其使用 (13)1. Monitor51对硬件的要求 (13)2. Mon51的使用 (13)3. MON51的配置 (13)4. 串口连接图: (13)5. MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1. Ishell for Dos的使用 (14)2. uVision for windows的使用 (15)第三章 Keil C51 vs 标准C.. 15第一节 Keil C51扩展关键字 (15)第二节内存区域(Memory Areas): (16)1. Pragram Area: (16)2. Internal Data Memory: 163. External Data Memory. 164. Speciac Function Register Memory. 16 第三节存储模式 (16)1. Small模式 (16)2. Compact模式 (17)3. large模式 (17)第四节存储类型声明 (17)第五节变量或数据类型 (17)第六节位变量与声明 (17)1. bit型变量 (17)2. 可位寻址区说明20H-2FH.. 18第七节 Keil C51指针 (18)1. 一般指针 (18)2. 存储器指针 (18)3. 指针转换 (18)第八节 Keil C51函数 (19)1. 中断函数声明: (19)2. 通用存储工作区 (19)3. 选通用存储工作区由using x声明,见上例。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Keil C51实验项目Keil C51实验项目 (1)一、单片机的IO编程 (3)实验1 IO开关量输入实验 (3)实验2 IO输出驱动继电器(或光电隔离器)实验 (4)实验3 IO输入/输出---半导体温度传感器DS18B20实验 (5)二、单片机的中断系统 (6)实验 1 外部中断----脉冲计数实验 (6)实验 2 外部中断----故障报警实验 (7)三、单片机的定时器/计数器 (8)实验1 计数器实验 (8)实验2 秒时钟发生器实验 (10)四、单片机的串口特点和编程 (11)实验1 PC机串口通讯实验 (11)实验2 RS485通讯实验 (13)五、存储器 (14)实验1 RAM存储器读写实验 (14)六、PWM发生器 (15)实验1 PWM发生器(模拟)实验 (15)实验2 蜂鸣器实验 (16)七、WDG看门狗 (17)实验1 外扩WDG(MAX705)实验 (17)实验2 WDG(内部)实验 (18)八、SPI总线 (19)实验1 SPI(模拟)实验-----TLC2543 AD转换实验 (19)实验2 SPI(模拟)实验-----TLV5616 DA转换实验 (20)九、I2C总线 (21)实验1 I2C(模拟)实验-----IC卡(AT24C01)读写实验 (21)十、综合实验 (23)实验1 HD7279LED数码管显示实验 (23)实验2 HD7279键盘实验 (23)实验3 电机转速实验 (24)十一、步进电机实验 (26)实验1 步进电机正反转实验 (26)十二、TFT液晶显示实验 (26)实验1 TFT液晶显示彩色条纹实验 (26)十三、16X16LED点阵显示汉字实验 (27)实验1 16X16LED点阵显示汉字实验 (27)一、单片机的IO编程实验1 IO开关量输入实验目的:学习单片机读取IO引脚状态的的方法。
内容:编程读取IO引脚状态。
设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
编程:首先要把相关的引脚设置在IO的输入状态,然后写一个循环,不停地检测引脚的状态。
步骤:1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
2、连线:用导线将试验箱上的的IO1--- IO8分别连接到SWITCH的8个拨码开关的K1---K8的输出端子K1---K8上,连接好仿真器。
3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_INPUT 下的工程文件IO_INPUT.Uv2编译程序,上电,在程序注释处设置断点,进入调试状态,打开窗口Peripherals-->IO-Port-->P0,改变开关状态,运行程序到断点处,观察窗口的数值与开关的对应关系。
实验2 IO输出驱动继电器(或光电隔离器)实验目的:学习IO输出控制方法。
内容:通过单片机的IO引脚驱动继电器(或光电隔离器)动作。
设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
编程:首先要把相关的引脚设置在IO的输出状态,然后写一个循环,依次输出高低电平。
步骤:1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
2、连线:用导线将MCU的IO1、IO2分别连接到RELAY的输入R_IN和PHOTO的输入P_IN上,R_OUT和P_OUT分别连接到发光二极管LAMP的输入孔L1和L2上。
连接好仿真器。
3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_OUTPUT下的工程文件IO_OUTPUT.Uv2编译程序,上电,进入调试状态,打开窗口Peripherals-->IO-Port-->P0,单步运行程序,观察窗口的数值变化。
4、全速运行程序,观察继电器的发光二极管的亮灭变化,同时确定继电器动作(或光电隔离器导通)与IO输出电平的关系。
实验3 IO输入/输出---半导体温度传感器DS18B20实验目的:学习IO引脚编程实现交替输入、输出的方法。
内容:通过单片机的IO引脚与半导体温度传感器实现单线通讯。
设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
编程:根据18B20的资料(见备注),将IO引脚设置在输出状态,分别模拟出不同的命令时序,例如复位、读寄存器等;再改变IO引脚的为输入状态,接收传感器输出的数据。
步骤:1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
2、连线:用导线将MCU的IO1连接到TEMP SENSOR DS18B20的DQ。
3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹IO_INOUTPUT下的工程文件IO_INOUTPUT.Uv2编译程序,上电,进入调试状态,按照程序注释说明设置断点,全速运行程序到断点处,观察寄存器R7中的数据,用手摸住传感器DS18B20芯片,再运行到断点处,比较R7的变化。
4、备注:DSl8B20数字温度计提供9位(二进制)温度读数指示,器件的温度信息经过单线接口送入DSl8B20或从DSl8B20送出,因此从主机CPU到DSl8B20仅需一条线(和地线),DSl8B20的电源可以由数据线本身提供而不需要外部电源。
因为每一个DSl8B20在出厂时已经给定了唯一的序号,因此任意多个DSl8B20可以存放在同一条单线总线上,这允许在许多不同的地方放置温度敏感器件。
DSl8B20的测量范围从-55到+125增量值为0.5可在l s(典型值)内把温度变换成数字。
二、单片机的中断系统实验 1 外部中断----脉冲计数实验目的:学习单片机的外部中断使用方法。
内容:对外部中断计数显示。
设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
编程:首先第一步设置单片机的IO为输入状态,第二步设置引脚的中断触发方式,一般设置为边沿触发,第三步,设置外部中断的优先级,第四步,编写中断服务程序,包括中断入口跳转等,第五步,设置中断使能,允许外部引脚触发中断。
第六步,设置死循环,主程序结束,交给中断服务程序完成计数。
步骤:1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
2、连线:用导线将MCU的INT0连接到单脉冲输出孔P-,连接好仿真器。
3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹EXT_INT1下的工程文件EXT_INT1.Uv2,编译程序,上电,进入调试状态,按照程序注释说明设置断点,全速运行程序,每按下一次单脉冲开关Paulse,程序运行到断点处一次,观察寄存器R1的变化。
课堂思考题:(1)编写程序(同时接好硬件电路),采用外部中断INT1及低电平触发方式,使8只二极管从左向右依次循环点亮,中断结束后返回,二极管全灭。
实验 2 外部中断----故障报警实验目的:学习单片机的外部中断使用方法。
内容:利用外部中断和IO口,改变二极管和蜂鸣器状态,模拟故障报警。
设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
编程:首先编写初始化程序,设置单片机IO状态,设置中断触发方式,一般设置为边沿触发,设置外部中断的优先级;第二步,编写主程序,调用初始化程序,对IO口状态写无限循环,使发光二极管处于稳定发光,蜂鸣器无发声状态,第三步,编写中断服务子程序,使二极管闪烁发光,蜂鸣器断续鸣叫,模拟故障报警;第四步,编写延时子程序,控制二极管闪烁和蜂鸣器鸣叫的间隔时间。
步骤:1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
2、连线:用导线将MCU的INT0连接到单脉冲输出孔P-,同时将MCU的IO0、IO1分别与发光二极管L1、蜂鸣器BUZZER孔相连,连接好仿真器。
3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹EXT_INT2下的工程文件EXT_INT2.Uv2,编译程序,上电,进入调试状态,按照程序注释说明,全速运行程序,发光二极管处于稳定发光状态,蜂鸣器无声音,每按下一次单脉冲开关Paulse,观察二极管L1和蜂鸣器的变化。
课堂思考题:(1)编写程序(同时接好硬件电路),采用外部中断INT0、跳变触发方式,将8支二极管分为2组,使L1、L3、L5、L7与L2、L4、L6、L8交替亮灭闪烁,中断结束后返回,8支二极管全亮。
(2)编写程序(同时接好硬件电路),采用外部中断INT0、跳变触发方式,实现5次中断请求后,进入中断服务子程序,使L1亮灭闪烁,蜂鸣器断续发声,中断结束后返回,二极管发亮。
三、单片机的定时器/计数器实验1 计数器实验目的:学习单片机的定时/计数器的计数功能使用方法。
内容:对外部单脉冲信号进行计数,计数10个后产生计数中断。
设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
编程:使用定时/计数器的计数功能,将外部时钟信号加在计数器的计数时钟输入引脚上,当计数10次后,计数器溢出,触发标志位,编程控制分频输出引脚电平翻转,产生分频后的时钟信号。
步骤:1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
2、连线:用导线将MCU的IO1和T0分别连接到发光二极管L1的输入L1上和单脉冲输出孔P-,连接好仿真器。
3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹COUNTER 下的工程文件COUNTER.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。
4、上电全速运行程序,按下5次单脉冲按键后发光二极管点亮,再按5次后发光二极管熄灭,如此重复。
实验2 秒时钟发生器实验目的:学习单片机的定时/计数器的定时功能使用方法。
内容:产生频率为0.5Hz的时钟输出。
设备:EL-EMCU-I试验箱、EXP-89S51/52/53 CPU板。
编程:使用定时/计数器的定时功能,时钟源采用系统时钟,根据时钟源的频率配置初值寄存器,使能定时器中断,在中断服务程序中翻转一个IO引脚输出,产生0.5Hz的时钟输出。
步骤:1、将CPU板正确安放在CPU接口插座上,跳线帽JP2短接在上侧。
2、连线:用导线将MCU的IO1连接到发光二极管L1的输入L1上,连接好仿真器。
3、实验箱上电,在PC机上打开Keil C环境,打开实验程序文件夹TIMER_SECOND下的工程文件TIMER_SECOND.Uv2,编译程序,上电,进入调试状态,单步运行程序观察每条语句执行后相关寄存器的变化。
4、全速运行程序,观察发光二极管的亮灭情况。
5、备注:现在的单片机系统时钟较高,难于产生1秒的定时中断,所以,可以设置定时时间为50毫秒,在中断服务程序中设置程序计数,当累加到1秒后,控制输出IO引脚电平翻转,驱动发光二极管。