单片机实验三示例

合集下载

51单片机实验手册

51单片机实验手册

51单片机实验手册一、概述51单片机是一种经典的8位微控制器,具有广泛的应用领域。

本实验手册旨在提供详细的实验指导,帮助初学者快速入门,并为进一步的学习提供基础。

二、实验准备在进行51单片机实验之前,我们需要准备以下材料:1. 一块51单片机开发板2. USB数据线或者串口线3. 电脑及编程软件4. 面包板及对应的连接线5. 红、绿、蓝LED以及相应的电阻三、实验一:LED闪烁LED闪烁是最基础的实验之一,通过控制51单片机的I/O口状态,使LED灯交替亮灭。

1. 连接电路将51单片机的VCC引脚连接到正极,GND引脚连接到负极,将LED的长脚连接到P1.0引脚,短脚连接到GND引脚。

2. 编写程序使用C语言编写如下程序:```c#include <reg52.h>void main() {while(1) {P1 = 0x00; // P1置低电平,LED灯熄灭Delay(1000); // 延时1秒P1 = 0xFF; // P1置高电平,LED灯点亮Delay(1000); // 延时1秒}}void Delay(unsigned int t) {while (t--);}```3. 烧录程序将编写好的程序通过编程软件下载到51单片机中。

4. 运行实验将USB数据线或串口线连接到51单片机开发板和电脑,将开发板上的开关打开,观察LED灯的闪烁情况。

四、实验二:数码管显示通过控制51单片机的I/O口状态,驱动数码管显示数字。

1. 连接电路将51单片机的VCC引脚连接到正极,GND引脚连接到负极,将数码管的A、B、C、D、E、F、G引脚分别连接到P1.0、P1.1、P1.2、P1.3、P1.4、P1.5、P1.6引脚。

2. 编写程序使用C语言编写如下程序:```c#include <reg52.h>unsigned char code segment[] = { // 数码管段码表0x3F, // 数字00x06, // 数字10x5B, // 数字20x4F, // 数字30x66, // 数字40x6D, // 数字50x7D, // 数字60x07, // 数字70x7F, // 数字80x6F // 数字9};void main() {unsigned int i;while(1) {for(i = 0; i < 10; i++) {P1 = segment[i]; // 依次在数码管上显示数字0-9 Delay(1000); // 延时1秒}}}void Delay(unsigned int t) {while (t--);}```3. 烧录程序将编写好的程序通过编程软件下载到51单片机中。

stc单片机编程实例

stc单片机编程实例

stc单片机编程实例单片机(Single Chip Microcontroller)是一种集成了中央处理器、存储器和各种外设功能的微型计算机系统。

它具有体积小、功能强大、成本低廉等特点,广泛应用于各个领域。

在使用STC单片机进行编程时,我们可以通过实例来学习和理解其编程原理和应用方法。

本文将介绍几个STC单片机编程实例,以帮助读者深入了解和掌握该技术。

实例一:LED闪烁首先,我们来实现一个简单的LED闪烁程序。

通过控制IO口输出高低电平,从而控制LED的亮灭。

下面是代码示例:```#include <reg52.h>sbit LED = P1^0; // 将P1.0引脚定义为LED控制引脚void main(){while(1){LED = 0; // LED亮delay(); // 延时LED = 1; // LED灭delay(); // 延时}}void delay(){int i, j;for(i = 0; i < 100; i++)for(j = 0; j < 1000; j++);}```在上述代码中,我们首先通过`#include<reg52.h>`导入STC单片机的寄存器定义文件。

然后,我们使用`sbit`关键字将P1.0引脚定义为LED控制引脚。

在`main()`函数中,我们循环执行LED亮灭的操作,并通过`delay()`函数进行延时控制。

实例二:数码管显示接下来,我们将实现一个数码管显示程序。

通过控制IO口输出不同的数码管段选信号和位选信号,从而使数码管显示出指定的数字。

