单片机跑马灯实验报告-叶坤
单片机跑马灯(流水灯)控制实验报告
单片机跑马灯(流水灯)控制实验报告实验目的:本实验旨在通过使用单片机对LED灯进行控制,实现跑马灯(流水灯)的效果,同时熟悉单片机编程和IO口的使用。
实验器材:1)STC89C52单片机2)最基本的LED灯3)面包板4)若干跳线实验过程:1.硬件连接:将单片机的P2口与面包板上的相应位置连接,再将LED灯接入面包板中。
2.编写程序:按照题目要求编写所需程序。
3.单片机烧录:将程序烧录进单片机中,即可实现跑马灯效果。
程序详解:1. 由于LED灯是呈现亮灭效果,我们要编写程序来控制LED的亮灭状态。
2. 在程序中,我们通过P2口控制LED灯的亮灭状态。
例如,若要让LED1亮,我们就将P2口的第一个引脚设置为低电平(0),此时LED1就会发光。
同样地,若要LED2,LED3等依次点亮,则需要将P2口的第二个、第三个引脚设置为低电平,依此类推即可。
3. 接下来,我们要实现每个LED灯的亮灭时间间隔,并实现跑马灯的效果。
4. 在本实验中,我们采用了计时器中断的方式来实现灯光的控制,即在定时器中断函数中对P2口进行控制,这样可以方便地控制灯亮灭时间和亮度。
通过改变定时器中断的时间,可以改变LED灯的亮灭时间;通过改变P2口的控制顺序,可以实现跑马灯效果。
5. 整个程序比较简单,具体的代码实现可以参考以下程序:#include <REG52.H>#include <intrins.h>#define uint unsigned int #define uchar unsigned char void Delay1ms(uchar _ms); void InitTimer0();sbit led1=P2^0;sbit led2=P2^1;sbit led3=P2^3;sbit led4=P2^4;sbit led5=P2^5;sbit led6=P2^6;sbit led7=P2^7;void InitTimer0(){TMOD=0x01;TH0=(65536-50000)/256; TL0=(65536-50000)%256; EA=1;ET0=1;TR0=1;}void Timer0() interrupt 1 {static uint i;TH0=(65536-50000)/256; TL0=(65536-50000)%256;i++;if(i%2==0){led1=~led1;}if(i%4==0){led2=~led2;}if(i%6==0){led3=~led3;}if(i%8==0){led4=~led4;}if(i%10==0){led5=~led5;}if(i%12==0){led6=~led6;}if(i%14==0){led7=~led7;}}void Delay1ms(uchar _ms){uchar i;while(_ms--){i=130;while(i--);}}实验总结:通过本次实验,我们掌握了单片机控制跑马灯(流水灯)的方法,对单片机编程和IO 口的使用有了更深入的了解。
单片机跑马灯实训报告
4、彩灯仿真图,如图4-4所示。
图4-4彩灯仿真图
5、彩灯布局图,如图4-5所示。
图4-5彩灯布局图
五、焊接电路
按电路装配图,如图5-1。按顺序将元器件焊接到万能板上,并用导线对其进行连接,然后对其进行检测。
图5-1电路装配图
六、程序流程:
实现小灯随开关闭合亮的程流程图,如图6-1所示。
P1 口是一个内部提供上拉电阻的 8 位双向 I/O 口, 口缓冲器嫩接收输出 4TTL 门电流。 P1口管脚写入 1 后,被内部上拉高,可用作输入,P1 口被外部下拉为低电平时,将输出电 流,这是由于内部上拉的缘故。在 FLASH 编程和校验时,P1 口作为第八位地址接收。
P2 口为一个内部上拉电阻的 8 位双向 I/O 口,P2 缓冲器可接收,输出 4 个 TTL 门电流, 当 P2 口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入是,“1”P2 口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2 口当用于外部程序存 储器或 16 位地址外部数据存储器进行存取时,P2 口输出地址高八位。在给出地址“1”时它利用内部上位优势,当对外部八位地址数据存储器进行续写时,P2 口输出其特殊功能 寄存器的内容。P2 口在 FLASH 编程和校验时接收高八位地址信号和控制信号。
图6-1流程图
七、跑马灯程序:
ORG 00H
LJMP START
ORG 30H
START:MOV A,#0FEH
LOOP:MOV P1,A
LCALL DELAY
RL A
LJMPLOOP
DELAY:MOV R5,#5
D1: MOV R6,#200
D2: MOV R7,#250
单片机跑马灯(流水灯)控制实验报告
单片机实验报告姓名: 学号:一、 实验实现功能:1:计数器功能2:流水灯二、 具体操作:1、计数器功能数码管的动态显示。
每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。
2、流水灯当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。
三、 程序流程图开始 定时器T0 设置初值,启动定时器,打开中断复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开四、程序#include <reg51.h>typedef unsigned char uint8;typedef unsigned int uint16; //类型定义sbit P2_1 = P2^1;sbit P2_2 = P2^2;sbit P2_3 = P2^3;sbit P2_4 = P2^4; //位声明四个数码管开关sbit Key2 = P3^2;sbit Key3 = P3^3; //位声明2个按键K2和K3sbit Ledk = P2^0 ; //LED 开关void delay(uint16 i); //延时函数声明void refresh (); // 数码管刷新函数声明void liushuideng(); //流水灯函数声明uint8 number[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管的真值表uint8 out[4] = {0}; // 数组变量uint16 counter=0; //用作计数器的变量uint16 Time_counter=0; //用作定时器的变量void main() //主函数{TMOD = 0x01; //定时器0,工作方式一TH0 = 0xFC;TL0 = 0x18; //定时器初值使每次循环为1msTR0 = 0; //定时器0开始作ET0 = 0; // 定时器中断关EA = 0; // 关中断while(1) //计数器模式{Ledk =1 ; //led开关关out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位if (!Key2) //计数器加1{++counter; //自加out[0]=number[counter%10]; //取个位out[1]=number[counter%100/10]; //十位out[2]=number[counter%1000/100]; //百位out[3]=number[counter/1000]; //千位while(!Key2) //等待键盘抬起refresh(); //刷新数码管}refresh(); //刷新数码管if (!Key3) // 进入跑马灯模式liushuideng();}} //主函数结束/*******************延时*************/void delay(uint16 i){uint8 j; // 定义局部变量for(i;i>0;i--) //循环i*240 次for(j=240;j>0;j--);}/************数码管刷新******************/void refresh (){uint8 j;for (j=0;j<4;j++) //四次循环刷新数码管{switch(j){case 0: P2_1=1;P2_2=1;P2_3=1;P2_4=0;break;case 1: P2_1=1;P2_2=1;P2_3=0;P2_4=1;break;case 2: P2_1=1;P2_2=0;P2_3=1;P2_4=1;break;case 3: P2_1=0;P2_2=1;P2_3=1;P2_4=1;break;//每次循环只选中一个数码管default:break;}P0 = out[j]; // 位选,给数码管送值delay (20); //延时消抖}}/*************定时器的中断服务函数**************/void Timer0_Overflow() interrupt 1 //定时器0溢出中断,这个语句1ms执行一次{TH0 = 0xFC;TL0 = 0x18; //每1ms重新赋定时器初值Time_counter++; //计数,看经过了几个1ms}/***********************流水灯子函数****************************/ void liushuideng(){uint8 j = 0 ; //定义局部变量P0 = 0xff; // 小灯全关TR0 = 1; //定时器1开始计时EA = 1; //中断开放ET0 = 1; //定时器0中断开while(1){Ledk = 0 ; //打开LED开关P2 = P2|0x1E; //关掉数码管if(50 == Time_counter) //50个毫秒{P0=~(1<<j++); //控制小灯Time_counter = 0; //清零开始下一次循环定时}if (8==j) //移完8次再重新移{j=0;}}}。
单片机 跑马灯实验
void hold(){
n=8;
while(1){
if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯
oldK=K[4];
if(n==-1)n=7;//D0灯亮后点亮D7
while(n>=0){
out=D[n];
n--;
if(delay4(15))break;
}
}
if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯
void hold(){
n=8;
while(1){
if(P2==K[4]){//一直按着K4键,逆序点亮跑马灯
oldK=K[4];
if(n==-1)n=7;//D0灯亮后点亮D7
while(n>=0){
out=D[n];
n--;
if(delay4(15))break;
}
}
if(P2==K[0]){//未按下K4键,一直正序点亮跑马灯
图43键控的流水灯
五、实验思考题
1、采用I/O口作为输出口时要考虑哪些因素?为什么实验装置中LED要串联一个电阻?
当作为输出口时候就是单片机向外发出数据,或者再产生拉电流,单片机的拉电流一般要比灌电流小,基本上就能点亮2,3个LED,功率很有限,所以一般时候必须用驱动芯片来驱动单片机的外围器件。串联电阻是为了保护电路。
while(1){//开机即正序点亮流水灯
forward();
if(P2!=K[0]){
break;
}
}
while(1){
out=AllOff;
if((P2&0x0f)!=0x0f){//检测有键按下
delay10ms();//延时10ms再去检测
跑马灯单片机实训报告
一、前言随着科技的不断发展,单片机技术在各个领域得到了广泛的应用。
为了提高我们的实践能力,加强理论知识与实际操作的结合,我们进行了单片机跑马灯实训。
通过本次实训,我们深入了解了单片机的基本原理,掌握了单片机的编程方法,并能够运用所学知识解决实际问题。
二、实训目的1. 熟悉单片机的硬件结构和工作原理。
2. 掌握单片机的编程方法,包括汇编语言和C语言。
3. 学会使用单片机进行简单的外设控制。
4. 提高动手能力和团队合作能力。
三、实训内容1. 实训设备(1)8051单片机开发板(2)LED灯(3)电阻(4)电源2. 实训步骤(1)搭建电路首先,我们需要搭建跑马灯的电路。
将LED灯串联,然后连接到单片机的P1口。
在LED灯的正极和负极之间串联一个电阻,用于限流。
(2)编写程序接下来,我们需要编写跑马灯的程序。
以下是用C语言编写的跑马灯程序:```c#include <reg51.h>#define LED P1void delay(unsigned int ms) {unsigned int i, j;for (i = 0; i < ms; i++)for (j = 0; j < 1275; j++);}void main() {while (1) {LED = 0x01; // 第一个LED灯亮 delay(500); // 延时LED = 0x02; // 第二个LED灯亮 delay(500); // 延时LED = 0x04; // 第三个LED灯亮 delay(500); // 延时LED = 0x08; // 第四个LED灯亮 delay(500); // 延时LED = 0x10; // 第五个LED灯亮 delay(500); // 延时LED = 0x20; // 第六个LED灯亮 delay(500); // 延时LED = 0x40; // 第七个LED灯亮 delay(500); // 延时LED = 0x80; // 第八个LED灯亮 delay(500); // 延时LED = 0x00; // 所有LED灯熄灭delay(500); // 延时}}```(3)编译程序将编写的程序导入到单片机开发板中,并下载到单片机中。
跑马灯实验--实习训练报告暨教案
课题:跑马灯实验成绩:
班级:姓名:同组姓名:
组别:编号:日期:指导教师:
一、实训目的
1.练习和掌握C语言循环语句的使用;
2.掌握电路的连接和工作原理;
3.练习调试程序。
二、实训设备
四、电路原理图及操作步骤三、程序清单
五、 实训总结
1、实训有关数据、现象的记录及分析;
8只LED 灯从低位向高位轮流发光,不断循环往复。
2、思考题;
完成P3口各引脚与第二功能表:
3、实训过程中出现的问题及其分析和解决方法;
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、基本的流水灯:开机后即重复顺序点亮流水灯,等待其他按键。
单片机实验报告
单片机实验报告班级:姓名:学号:日期:实验一:跑马灯实验实验目的:1.通过实验,掌握汇编语言程序的基本格式及其编写;2.通过实验,熟悉指令系统,掌握查表指令及其应用;3.通过实验,掌握子程序及延时子程序的编写;4.通过实验,掌握中断的概念及其定时器的应用实验内容:1.键入跑马灯的代码:#include<iom16v.h>void delay_ms(unsigned int time){unsigned int k,l;for(k=0;k<time;k++)for(l=0;l<1141;l++);}void main(void){ unsigned char i,j;PORTC=0x00;DDRC=0xFF;while(1){ j=0x02;for(i=0;i<7;i++) //8个流水灯逐个闪动{PORTC=j;delay_ms(25); //调用延时函数j<<=1;}j=0x40;for(i=0;i<7;i++) //8个流水灯反向逐个闪动{PORTC=j;delay_ms(25); //调用延时函数j>>=1;}}}2.通过ISIS7 模拟单片机3..将代码通过ATMEGA16 实现跑马灯的运行。
4.在ISIS7中运行。
实验结果:8个灯能够一次从右到左,再从左到右间隔100ms亮起。
实验问题:一开始代码正确但是当键入到ATMEGA16时8个灯不能亮起,1)电阻太大而模拟的电流太小;2)delay_ms的子代码设定的时间太短。
但是可以通过修改时钟频率可以对硬件进行时间脉冲修改。
实验二:键盘扫描实验目的:1.熟悉键盘与显示器的接口连接方法。
1.掌握键盘扫描的实现过程。
实验内容:1.键入代码:#include<iom16v.h>void delay_ms(int x){int i,j;for(i=0;i<=x;i++)for(j=0;j<=5000;j++){}}char cycle(){char jianzhi;PORTA=0xf0; //行输出低电平,列带上拉电阻输入DDRA=0x0F;delay_ms(15);if(PINA==0xf0) //检查有无键按下,无键按下返回0XFF return(0xff);if(PINA==0x70) //获取按下键的行编码jianzhi=1;else if(PINA==0xb0) //四行三列jianzhi=2;else if(PINA==0xd0)jianzhi=3;else if(PINA==0xe0)jianzhi=4;PORTA=0x0f; //反转DDRA=0xf0;delay_ms(15);if(PINA==0x0D)jianzhi=jianzhi+0;else if(PINA==0x0B)jianzhi=jianzhi+4;else if(PINA==0x07)jianzhi=jianzhi+8;return(jianzhi);}void main(){DDRD=0XFF;PORTD=0X00;DDRB=0XFF;PORTB=0X00;while(1){int jianzhi=cycle();switch(jianzhi){case 1:PORTB=0X00;PORTD=0X01;break;case 2:PORTB=0X00;PORTD=0X02;break;case 3:PORTB=0X00;PORTD=0X04;break;case 4:PORTB=0X00;PORTD=0X08;break;case 5:PORTB=0X00;PORTD=0X10;break;case 6:PORTB=0X00;PORTD=0X20;break;case 7:PORTB=0X00;PORTD=0X40;break;case 8:PORTB=0X00;PORTD=0X80;break;case 9:PORTD=0X00;PORTB=0X01;break;case 10:PORTD=0X00;PORTB=0X02;break;case 11:PORTD=0X00;PORTB=0X04;break;case 12:PORTD=0X00;PORTB=0X08;break;}}}2.通过ISIS7模拟连接电路:3.带入代码,运行程序,点击每个键盘按钮在右边的LED灯处显示所按得键盘号。
单片机内部结构测试报告-跑马灯
单片机内部结构测试报告姓名:苏汉生班别:09机械1班学号:0915020045指导老师:庞志目录1.跑马灯实验12.跑马灯实验23.跑马灯实验34.按键实验、蜂鸣器5.定时器数码管显示6.看门狗实验7.AD数模转换实验程序运行分析一、跑马灯实验11.测试程序名称:跑马灯实验12.程序功能介绍:跑马灯1的程序功能主要是控制LED灯闪亮的顺序,使八个LED灯按照程序设定闪亮。
但对按键和其他元件不起任何控制作用。
3.程序相关的电路图:8位流水灯电路4.程序总体(主函数)流程图:5(1)(3)1ms延时函数:(4)N ms掩饰函数:6.程序涉及的技术解析:unsigned charLED_table[]={0xFE,0x00,0xFF,0xFE,0xFD,0xFB,0xF7,0xEF,0xDF,0xBF ,0x7F,0xFF,0x00,0xFF,0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD,0xFE,0 xFF,0x00,0xFF,0x7E,0xBD,0xDB,0xE7,0xFF,0x00,0xE7,0xDB,0xBD,0x7 E,0xFF,0x00};上述这个语句用到了一维数组,命名为LED_table,该数组一共有37个元素,每一个元素是一个十六进制的数,这些十六进制的数代表着开发板上的LED灯闪亮的规律(输出1为不亮,输出0为亮)。
PORTA = 0xFF;DDRA = 0xFF;DDRE=0XFF;PORTE=0XFF;上述语句是I/O口(端口A寄存器)的初始化,A口的8个脚控制开发板上的8个LED灯。
初始化A口设置为输出,8个引脚分别为1111 1111,LED等为全灭的状态。
单片机与LED灯之间连接了一个74HC573八进制3态非反转透明锁存器,E口2脚接在74HC573锁存器的使能端。
当锁存使能端为高电平1时,锁存对于数据是透明的(也就是说输出同步);当锁存使能端为低电平0时,符合建立时间和保持时间的数据会被锁存。
单片机跑马灯实验报告
单片机跑马灯实验报告摘要:本实验通过使用单片机来控制LED灯进行跑马灯效果的展示。
通过简单的电路连接和编程,我们成功实现了单片机跑马灯的功能。
实验结果表明,单片机跑马灯是一种简单而有效的显示系统,可广泛应用于娱乐和装饰等领域。
引言:跑马灯效果是一种常见且受欢迎的LED显示效果,它可以不断地循环显示LED灯的亮灭轮廓,给人们带来视觉上的愉悦。
单片机是一种可编程的微控制器,广泛应用于电子系统的控制和管理。
在本实验中,我们将利用单片机来实现跑马灯效果,通过编程控制LED灯的亮灭来模拟跑马灯的效果。
材料和方法:本实验所需材料如下:1. 单片机开发板2. LED灯3. 面包板4. 连接线实验步骤:1. 将单片机开发板放置在面包板上,确保连接稳固。
2. 将LED灯连接到面包板上,按照电路图正确连接。
3. 接通电源,将USB线连接到单片机开发板上。
4. 在计算机上打开开发板的编程软件。
5. 编写程序代码,实现跑马灯的效果。
6. 将程序代码下载到单片机开发板中。
7. 观察LED灯的亮灭情况,检查是否实现了跑马灯效果。
结果和讨论:经过实验,我们成功实现了单片机跑马灯的效果。
LED灯按照指定的顺序循环亮灭,产生出跑马灯的效果。
通过调整程序代码,我们可以控制跑马灯的速度和亮灭顺序,使其更加多样化和有趣。
单片机跑马灯是一种简单而有效的LED显示系统。
它可以应用于各种场景,包括室内和室外的装饰灯,新闻标语显示,广告牌等。
跑马灯效果不仅能够吸引人们的目光,还可以起到一定的宣传和广告效果。
总结:通过本次实验,我们了解了单片机的基本原理和应用,并成功实现了单片机跑马灯的效果。
单片机跑马灯具有简单、低成本、可编程等优点,适用于各种需要循环显示效果的场景。
未来,我们可以探索更多有趣的跑马灯效果,并将其应用于实际项目中。
在这个数字化时代,单片机跑马灯有着广阔的应用前景,希望能够为人们的生活和工作带来更多的灵感和乐趣。
单片机实训报告跑马灯
一、实训背景随着科技的发展,单片机作为一种重要的嵌入式系统控制单元,在工业控制、智能家居、物联网等领域得到了广泛的应用。
为了提高学生对单片机程序设计的理解和实践能力,本次实训选择了跑马灯程序设计作为实训项目。
二、实训目的1. 熟悉单片机的基本结构和编程方法。
2. 掌握Keil C51集成开发环境的使用。
3. 学习跑马灯程序的设计与实现。
4. 培养动手实践能力和团队协作精神。
三、实训内容本次实训主要分为以下几个部分:1. 电路设计:设计跑马灯的电路,包括单片机、LED灯、电阻、按键等元件。
2. 程序设计:编写跑马灯的程序,实现LED灯的正序、倒序、闪烁等功能。
3. 程序调试:在Keil C51集成开发环境中进行程序调试,确保程序正常运行。
4. 实验报告撰写:总结实训过程中的经验和收获,撰写实验报告。
四、电路设计跑马灯电路主要包括以下元件:1. 单片机:选用AT89C51单片机作为控制核心。
2. LED灯:使用8个LED灯作为显示元件。
3. 电阻:用于限流,防止LED灯烧毁。
4. 按键:用于控制跑马灯的运行模式。
电路连接方式如下:1. 将8个LED灯的正极依次连接到单片机的P1口。
2. 将8个LED灯的负极依次连接到地线。
3. 将按键的一端连接到单片机的P3.0口,另一端连接到地线。
五、程序设计跑马灯的程序采用C语言编写,主要功能包括:1. 正序跑马灯:LED灯依次点亮,从D1到D8。
2. 倒序跑马灯:LED灯依次点亮,从D8到D1。
3. 闪烁跑马灯:LED灯快速闪烁。
程序流程如下:1. 初始化单片机P1口为输出模式。
2. 根据按键输入选择跑马灯的运行模式。
3. 根据选择的模式,依次点亮LED灯。
4. 延时一段时间,然后继续点亮下一个LED灯。
5. 重复步骤3和4,直到所有LED灯点亮完毕。
程序代码如下:```c#include <reg51.h>#define LED P1void delay(unsigned int t) {unsigned int i, j;for (i = 0; i < t; i++)for (j = 0; j < 120; j++);}void main() {unsigned char i;LED = 0x01; // 正序跑马灯while (1) {for (i = 0; i < 8; i++) {delay(500); // 延时LED = (0x01 << i); // 点亮下一个LED灯}}}```六、程序调试在Keil C51集成开发环境中,将程序代码编译生成HEX文件,然后将HEX文件烧录到单片机中。
带液晶显示 蜂鸣器 键盘 跑马灯的单片机实验报告
AVRKIT-MEGA16K安装调试实验报告学生姓名:学号:院系:专业:指导教师:A VRKIT-MEGA16K安装及调试(一)A VRKIT-MEGA16K主机实验板首先是一块干净的主板以及一包各种各样的元器件。
我们所需要的是将这些元器件正确级适当的焊接到这块主板上面。
其中需要我们胆大心细,一丝不苟,不能有丝毫的马虎,因为这是一个系统,任何一个部位的错误会影响这个系统的工作。
这就是我们所焊好的一块主板:下面是我们将单片机安装到主板上后的一张照片:其中有以下几个单元:RS232接口单元,单片机插口单元,二极管单元,按键单元,LED 显示单元,液晶显示单元,电源供应单元,无源蜂鸣器单元,还有外部时钟单元。
其中在这块电路板上没有安装液晶显示,下面的一块就是安装了液晶显示器的主板:我们的单片机是5V单元供电,是直流电,当然我们也是可以用电池来供电,4*1.5V的供电虽然超过了5V,但是仍然可以安全工作,下面的一块电路板就是我们安装了电池盒的电路板:焊完单片机的同时,我们有两种选择,并口的下载线和USB口的下载线,由于我的电脑没有并口,所以我选择的USB下载线。
由于是双面板,同时那些贴片电阻和电容都是十分的微小,给焊接工作带来了很大的困难。
但是万事开头难,经过了一些时间的适应之后,我成功的焊接好的一条USB下载线,下面是USB下载线的照片:下面是我把线连接上去后的样子:在焊接完成之后是配置工作,由于在套件里面的单片机A VR mega8是已经把固件安装好的了,所以我可以省略这一步骤,直接配置单片机。
在次之前,我们首先需要在电脑上安装好下载线:1.将J1和J3跳线断开,将usbasp接到电脑的一个空闲usb接口电脑提示发现新硬件USBasp2.安装usbasp的驱动程序3.找到usbasp驱动程序存放的位置basp驱动安装成功检验是否安装成功我们可以在我的电脑里面的设备管理器里查看是否有轩微科技USB组这一项目接下来我们需要配置一下熔丝位,使单片机能够正常的工作。
单片机跑马灯实验报告
单片机跑马灯实验报告单片机跑马灯实验报告引言:单片机是一种集成电路,具有微处理器核心、存储器、输入输出接口和定时计数器等功能,广泛应用于各个领域。
而跑马灯实验是单片机学习中的基础实验之一,通过控制LED灯的亮灭顺序,实现类似跑马灯效果。
本报告将详细介绍单片机跑马灯实验的设计原理、实验步骤以及实验结果。
一、设计原理:单片机跑马灯实验的设计原理基于单片机的IO口控制和定时器的应用。
在单片机中,IO口可以通过设置高低电平来控制外部设备的工作状态,而定时器可以实现对时间的精确控制。
通过将多个LED灯连接到单片机的不同IO口上,并利用定时器控制LED灯的亮灭顺序和时间间隔,就可以实现跑马灯效果。
二、实验步骤:1. 准备工作:a. 准备单片机开发板、杜邦线、LED灯等实验器材;b. 连接电路:将多个LED灯通过杜邦线连接到单片机的不同IO口上;c. 上电测试:将开发板连接到电源,确认电路连接无误。
2. 编写程序:a. 打开单片机开发环境,选择合适的单片机型号;b. 编写程序代码:根据实验要求,编写控制LED灯亮灭顺序的程序代码;c. 调试程序:通过编译、下载和运行,检查程序是否可以正常工作。
3. 实验操作:a. 将已编写好的程序下载到单片机开发板中;b. 上电运行:通过上电启动单片机,程序开始运行;c. 观察实验现象:观察LED灯的亮灭顺序和时间间隔,验证跑马灯效果。
三、实验结果:经过实验操作,我们成功实现了单片机跑马灯效果。
LED灯按照预先设定的顺序依次亮起,并在一定时间后熄灭,随后下一个LED灯亮起,如此循环往复,形成了跑马灯效果。
通过调整程序代码中的参数,我们还可以改变跑马灯的亮灭顺序和时间间隔,实现不同的效果。
四、实验总结:通过这次单片机跑马灯实验,我们深入了解了单片机的IO口控制和定时器的应用。
通过编写程序代码,我们成功实现了跑马灯效果,并通过调试参数,改变了跑马灯的亮灭顺序和时间间隔。
这次实验不仅巩固了我们对单片机的基础知识的理解,还培养了我们的实际操作能力。
跑马灯实验报告
跑马灯实验报告实验目的,通过搭建一个简易的跑马灯电路,了解电路的基本原理和运作方式,加深对电子电路的理解。
实验器材,LED灯、电阻、导线、电池、开关、面包板。
实验步骤:1. 将面包板上的LED灯、电阻、开关、电池依次连接起来,注意连接的顺序和方向。
2. 确保连接无误后,打开开关,观察LED灯的亮灭情况。
3. 如果LED灯正常亮起,可以尝试将多个LED灯连接在一起,形成跑马灯效果。
4. 通过调整电阻的阻值,观察LED灯的亮度变化,体会电阻在电路中的作用。
实验结果:经过实验,我们成功搭建了一个简易的跑马灯电路。
当打开开关时,LED灯依次亮起,形成了跑马灯效果。
通过调整电阻的阻值,我们发现LED灯的亮度会有所变化,这说明电阻在电路中起到了调节电流的作用。
实验结果符合我们的预期,并且加深了我们对电子电路原理的理解。
实验分析:跑马灯电路是一种简单的序列灯光控制电路,通过合理连接LED灯和电阻,可以实现灯光的顺序亮起和熄灭。
在实验过程中,我们需要注意LED灯的正负极连接方向,以及电阻的阻值选择,这些都会影响到电路的正常运作。
同时,电池的电压也会对LED灯的亮度产生影响,需要合理选择电池的电压等级。
实验总结:通过本次实验,我们对跑马灯电路有了更深入的了解,同时也加深了对电子电路原理的理解。
在今后的学习和实践中,我们将更加注重电路的搭建和调试,不断提高自己的实验操作能力和电子电路设计水平。
希望通过不断的实践和学习,我们能够掌握更多的电子电路知识,为将来的创新和发明打下坚实的基础。
实验感想:本次实验让我更加深入地了解了电子电路的原理和运作方式,也增强了我对电子学科的兴趣。
通过动手搭建电路,我不仅学到了知识,还培养了实践能力和动手能力。
希望在今后的学习中,能够继续保持对电子学科的热爱,不断提高自己的技能和能力。
【单片机跑马灯实验报告】单片机实验报告一
竭诚为您提供优质文档/双击可除【单片机跑马灯实验报告】单片机实验报告一
单片机实验报告一
湖南科技学院
电子与信息工程学院
课程名称:
姓名:
学号:
专业:
班级:
指导老师:实验报告
实验一P1口输入输出应用
一、实验目的
1、掌握单片机的最小系统组成。
2、掌握P1口的简单应用。
3、掌握如何利用P1口进行输入、输出。
4、熟悉proteus和keil软件的使用方法。
()二、实验任务
1、在proteus中画出51单片机最小核心电路,包括复位电路和晶振电路。
2、继续在proteus中绘制电路,用P1.0、P1.1作输入接两个拨动开关,。
基于AT89S52单片机的多模式带音乐跑马灯设计实训报告
实训课题基于AT89S52单片机的多模式带音乐跑马灯设计一、实训目的及要求(1)通过实训,理解与掌握单片机系统的开发流程及常见系统的开发设计、仿真调试等,培养一定的单片机设计与开发能力。
(2)掌握按键电路的设计。
(3)掌握单片机复位电路和晶振电路的工作原理及设计。
(4)掌握和了解+5V电源原理设计。
(5)了解单片机C语言及程序设计。
(6)对Keil C51和Proteus 7软件进行熟练的掌握和操作。
二、实训设备和元器件装有Proteus、Keil C软件的PC机一台, AT89S52单片机一块,12MHZ晶振,电容,电解电容,电阻,16个发光二级管,按键,三极管,74LS245集成块,LED数码管,+5V电源,印制板。
三、实训任务及功能要求(1)有16个发光二极管做跑马灯,其中跑马灯有10种亮灯模式。
(2)有专门的按键用以切换跑马灯的模式,并且对于任何一种跑马灯模式都可以对亮灯速度进行控制。
(3)每一种跑马灯模式用LED数码管进行显示。
(4)当跑马灯处于一种模式时,伴随的音乐响起,音乐至少有3首,并可以对其进行切换。
四、系统硬件电路1、系统硬件框图基于AT89S52单片机的多模式带音乐跑马灯控制系统由电源电路、单片机主控电路、模式切换以及调速按键控制电路、LED数码管显示电路和16个发光二级管的跑马灯电路几部分组成,系统框图如图1-1所示:图1-1 基于AT89S52单片机的多模式带音乐跑马灯控制系统框图2、系统电路原理图本项目用AT89S52单片机的P1,P2口分别控制8个跑马灯,而P3口与LED 数码管相连,音乐采用蜂鸣器接P2.6输出,P2.1接模式键切换按键,P2.4和P2.5分别接跑马灯加速和减速按键,在音乐播放时加速与减速按键可以控制音乐的切换。
综上所述,可设计出基于AT89S52单片机的多模式带音乐跑马灯,电路原理图如图1-2所示:图1-2 基于AT89S52单片机的多模式带音乐跑马灯原理图 电源电路AT89S1 单片机 复位电路 晶振电路 LED 数码管 显示电路16个发光二极管做跑马灯模式切换按键以及速度调节按键五、 系统控制软件1、控制流程图该程序采用两个程序编写:第一个为单片机主程序,作用是使单片机完成相应上电功能;第二个为音乐产生程序,在第一个程序中包含第二个程序的头文件。
51单片机走马灯实验报告
微机原理及单片机应用实验实验报告实验跑马灯一、实验内容开关控制输出方式,共四种,开关拨到k1时奇数灯亮,开关拨到k2时偶数灯亮,开关k3时奇数偶数灯轮流亮,开关拨到k4时从左到右依次亮,开关拨到k5时从右到左依次亮。
二、实验步骤①依次L1-L8接入P1.0-P1,7,将P3接入高低电平开关②编程③实现三、实验原理图四.实验程序清单ORG 0000HPX00: MOV P1,#0FFH KEY : MOV A,#0FEHPO00: JB P3.0,PO01JNB P3.0,PO02PO01: MOV A,#055HMOV P1,ALJMP PO00PO02: JB P3.1,PO03JNB P3.1,PO04PO03: MOV A,#0AAHMOV P1,ALJMP PO00PO04: JB P3.2,PO05JNB P3.2,PO06PO05:MOV A,#0FEHK1:MOV P1,AJNB P3.2,LASTAJMP W1W1:RL ASJMP K1C1:MOV R6,#0A0HMOV R7,#0FFHK2:MOV R7,#0FFHK3:DJNZ R7,K3DJNZ R6,K2LJMP W1PO06:JB P3.3,PO07JNB P3.3,PO08PO07:MOV A,#7FHK4:MOV P1,AJNB P3.3, LASTAJMP W2W2: RR ASJMP K4C2: MOV R6,#0A0HMOV R7,#0FFHK5:MOV R7,#0FFHK6:DJNZ R7,K6DJNZ R6,K5LJMP W2PO08:JB P3.4,PO09JNB P3.4,LASTPO09:MOV A,#55HMOV P1,AMOV R6,#0A0HMOV R7,#0FFHK7:MOV R7,#0FFHK8:DJNZ R7,K8DJNZ R6,K7MOV A,#0AAHMOV P1,AMOV R6,#0A0HMOV R7 ,#0FFHK9:MOV R7,#0FFHK10:DJNZ R7,K10DJNZ R6,K9LJMP PO08LAST:MOV P1,#0FFHLJMP PO00END五、实验总结参考8255交通灯实验,加上延时程序以及查询式的跳转方法实现跑马灯。
单片机跑马灯实验报告(二)
单片机跑马灯实验报告(二)引言概述:单片机跑马灯实验是一种常见的数字电路实验,也是学习单片机基础应用的重要内容。
本实验旨在通过控制单片机的IO口输出来实现多个LED灯的顺序闪烁,从而模拟跑马灯的效果。
本报告将从硬件组成、电路连接、程序设计、实验步骤和实验结果等方面进行详细阐述。
正文:1. 硬件组成:- 单片机 (例如STC89C52)- 电源 (5V 直流电源)- 电阻 (用于限流)- LED灯 (多个,不同颜色)- 连接线等2. 电路连接:- 连接单片机的引脚与LED灯、电阻等。
一般使用IO口输出来控制LED灯的开关状态,通过改变输出电平来控制灯的亮灭。
具体的连接方式可以根据单片机的datasheet或者开发板的示意图来确定。
3. 程序设计:- 使用C语言编写程序,通过编写程序控制单片机的IO口输出来实现LED灯的顺序闪烁。
基本的程序框架包括引入头文件、定义引脚、设置IO口状态、延时函数和主函数等。
4. 实验步骤:- 硬件连接完毕后,将程序通过编译、烧录等操作下载到单片机中。
- 运行程序,观察LED灯按照设定的顺序是否闪烁,是否达到跑马灯的效果。
- 可以通过改变程序中的一些参数,如延时时间、顺序等,来观察结果的变化。
5. 实验结果:- 根据实验步骤操作后,观察实验效果是否与预期相符。
- 分析实验结果,检查是否有异常情况,如LED灯不亮、顺序错误等,进行排查和修改。
- 还可进行一些扩展实验,如控制节奏变化、增加LED灯数量等。
总结:通过本次实验,我们成功实现了单片机跑马灯的效果,掌握了基本的硬件连接和程序设计方法。
在实验过程中,我们深入了解了单片机的IO口控制和LED灯驱动原理等知识。
通过不断练习和实验,我们能够熟练掌握单片机应用开发的基础技能,为日后深入学习和应用打下了良好的基础。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单片机实验报告—Delay函数和中断系统实现跑马灯14级通信2班叶坤学号:201400800679
一、硬件组成介绍
1、最小系统
STC12C5A16S2单片机、开发板、12兆的晶振、电源。
2、其他
共有40个引脚,两个外部中断,两个定时器,一个串行口中断。
四个独立按键,四个数码管,一个蜂鸣器,还有一块拓展区域,可作为日后拓展功能使用,开发单片机的更多功能。
二、软件开发流程
1、新建工程
打开Keil软件,点击“Project | New Project…”,弹出一个名为“Create New Project”的对话框。
然后选择一个合适的文件夹准备来存放工程文件。
2、选择CPU
Keil提示选择CPU 器件。
选中ATMEL中的89c52即可。
接下来弹出一个对话框。
该对话框提示是否要把标准8051 的启动代码添加到工程中去,一般选择“否”。
3、新建一个.c文件
点击新建文件,将文件名改为“text.c”,然后保存在合适的文
件夹里。
扩展名“.c”不可省略。
4、添加源程序文件到工程中
一个空的源程序文件“text.c”已经建立,但是这个文件与刚才新建的工程之间并没有什么内在联系,因此我们需要把它添加到工程中去。
单击Keil软件左边项目工作窗口“Target 1 ”上的“+”,将其展开。
然后右击“Source Group 1”文件夹,会弹出选择菜单。
单击其中的“Add Files to Group 'Source Group 1' ”项。
这时,对话框内将出现刚才保存过的“text.c”。
双击文件“text.c”,这时,源程序文件“text.c ”已经出现在项目工作窗口的“Source Group 1 ”文件夹内。
5、设计和编辑C语言程序
单根据实验要求编辑C语言程序,并且通过反复的编译和调试以确保程序的正确性。
编辑“text.c ”文件,然后点击“Project”中的“compile”,根据运行结果调试程序,以达到目的。
6、勾选产生.hex文件
单击Keil C51 工具栏的“”图标,弹出名为“Options for Target ‘Target 1’ ”的对话框。
单击“Output”标签页,选中“Create HEX File”项,然后“确定”。
7、仿真调试
用鼠标左键单击菜单命令“Debug”→ “Start/Stop Debug
Session”,单击菜单命令“Peripheral”→
“I/O-Ports”→“Port1”→“View”→“Periodic Window Update”,切换到源程序窗口,将光标移到开头的一条可执行语句上,用鼠标左键单击菜单“Debug”→“Run to Cursor line”→ “Step”,或用鼠标左键单击菜单“Insert/Remove break
point”→“Go”,重复“Step”或“Insert/Remove break point”→ “Go”步骤。
停止调试:用鼠标左键单击菜单“Debug”→“Start/Stop Debug Session”。
8、烧录程序
编译成功后的结果会生成hex格式的程序文件。
打开烧录程序的软件STC_ISP,选择之前已安装好的驱动的COM口,并选择单片机的型号。
点击“打开程序文件”,找到刚才生成的hex文件,双击。
最后点击“下载”,并给单片机上电,程序便被烧录到单片机中(烧录前单片机要处于关闭状态)。
三、C语言程序展示及讲解
①运用Delay函数实现跑马灯:
#include"reg52.h"
sbit D1=P0^0;
sbit D2=P0^1;
sbit D3=P0^2;
sbit P4=P0^3;
sbit P5=P0^4;
sbit P6=P0^5;
sbit P7=P0^6;
sbit P8=P0^7;
sbit S=P2^0; //定义端口
void Delay(unsigned int xms)
{
unsigned int i,j;
for(i=xms;i>0;i--)
for(j=100;j>0;j--);
} //Delay函数
void main(void) //主函数
{
int i;
S=0; //打开电源
{
D1=0;
Delay(800);
D1=1;
D2=0;
Delay(800);
D2=1;
D3=0;
Delay(800);
D3=1;
P4=0;
Delay(800);
P4=1;
P5=0;
Delay(800);
P5=1;
P6=0;
Delay(800);
P6=1;
P7=0;
Delay(800);
P7=1;
P8=0;
Delay(800);
P8=1;
P7=0;
Delay(800);
P7=1;
P6=0;
Delay(800);
P6=1;
P5=0;
Delay(800);
P5=1;
P4=0;
Delay(800);
P4=1;
D3=0;
Delay(800);
D3=1;
D2=0;
Delay(800);
D2=1;
D1=0;
Delay(800);
D1=1;
}
for(i=1;i<3;i++)
{
D1=0;
D2=0;
D3=0;
P4=0;
P5=0;
P6=0;
P7=0;
P8=0;
Delay(5000);
D1=1;
D2=1;
D3=1;
P4=1;
P5=1;
P6=1;
P7=1;
P8=1;
Delay(5000); //跑马灯过后所有灯闪烁两次}
}
②中断系统实现跑马灯:
#include"reg52.h"
unsigned char count;
sbit D1=P0^0;
sbit D2=P0^1;
sbit D3=P0^2;
sbit D4=P0^3;
sbit D5=P0^4;
sbit D6=P0^5;
sbit D7=P0^6;
sbit D8=P0^7;
sbit S=P2^0; //定义端口
void ding() interrupt 1
{
P0=0xff; //灯全灭
TH0=0x3c;
TL0=0XB0;
if(count==1)
D1=0;
if(count==2)
D2=0;
if(count==3)
D3=0;
if(count==4)
D4=0;
if(count==5)
D5=0;
if(count==6)
D6=0;
if(count==7)
D7=0;
if(count==8)
D8=0;
if(count==9)
;
if(count==10)
P0=0x00; //灯全亮 if(count==11)
;
if(count==12)
D8=0;
if(count==13)
D7=0;
if(count==14)
D6=0;
if(count==15)
D5=0;
if(count==16)
D4=0;
if(count==17)
D3=0;
if(count==18)
D2=0;
if(count==19)
D1=0;
if(count==20)
;
if(count==21)
P0=0X00; //灯全亮
if(count==22)
;
count++;
if(count==22)
count=1;
}
void main(void)
{
S=0;
count=1;
TMOD=0x01; //模式1定时
TH0=0X3C;
TL0=0XB0;
ET0=1; //开T0中断
EA=1; //开CPU中断
TR0=1; //启动T0
TF0=0; //T0溢出标志位清零
while(1)
{
}
}
四、实验结果与分析
通过两种方式都实现了跑马灯,但实现的方式个有好处。
在运用Delay函数实现跑马灯的时候C语言程序很冗杂,不易阅读而且内容很多,但是很容易懂,简单。
而使用中断系统实现跑马灯的时候程序简洁,一目了然,但是程序中中断系统的使用会有一些困难,充分发挥了单片机的作用。
五、实验心得
实验过程中,需要对中断系统进行系统的学习,掌握各种中断方式的使用。
实验过程要有耐心,需要对程序进行反复调试。
写程序的过程中,需要对实验程序做一定的注释,以便于理解和后期调试。
对于开发板电路图的阅读也极其重要,这是完成实验的第一步。