下面是代码示例:```#include <reg52.h>unsigned char code smgduan[] = {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; // 数码管显示字符对应的编码sbit smg_duan = P1^0; // 数码管段选信号sbit smg_wei = P1^1; // 数码管位选信号void main(){unsigned char i;while(1){for(i = 0; i < 10; i++){smg_duan = smgduan[i]; // 设置段选信号smg_wei = 0; // 显示位选信号有效delay(); // 延时smg_wei = 1; // 显示位选信号无效}}}void delay(){int i, j;for(i = 0; i < 100; i++)for(j = 0; j < 1000; j++);}```在上述代码中,我们使用了一个长数组`smgduan`来存储数码管显示字符的编码。

单片机实验

单片机实验

单片机实验第二次实验:图见实验题1.P1.0~P1.7这八个发光二极管全部点亮#include#define uchar unsigned char#define uint unsigned intsbit greenLed=P1^0;Delay(uint cnt){ uchar i;do{for(i=0;i<165;i++);}while(cnt--);}main(){ while(1){ greenLed=0;Delay(1000);greenLed=1;Delay(1000);}}2. P1.0~P1.7这八个发光二极管循环点亮#include delay(unsigned char cnt){ unsigned int i;do{for(i=0;i<6000;i++);}while(cnt--);}main(){ unsigned char a;P1=~a;while(1){if(a!=0){ delay(5);a<<=1;P1=~a;}else{a=0x01;P1=~a;}}}3.通过外部中断控制八盏灯分别右移,左移,闪烁,双灯同时左移。

#include#define uchar unsigned charuchar code LedTable[]= {0x03,0x0c,0x30,0xc0};uchar led_flag = 4;uchar a; Delay(uchar cnt){ unsigned int i;do{ for(i=0;i<6000;i++);}while(cnt--);}void Led_rr(void)//led右移函数{ uchar i;for(i=0;i<8;i++){ if(a == 0) a= 0x80;P1 = ~a;a >>= 1;}}void Led_rl(void)//led左移函数{ uchar i;for(i=0;i<8;i++){ if(a == 0) a= 0x01;P1 = ~a;a <<= 1;Delay(10);}}void Led_spark(void){ P1 = 0xff;Delay(10);P1 = 0;Delay(10);}void Led_lr_doble(){ uchar i;for (i=0;i<4;i++){ P1= ~LedTable[i];Delay(10);}}void int1(void) interrupt 2 //中断服务函数{ led_flag++;if(led_flag >= 3) led_flag = 0;}void main(void){ EA = 1;EX1 = 1;IT1 = 1;while(1){ if(led_flag ==4){ Led_spark();}if(led_flag == 0){ Led_rl();}if(led_flag == 1){ Led_rr();}if(led_flag == 2){ Led_lr_doble();}}第三次实验:1.设单片机的=12MHz,要求用定时器/计数器T0以方式1在P1.0脚上输出周期为4ms的方波。

单片机实验报告范文

单片机实验报告范文

单片机实验报告范文一、实验目的本实验的目的是通过学习单片机的基本原理和使用方法,掌握单片机在各个实际应用中的基本技能。

二、实验器材及原理1.实验器材:STC89C52单片机、电源、晶振、按键、LED灯、蜂鸣器等。

2.实验原理:单片机是一种微处理器,能够完成各种复杂的功能。

通过学习单片机的工作原理和编程方法,可以控制各种外围设备,实现不同的功能。

三、实验内容及步骤1.实验一:点亮LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,点亮LED灯。

2.实验二:按键控制LED灯步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将按键和LED灯与单片机相连。

(3)编写程序,实现按下按键控制LED灯亮灭。

3.实验三:数码管显示步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)将数码管与单片机相连。

(3)编写程序,将数字输出到数码管上显示。

4.实验四:定时器应用步骤:(1)连接电源和晶振,将STC89C52单片机连接到电路板上。

(2)编写程序,实现定时器功能。

四、实验结果及分析1.实验一:点亮LED灯LED灯成功点亮,证明单片机与外部设备的连接正常。

2.实验二:按键控制LED灯按下按键后,LED灯亮起,松开按键后,LED灯熄灭。

按键控制LED 灯的效果良好,说明单片机的输入输出功能正常。

3.实验三:数码管显示数码管成功显示数字,说明单片机能够实现数字输出功能。

通过程序设计,可以实现数码管显示不同的数字。

4.实验四:定时器应用定时器正常运行,能够实现精确的定时功能。

通过调节定时器的参数,可以实现不同的定时功能。

五、实验总结通过本次实验,我们学习了单片机的基本原理和使用方法。

通过掌握单片机的编程技巧,我们能够实现各种复杂的功能,如控制LED灯、按键控制、数码管显示等。

这些技能对于日常生活和工程设计都具有很大的实用性。

在实验过程中,我们遇到了各种问题,如电路连接错误、程序编写错误等。

单片机 跑马灯实验精选全文

单片机 跑马灯实验精选全文

可编辑修改精选全文完整版实验一跑马灯实验一、实验内容1、基本的流水灯根据图1电路,编写一段程序,使8个发光二极管D1、D2、D3、D4、D5、D6、D7、D8顺序(正序)点亮:先点亮D1,再点亮D2、D3……D8、D1……,循环点亮。

每点亮一个LED,采用软件延时一段时间。

2、简单键控的流水灯不按键,按正序点亮流水灯;按下K1不松手,按倒序点亮流水灯,即先点亮D8,再顺序点亮D7、D6……D1、D8……。

松手后,又按正序点亮流水灯。

3、键控的流水灯上电,不点亮LED,按一下K1键,按正序点亮流水灯。

按一下K2键,按倒序点亮流水灯,按一下K3键,全部关闭LED。

二、实验方案1、总体方案设计考虑到K4键未被使用,所以将实验内容中的三项合并到一个主函数中:K4键代替实验内容第二项中的K1键;单片机一开机即执行实验内容第一项;K1、K2、K3键实现实验内容第三项。

所用硬件:AT89C52、BUTTON、LED-BLUE、电源输入:P2.0-K1;P2.1-K2;P2.2-K3;P2.3-K4。

低电平有效输出:P0.0~P0.7-D0~D7。

LED组连线采用共阳极,低电平有效软件设计:软件延时采用延时函数delay(t),可调整延迟时间:void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}由于涉及到按键变化所以要设置一个变量oldK保留按键键值,要在延时程序中检测是否按键,当按键后立即设置oldK的值。

按键判断采用在while循环中利用条件语句判断P2的值然后执行该键对应的代码段,达到相应的响应。

为了让K4键的效果优化,即状态变化从当前已亮灯开始顺序点亮或逆序点亮,利用全局变量n来记录灯号,利用算法即可实现。

主要算法:1、全局变量的定义:uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;2、顺序、逆序点亮流水灯:void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}3、实验内容第二项流水灯灯亮顺序变换:void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){out=D[n];n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}4、对应实验内容第一项,开机顺序点亮流水灯:while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}2、实验原理图图2-1 实验原理图3、程序流程图图2-2 程序流程图三、源程序#include"reg51.h"#define uchar unsigned char#define uint unsigned int#define out P0uchar D[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0X7f};//单个LED亮uchar AllOff=0xff;//LED全灭uchar AllOn=0x00;//LED全亮uchar K[]={0xff,0xfe,0xfd,0xfb,0xf7};//按键开关uchar oldK;//记录已按键int n;//记录当前亮的灯号void delay(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK&&P2!=K[0])break;//按下了其他键退出循环}}void delay10ms(){uint i;for(i=0;i<10000;i++);}void forward(){for(n=0;n<=7;n++){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}void backward(){for(n=7;n>=0;n--){out=D[n];delay(15);if(P2!=oldK&&P2!=K[0])break;}out=AllOff;}int delay4(uint t){uint i;while(t--)for(i=0;i<1000;i++){if(P2!=oldK){ //按键变化退出循环return 1;}}return 0;}void hold(){n=8;while(1){if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯oldK=K[4];if(n==-1)n=7; //D0灯亮后点亮D7while(n>=0){n--;if(delay4(15))break;}}if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯oldK=K[0];if(n==8)n=0;//D7灯亮后点亮D0while(n<=7){out=D[n];n++;if(delay4(15))break;}}if(P2!=K[4]&&P2!=K[0]){//按下了其他键,退出hold函数break;}}}void main(){oldK=K[0];while(1){//开机即正序点亮流水灯forward();if(P2!=K[0]){break;}}while(1){out=AllOff;if((P2&0x0f)!=0x0f){//检测有键按下delay10ms();//延时10ms再去检测//P2.0_K1键按下正序点亮流水灯if(P2==K[1]){oldK=K[1];while(1){forward();if(P2!=K[1]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.1_K2键按下逆序点亮流水灯if(P2==K[2]){while(1){backward();if(P2!=K[2]&&P2!=K[0]){//按下了其他键,退出break;}}}//P2.2_K3键按下关闭全部LEDif(P2==K[3]){oldK=K[3];out=AllOff;}//P2.3_K4键按下长按逆序点亮流水灯,不按正序点亮流水灯,直到其他键按下停止if(P2==K[4]){hold();}}}}四、实验结果1、基本的流水灯:开机后即重复顺序点亮流水灯,等待其他按键。

单片机实验报告

单片机实验报告

单片机原理与应用实验报告学校:合肥工业大学班级:计算机科学与技术学号:姓名:第一章MC51 单片机原理及应用软件实验实验1:系统认识实验1.实验目的(1)了解ZY15MCU12BC2单片机实验开发装置的接线与安排。

掌握实验箱内拨位开关KF,KC的使用方法。

(2)通过实例程序的编辑、编译、链接及调试,熟悉Keil C51软件的使用方法和基本操作。

(3)教育学生爱抚实验装置,养成良好的实验习惯。

2.试验设备(1)ZY15MCU12BC2单片机实验开发装置一台。

(2)PC系列微机及相关软件。

3.试验内容(1)使用串行通讯电缆将实验开发装置与PC机相连。

(2)开启PC机及实验开发装置,启动Keil C51软件进入uVision2集成开发环境。

(3)确认拨位开关KF的开关为A端,确认89C51处于仿真状态。

(4)在uVision2开发平台上建立并编辑示例程序:计算N个数求和程序。

其中N个数分别放在片内RAM区50H到55H单元中,N=6,求和的结果放在片内RAM区03H(高位)和04H(低位)单元中。

题目:1)32H+41H+01H+56H+11H+03H=?2)895H+02H+02H+44H+48H+12H=?(5)编译连接源程序。

(6)在Keil uVision2主菜单窗口进入DEBUG调试环境,打开存储器窗口输入数据至片内RAM区50H到55H单元中,全速运行程序,并检查程序的运行结果,即观察在存储器窗口片内RAM区03H(高位)、04H(低位)单元中的数据是否正确。

(7)实验结束,撤出接线,将一切整理复原。

4.实验源程序ORG 0000HLJMP MAINORG 1000HMAIN: MOV R2,#06HMOV R3,#03HMOV R4,#04HMOV R0,#50HL1: MOV A,R4ADD A,@R0MOV R4,AINC R0CLR AADDC A,R3MOV R3,ADJNZ R2,L1END5. 实验结果截图6. 实验总结这次试验,熟悉了单片机开发的基本流程,对于实验的两道题目1)32H+41H+01H+56H+11H+03H=?2)895H+02H+02H+44H+48H+12H=?实验结果如上图所示50H~54H存放数据,第一道题计算出来是0x00DEH,第二道题目计算出来是0x0137H,实验结果和预期相符,成功的完成了实验。

金愚善单片机例程

金愚善单片机例程

金愚善单片机例程全文共四篇示例,供读者参考第一篇示例:金愚善单片机例程是一种用于学习和实践单片机编程的教学资源。

它提供了丰富的例程和案例,在实际的工程项目中可以起到很大的作用。

本文将介绍金愚善单片机例程的特点、应用和学习方法,希望对单片机编程感兴趣的读者有所帮助。

一、特点1.丰富的例程:金愚善单片机例程涵盖了常见的单片机应用场景,如LED灯控制、蜂鸣器控制、按键输入等。

这些例程都是基于实际项目开发的,经过了严格的测试和优化,确保了稳定性和可靠性。

2.易于理解:金愚善单片机例程采用了简洁明了的代码风格,注释清晰,函数模块化,方便读者快速理解和修改。

即使是初学者也可以轻松上手,快速掌握单片机编程的基本知识和技能。

3.开源共享:金愚善单片机例程是开源的,任何人都可以免费获取和使用。

读者也可以根据自己的需求和创意,对例程进行改进和扩展,贡献自己的力量,促进单片机编程技术的发展。

二、应用1.教学实验:金愚善单片机例程可以作为单片机编程实验的教学资源,帮助学生理解相关知识和提升实践能力。

通过实际操作和调试,学生可以更好地掌握单片机的原理和应用。

2.工程项目:金愚善单片机例程也适用于工程项目的开发和实施。

开发人员可以基于例程快速搭建原型系统,进行功能验证和性能测试,节省开发时间和成本,提高项目的成功率和效益。

3.科研探索:金愚善单片机例程还可以用于科研领域的探索和创新。

科研人员可以基于例程进行二次开发,探究新的应用场景和解决方案,为学科发展和社会进步做出贡献。

三、学习方法1.理论学习:在使用金愚善单片机例程之前,建议先对单片机的基本原理和编程语言进行系统学习。

掌握相应的知识和技能,有利于更好地理解和应用例程。

2.实践操作:学习单片机编程需要大量的实践操作,只有亲自动手才能更好地掌握和应用知识。

建议读者结合例程,按照步骤一步步地进行实验和调试,加深对单片机编程的认识和理解。

3.团队协作:在学习单片机编程时,可以参与团队项目或者线上社区,与他人分享经验和交流技巧。

单片机实验——精选推荐

单片机实验——精选推荐

实验一认识实验一.实验目的1.了解仿真器的硬件结构与接线。

2.了解MCS-51单片机复位功能及复位后的内部状态。

3.通过示例程序的键入与执行,学习仿真器的使用与操作方法。

二.实验内容1.对照实验指导书,查对实验机具体接线。

2.按照开发系统的使用方法,分别查看复位后PC、SP、DPTR等特殊功能寄存器及片内、片外RAM的内容。

3.熟悉开发器的使用,将下面程序键入实验机。

ORG 2000H2000 74AA MOV A,#0AAH2002 75F0BB MOV B,#0BBH2005 E5F0 MOV A,B2007 78CC MOV R0,#0CCH2009 E8 MOV A,R0200A 80FE SJMP $4.程序键入后,检查各存储单元所储机器码是否正确如有误,重新键入,达到修正的目的。

5.单步执行示例程序,逐步检查执行结果,核查与分析结果是否相符,直到执行完最后一条指令。

6.练习连续执行示例程序,检查执行结果,核查与分析结果是否相符。

7.自己在示例程序中插入一条指令,执行并查看结果,然后删除,熟悉插入/删除操作。

8.将示例程序移到另外一个存储区,执行并查看结果,熟悉程序块移动操作。

三.实验预习要求1.认真阅读指导书的相关内容,熟悉开发系统的各种操作。

2.实验前应写出规定操作任务的具体操作方法步骤。

四.思考题1.MCS-51单片机怎样实现内部复位,画出一种复位电路。

2.PC、SP、P0、P1、P2、P3复位状态是什么?各有何意义?3.示例程序中最后一条指令SJMP $的作用是什么?如果取掉这一条指令,程序的执行将发生什么变化?4.实验机监控系统怎样实现程序“单步执行”功能?五.实验报告要求1.按实验顺序,写出实验操作的方法步骤。

2.写出实验中所遇到的问题与解决过程。

写出思考题的答案。

实验二建立数据区、数据块传送一.实验目的1.进一步熟悉实验机操作,练习程序调试方法。

2.理解并掌握建立数据区与数据块传送程序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
P2=table[count%10];
while(1){
if(P3_7==0){
delay(10);
if(P3_7==0){
count++;
if(count==100)
count=0;
P0=table[count/10];
P2=table[count%10];
while(P3_7==0);
}
}
}
}
【运行结果】
uchar ledi=0;
TMOD=0x01;
TH0=0x3c;
TL0=0xb0;
TR0=1;
ET0=1;
EA=1;
while(1)
{
if (ldelay)
{ldelay=0;
P2=table[ledi];
ledi++;
P0=table[t];
if(ledi==10)
{
ledi=0;
t++;}
if(t==6)
班级
B100505
学号
B10050523
姓名
张涛
课程名称
单片机原理及应用
实验日期
实验名称
电子秒表显示器
成绩
【实验目的】
掌握中断和定时计数器工作原理。熟悉C51编程与调试方法。
【实验原理】
实验电路原理图如图A.62所示。该电路与实验1的计数显示器电路基本相同,只去掉图A.1中的按钮BUT即可。
图A.62实验5的电路原理图
}
int1_key() interrupt 2
{
count++;
if(count>0x0f)
count=0;
P2=led_mod[count];
}
void main()
{
IT0=1;EX0=1;EA=1;
IT1=1;
EX1=1;
P0_4=0;
P2=0x3f;
while(1);
}
【运行结果】
系部
计算机系
【实验要求】
(1)主函数在程序初始化完成后进入原地循环状态,等待中断请求。
(2)两路外部中断均设为下降沿触发方式,且为自然优先级。
(3)计数变量初值为0,变化范围为0~F。
(4)实验报告内容包括:电路原理图及分析、中断原理分析,C51源程序,仿真运行截屏图,实验小结
【设计程序】
#include<reg51.h>
t=0;
}
}
}
timer0() interrupt 1 {
m++;
if(m==20)
{
m=0;
ldelay=1;
}
TH0=0x3c;
TL0=0xb0;
}
【运行结果】
【实验总结】
单片机课程设计让我们受益匪浅.此次实验是软件与硬件相结合,考察了我们的电脑模拟实验与编程能力.对于我们科学与技术的学生,编程,出现了很大的障碍。不过经过我们一步步的努力,花费的时间与精力终于没有白费,效果渐渐地出现了.其实本身程序的思维是正确的,只是步骤中有点小错误,所以导致整个程序的结果很乱,在仔细修改程序之后,终于一步步地达到效果了.
程序启动后,8只发光二极管做循环点亮控制,其中灯亮顺序为P0.0→P0.1→P0.2→……P0.5→……P0.0,无限循环,两次LED亮的时间间隔约0.5s。
图A.32 实验3 的电路原理图
【实验内容】
(1)熟悉uVision3编译软件,了解软件的结构组成与功能;
(2)学会C51语言的程序设计方法;
【设计程序】
#define uchar unsigned char
#include <reg51.h>
bit ldelay=0;
uchar t=0;
uchar m=0;
uchar n;
void main(void)
{
uchar code table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
(3)学会在uVision3中进行C51程序录入、编译和调试;
(4)理解Proteus与Keil联合的仿真原理,实现LED指示灯循环控制功能。
【实验步骤】
(1)在ISIS中绘制电路原理图,按照表A..4将元件添加到编译环境中;
(2)在uVision3中编写C51程序;
(3)利用uVision3的编译调试功能检查程序的语法和逻辑错误;
unsigned char count;
void delay(unsigned int time){
unsigned int j=0;
for(;time>0;time--)
for(j=0;j<125;j++);
}
void main(void) {
count=0;
P0=table[count/10];
(2)在Proteus中绘制电路原理图,按照表A..1将元件添加到编辑环境中;
(3)在Proteus中加载程序,观察仿真结果,检验电路图绘制的正确性。
【实验要求】
实验电路原理图及实验结果分析
表A.1实验1的元器件清单
Category
Reference
Value
Microprocessor ICs
U1
系部
计算机系
班级
B100505
学号
B10050523
姓名
张涛
课程名称
单片机原理及应用
实验日期
实验名称
LED指示灯循环控制
成绩
【实验目的】
熟悉uVision3编译软件,掌握C51编程与调试方法。
【实验原理】
图A.32为LED指示灯循环控制电路原理图。图中LED指示灯外接于P0口。由于P0口作为I/O口使用时是漏极开路的,需要外接上拉电阻,因而图中还加有8只100Ω的电阻。图中的时钟电路和复位电路与实验1相同。
(2)在Keil中编写C51程序,并使之编译通过。
(3)在Proteus中加载程序,观察仿真结果。
表A.6实验5的元器件清单
Category
Reference
Value
Microprocessor ICs
U1
80C51
Data Converter
U3
ADC0808
Miscellaneous
X1
CRYSTAL
Capacitors
C1、C2
CAP
Capacitors
C3
CAP-ELEC
Resistors
R2~R8
RES
Resistors
R1
ERS
Optoelectronics
LED1、LED2
7SEG-COM-CAT-GRN
【实验要求】
提交的实验报告中应包括带有头块部分的电路原理图、含注释内容的源程序及实验结果分析。
【实验内容】
(1)学习使用Proteus软件,掌握原理图绘制方法;
(2)学习Keil C软件,掌握C51程序编写与调试方法;
(3)理解定时器的工作原理,完成定时中断程序的编写与调试;
(4)深入理解定时中断的编程。
【实验步骤】
(1)在Proteus中绘制电路原理图,按照表A.6将元件添加到编辑环境中。
80C51
Miscellaneous
X1
CRYSTAL
Capacitors
C1、C2/1nF
CAP
Capacitors
C3/22uF
CAP-ELEC
Resistors
R2~R8/100
RES
Resistors
R1/1kΩ
ERS
Optoelectronics
LED1、LED2
7SEG-COM-CAT-GRN
X1
CRYSTAL
Capacitors
C2~C3
CAP
Capacitors
C1/22uF
CAP-ELEC
Resistors
R2~R8/200
RES
Resistors
R10~R18/100
ERS
Optoelectronics
D1~D8
LED-YELLOW
【设计程序】
#include<reg51.h>
sbit P0_0=P0^0;
【实验内容】
(1)熟悉Proteus软件,了解软件的结构组成与功能;
(2)学习ISIS模块的使用方法,学会设置图纸、选元件、画导线、画总线、修改属性等基本操作;
(3)学会可执行文件加载及程序仿真运行方法;
(4)理解Proteus在单片机开发中的作用,完成单片机电路原理图的绘制。
【实验步骤】
(1)观察Proteus软件的菜单、工具栏、对话框等基本操作;
实验报告
实训题目:单片机原理与应用实训
院系:计算机系
专业:科学与技术_
班 级:B100505
学号:B********
*****
*******
系部
计算机系
班级
B100505
学号
B10050523
姓名
张涛
课程名称
单片机原理及应用
实验日期
实验名称
计数显示器
成绩
【实验目的】
熟悉Proteus仿真软件,掌握单片机原理图的绘图方法。
(4)下载可执行文件,在Proteus中观察仿真结果,检查程序的正确性。
【实验要求】
包括电路原理图及实验结果分析
表A.4实验3的元器件清单
Category
相关文档
最新文档