跑马灯实验C语言程序

跑马灯实验C语言程序
跑马灯实验C语言程序

跑马灯实验C语言程序

void delay(unsigned int i); //声明延时函数

char LED;

main()

{

unsigned char i;

while (1)

{ LED = 0xfe;

for (i = 0 ;i < 8 ; i++)

{

P1 = LED;

delay(500);

LED = LED << 1; // 左移

LED = LED | 0x01; // 移位后,后面的位为高电平

if (LED == 0x7f) break; //提前退出FOR 循环

}

for (i = 0 ;i < 8 ; i++)

{

P1 = LED;

delay(500);

LED = LED >> 1; // 右移

LED = LED | 0x80; // 移位后,后面的位为高电平

}

}

}

/*******延时函数*************/

void delay(unsigned int i)

{

unsigned char j;

for(i; i > 0; i--)

for(j = 255; j > 0; j--);

}

跑马灯实验报告.

山西大学数字电子技术基于硬件设计的跑马灯电路 系别:电力工程系 班级:电本1254班 姓名:所谓伊人 学号: 12322454**

一、实验目的 1. 熟悉NE555定时器,计数器CD4017的逻辑特性。 2. 熟悉NE555构成多谐振荡器原理。 3. 设计跑马灯电路并利用Multisim软件仿真电路。 二、实验要求 1. 知道NE555、CD4017的管脚排列顺序。 2. 利用NE555构成多谐振荡器。 3. 知道电阻的主要参数及其标注方法。(见实验指导书116页)。 4. 知道电容器的主要作用。(见实验指导书122页)。 5. 了解有关焊接的知识。 三、实验器材 电路板1块。电容:1μF(1个)。集成芯片:NE555(1个)、CD4017(1个)。电阻:22K?、1K?、500?各一个。二极管:IN4148(8个)、发光二极管(10个)。(自行提供)电池:5V 四、电路的安装 1.555用来定时,用它产生某种方波,相当于有的时钟信号 2.4017是个十进制计数器,按照时钟信号从10个口依次输出 1. 检查集成芯片NE555,CD4017的安装位置有无错误. 2. 检查电解电容的极性有无错误; 3. 检查二极管IN4148及发光二极管的安装方向有无错误; 4. 检查各个电阻的安装是否有误。 5. 检查有无虚焊。 五、电路的调试 1. 电路焊接好后,先将电路板正负端接到直流电压5V及地线处,观察发光二极管是否变亮。 2. 适当改变电位器阻值,观察其对CD4017

循环周期(发功二极管依次循环一周)的影响。 3. 利用秒表记录CD4017一个合适循环周期的时间。(分别测量电阻最大时、最小时、合适时的周期) 附录 1. 跑马灯电路图

单片机实验(新版2010

单片机应用技术课程为一门理论与实践相结合的课程,本课程安排的实验旨在培养学生软硬件开发能力,用编程语言及硬件设备实现串、并行通讯、计数/定时、A/D、D/A等硬件接口的功能,进一步加深对常用硬件芯片的了解和应用,以及学习用单片机解决实际问题。实验要求学生利用编程语言及硬件设备实现单片机的方案设计、程序编写、硬件连接、调试,从中体会具体硬件接口的应用技巧,进一步理解硬件接口芯片,逐步掌握单片机系统的开发和应用方法。 STAR ES598PCI提供实验仪具有与微机同步演示功能, 允许学生在Windows操作系统下编写、编译、连接、错误定位、调试、观察、修改系统, 不需要使用早期的PWB、TD等DOS下的调试环境。 通过本实验的学习,学生可以熟悉各种类型的接口芯片,汇编语言程序的编写、调试,充分锻炼动手及编程能力。

合肥学院电子信息与电气工程系实验室实验守则 (1) 实验一构建单片机最小系统和实验环境熟悉 (2) 实验二跑马灯实验及74HC138译码器 (4) 实验三8255控制交通灯实验 (7) 实验四8253方波实验 (9) 实验五继电器控制/光偶控制实验 (11)

合肥学院电子信息与电气工程系实验室实验守则为了培养严肃认真、实事求是的科学实验态度和善于思考、勤于动手的学习作风以及保证实验教学的正常进行,电子信息与电气工程系实验室特制定以下规则,望遵照执行: 1、禁止一切无关人员随意进入实验室和动用实验仪器设备和实验室内物品,确需进入实验 室工作学习的一切人员要必须严格遵守实验室的规章制度,服从实验室管理人员的安排。 2、学生应认真预习实验内容,预习不合格者不得参加实验,认真完成指定的实验内容或实 验作业,并交指导教师审阅。 3、学生不得迟到、早退、无故缺席,进入实验室后应按指定位置就座,迟到超过五分钟不 得参加实验,实验未完成早退者均按旷课论处。严禁代替他人做实验,缺实验者,课程结束后,考试前主动来补做实验,否则不得参加考试。 4、进入实验室请自带鞋套。书包、水杯等个人物品应放到指定处,且衣冠整齐,保持安静, 严禁吸烟、吃食物、随地吐痰和乱丢杂物等不文明行为,否则实验工作人员有权停止其实验。 5、实验前应先检查实验所需的工具、仪器、材料等是否齐全完好。如有缺漏、损坏应及时 报告请老师处理。 6、听从指导教师的指导,带硬件的实验接好线路后,应先认真检查,关键处确保无误。如 无把握时,须请指导教师审核后方可通电;进行大型仪器和强电实验务必经指导教师检查同意后,才可按操作规程通电实验。 7、实验时必须持严谨的科学态度,励行节约,严格按照实验步骤和正确的方法进行操作, 要细心观察记录实验结果,碰到疑难故障,应冷静分析原因,积极排除,如发生意外及时报告;独立完成实验任务,不得抄袭他人实验结果。 8、欲增加或改变实验内容,须征得指导教师同意。 9、注意人身安全,爱护仪器和设备,实验时仪器、设备、工具、材料不得乱放、乱抛;不 做与实验无关的事情,不动与本次实验无关的仪器设备,不进入与实验无关的场所,不随便串组,有以上表现而又不服从管理教育者,不得参加实验; 10、完成实验后主动整理放好相关设备,搞好卫生,实验中的废弃固体物品、腐蚀性液体必 须倒入指定的容器中,不许倒入水池中,经实验室工作人员、指导教师同意后方可离去。 11、实验室的任何物资不可擅自带走,在实验室中损坏仪器、工具等,应及时向工作人员报告,主动说明原因,并按实验室仪器设备损坏、丢失赔偿制度处理。

单片机实验报告

单片机实验报告 实验一:存储器块清零或赋值 一、实验目的 1 熟悉存储器的读写方法,熟悉51汇编语言结构。 2 熟悉循环结构程序的编写。 3 熟悉编程环境和程序的调试。 二、实验内容 指定存储器中某块的起始地址和长度,要求将其内容清零或赋值。例如将4000H开始的10个字节内容清零或全部赋值为33H。 注意: 1 文件不要用中文名称保存时不要用中文路径(目录),不要放在“桌面”上,源文件和工程要放在同一个文件夹下,文件名称和路径名称不要太长。 2 查看存储器菜单使用:窗口---数据窗口---XDATA 观察存储器内容 3 查看SFR:窗口---CPU窗口查看CPU寄存器SFR 4 单步执行:执行---单步执行(F8),每执行一步,查看每条语句涉及到的寄存器和存储器内容的变化结果,是否是指令所要得到的结果,如不是,检查错误原因,修改。 5利用多种执行方法和观察各种窗口调试程序,直至程序满意为止。 三、实验仪器 微机、VW,WA VE6000编程环境软件,(单片机实验箱) Lab6000/Lab6000通用微控制器MCS51实验 四、实验步骤 1、新建工程文件。(注意:文件不要用中文名称保存时不要用中文路径)

2、编写程序。 3、运行和调试过程。 外部数据存储器(4000H为首地址的10个字节)中初始状态(随便赋值FFH): 单步执行程序,观察SFR中外部地址指针的变化; 全速执行程序,可以看到外部数据存储器已赋值33H:

五、实验结果 可以看到外部数据存储器已赋值33H: 六、问题讨论 本次实验能够清楚地了解存储器中数据的移动和赋值过程,通过单步执行,对于每一步的指令操作过程能够了解如何执行,查看每条语句涉及到的寄存器和存储器内容的变化结果。同时,学习掌握汇编程序的编写和调试过程。 实验二:存储块移动 一、实验目的 1 熟悉51汇编语言程序结构。 2 熟悉循环结构程序的编写,进一步熟悉指令系统。 3 熟悉编程环境和程序的调试。 二、实验内容 将指定源地址(3000H)和长度(10字节)的存储块移动到目的地址(3050H)。 注意:在编程环境中,可以通过软件仿真,观察程单片机运行情况。 由于源地址和目的地址的内容都一样(FF),调试时看不到内容的变化,所以需要给源地址内容赋值。有多种赋值方式(比如在搬移循环体内,赋值一个搬移一个,请在空白处添

跑马灯实验报告

电子系统综合设计报告 学号 201009120229 姓名李文海年级专业 2010级电子信息工程(二) 指导 教师刘怀强 学院理学院 走马灯实验论文--《嵌入式系统技术》 1、实验目的 1、学会dp-51pro实验仪监控程序下载、动态调试等联机调试功能的使用; 2、理解和学会单片机并口的作为通用i/o的使用; 3、理解和学会单片机外部中断的使用; 4、了解单片机定时器/计数器的应用。 2、实验设备 z pc 机、arm 仿真器、2440 实验箱、串口线。 3、实验内容 z 熟悉 arm 开发环境的建立。 z 使用 arm 汇编和 c 语言设置 gpio 口的相应寄存器。 z 编写跑马灯程序。 5、实验原理 走马灯实验是一个硬件实验,因此要求使用dp-51pro 单片机综合仿真实验仪进行硬件 仿真,首先要求先进行软件仿真,排除软件语法错误,保证关键程序段的正确。然后连接仿 真仪,下载监控程序,进行主机与实验箱联机仿真。 为了使单独编译的 c 语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规 定一定的规则。atpcs ,即 arm , thumb 过程调用标准(arm/thumb procedure call standard),是 arm 程序和 thumb 程序中子程序调用的基本规则,它规定了一些子程序间调 用的基本规则,如子程序调用过程中的寄存器的使用规则,堆栈的使用规则,参数的传递规 则等。 下面结合实际介绍几种 atpcs 规则,如果读者想了解更多的规则,可以查看相关的书 籍。 1.基本 atpcs 基本 atpcs 规定了在子程序调用时的一些基本规则,包括下面 3 方面的内容: (1)各寄存器的使用规则及其相应的名称。 (2)数据栈的使用规则。 (3)参数传递的规则。 相对于其它类型的 atpcs,满足基本 atpcs 的程序的执行速度更快,所占用的内存更少。 但是它不能提供以下的支持: arm 程序和 thumb 程序相互调用,数据以及代码的位置无关 的支持,子程序的可重入性,数据栈检查的支持。 而派生的其他几种特定的 atpcs 就是在基本 atpcs 的基础上再添加其他的规则而形成 的。其目的就是提供上述的功能。 2.寄存器的使用规则 寄存器的使用必须满足下面的规则: (1) 子程序间通过寄存器 r0~r3 来传递参数。这时,寄存器 r0~r3 可以记作 a0~a3。 被调用的子程序在返回前无需恢复寄存器 r0~r3 的内容。 (2) 在子程序中,使用寄存器 r4~rll 来保存局部变量。这时,寄存器 r4~r11 可以记 作 v1~v8。如果在子程序中使用到了寄存器 v1~v8 中的某些寄存器,子程序进入时必须保

嵌入式操作系统跑马灯实验报告

嵌入式操作系统实验报告 实验题目:实验一 CVT-PXA270的使用及跑马灯实验 专业:计算机科学与技术 班级: 姓名: 学号:

1. 了解Linux下端口编程的方法; 2. 掌握CVT-PXA270下的directio通用端口编程驱动程序的使用; 3. 掌握CVT-PXA270下跑马灯的使用方法。 二、实验内容 1.了解CVT-PXA270的外部结构,以及各端口的使用 2.测试跑马灯状态,使跑马灯程序在Linux系统下运行 3.修改跑马灯程序,使跑马灯呈现出不同的状态 三、实验方案 /* 当前跑马灯状态 */ unsigned char led_status = 0x00; / /******************************************************************** // Function name : delay // Description : delay for a while // Return type : void // Argument : int count ********************************************************************* / void delay(int count) { while(count --); } /* 主函数*/ int Main(int argc, char* argv[]) { while(1) { *((unsigned char *) 0x04005000) = led_status; delay(0xffffff); led_status ++; } return 0; } 四、试验结果 实验箱上的四个跑马灯将不断闪烁,修改程序中delay函数调用的值将变它们显示的速度,值越大,显示越慢。

单片机实训实验报告

单片机实训实验报告 课题:单片机实训 院系:电子信息工程学院 班级 学号: 姓名: 指导老师:熊老师、罗老师 日期:2011.6.10

一、硬件系统 1、自制单片机实验板由七部分组成: (1).8路跑马灯 (2)动态扫描共阳型数码管 (3)4X4矩阵键盘 (4)蜂鸣器 (5)4路独立键盘 (6)温度传感器 (7)I2C通信方式的EEPROM芯片24C02 二、Keil C u Vision2 简述与使用 1.打开 u Vision2 2.新建工程:菜单【project】→【New Project】选择工程存放的路径,并输入工程文件名,然后点“保存” 3.进入器件选择界面树列表框内选择“Atmel”→“AT89C52”,然后点“确定”完成器件选择。 4.编辑源程序: 新建文件:菜单【File】→【new…】。然后输入代码,编辑完成后菜单【File】→【Save】或【Save As…】把代码文件存入硬盘。C源文件存为.C后缀,汇编源文件存为.a或.src后缀,并存放在同一个工程文件夹下。 5.加入源文件到工程中: 在左边浮动窗口【File】选项卡里展开“Target 1”树,在“Source Group 1”上右键单击,弹出菜单,选【Add File to Group“Source Group 1”】,选择需要加入的源文件,点“Add”按钮加入,加入完成后按“Close”关闭。 6.设置编译选项:先选中左边浮动窗口【File】选项卡里“Target1“树节点,然后选菜单【Project】→【Options for Target “Target 1”】。 7.在弹出的“Options for Target “Target 1””对话框中选择[output]选项卡,勾选“Create HEX File”然后按“确定”完成设置。 8.按“F7”开始编译,编译成功后会在工程文件夹内生成.Hex目标文件生成的.hex文件就可以用来对AT89S52芯片进行编程和运行了。 三.STC-ISP V29 Beta5 下载软件的使用 1.连接好电源线与串口线(附件中的九孔对九孔线分别连接电脑和点偏激开发板)。 2.检查电源板上电源指示灯是否亮起,如果亮起则检查USB电源线,如果已亮则关掉电源看后面的步骤。 3.启动软件。 4.选择好STC单片机的型号(STC89CF52RC). 5.选择好你使用的计算机串口号. 6.点击OPEN FILE选择你用KEIL编译好的HEX文件.

stm32跑马灯实验

详细了解,请点击https://www.360docs.net/doc/b89186526.html,/ 跑马灯实验 跑马灯实验是最简单,也是一般最先开始的一个实验,他可以搭建一个最小的工程项目,之后,所有的实验都可以建立在该项目之上,从而节省了在搭建过程中所消耗的时间和精力。所有的GPIO操作都是以跑马灯为基础进行的。 建议:当该实验顺利完成后,作为一个模板,供以后实验使用,最好把相关的某些代码封装起来,方便其他程序重用和其他功能调试时使用,这样可以确保您可以将精力花费在其他需要实现的功能上,而不是多次写下重复的代码。 实验目的: 1.分析和学习固件库 2.理解固件库的结构 3.通过stm32f10x_gpio.c/.h文件,熟悉GPIO的控制和工作原理 4.对开发板LED灯的再次软件封装 实验要求: 1.利用原理图和固件库的实例,移植开发板LED灯的驱动程序,即自己创建一个LED.c/.h 2.用两种方法实现跑马灯程序: 1.LED驱动 2.直接GPIO寄存器控制 硬件分析:

如上所示,4个LED链接在4个不同管脚上,即GPIOF6,GPIOF7,GPIOF8,GPIOC7. 当这4个管脚被置为低电平时,二极管导通。 通用输入输出接口(GPIO)介绍: 多达112多功能的双向IO口:80%的IO口利用率 所有的IO被分成7个端口,即7组GPIO口(GPIOA..GPIOG); 多达21路模拟输入; 可改变功能引脚(如:USARTx、TIMx、I2Cx、SPIx、CAN、USB等); 多达112个IO口可以设置为外部中断(同时可最多可有16个); 一个IO口可用于将MCU从待机模式唤醒(PA.0); 一个IO口可用作防入侵引脚(PC.13); 标准的I/O口可承受5V; IO口可以吸收25mA(总共可吸收150mA); 18MHz翻转速度; 可设置输出速度达到50MHz; 使用BSRR和BRR寄存器可对IO口的位进行位设置或清除; 锁定机制可以避免对IO口的寄存器的误写操作: 每个GPIO引脚都可以由软件配置成输出(推挽或开漏)、输入(带或不带上拉或下拉)或复用的外设功能端口。多数GPIO引脚都与数字或模拟的复用外设共用。 除了具有模拟输入功能的端口,所有的GPIO引脚都有大电流通过能力。 在需要的情况下,I/O引脚的外设功能可以通过一个特定的操作锁定,以避免意外的写入I/O寄存器。 7组GPIO的端口映射地址为:

跑马灯实验报告.

跑 马 灯 实 验 报 告 姓名: 班级:

跑马灯实验报告 试验目的 1.学习8031内部计数器的使用和编程方法。 2.进一步掌握中断处理程序的编程方法。 3.学习端口的输入输出操作。 实验原理 1、软件流程图: 2.程序设计内容 我们可以运用输出端口指令MOV P1,A 或MOV P1,#DATA ,只要给累加器值 或常数值,然后执行上述的指令,即可达到输出控制的动作。

3、硬件连接图: 4.软件清单 ADR EQU 8000H ORG 0000H LJMP START ORG 001BH LJMP OT1

ORG 00F0H START:MOV TMOD,#10H MOV TL1,#0B0H MOV TH1,#3CH SETB EA SETB ET1 MOV R2,#14H MOV R3,#00H SETB TR1 SJMP $ OT1:CLR TR1 CLR EA MOV TH1,#3CH MOV TL1,#0B0H DJNZ R2,BACK NEXT:MOV R2,#14H MOV DPTR,#0200h MOV A,R3 MOVC A,@A+DPTR MOV DPTR,#ADR MOVX @DPTR,A INC R3 CJNE R3,#08H,BACK SJMP ROUND BACK:SETB EA SETB TR1 RETI ROUND:MOV R3,#00H SJMP BACK ORG 0200H DB 05H,0AH,50H,0A0H,55H,0AAH,0FFH,00H END 5.C语言源程序 #include unsigned char i; unsigned char temp;

走马灯实验报告

电子系统综合设计报告 学号201009120229 姓名李文海 年级专业2010级电子信息工程(二) 指导教师刘怀强 学院理学院

走马灯实验论文--《嵌入式系统技术》 1、实验目的 1、学会DP-51PRO实验仪监控程序下载、动态调试等联机调试功能的使用; 2、理解和学会单片机并口的作为通用I/O的使用; 3、理解和学会单片机外部中断的使用; 4、了解单片机定时器/计数器的应用。 2、实验设备 z PC 机、ARM 仿真器、2440 实验箱、串口线。 3、实验内容 z熟悉A RM 开发环境的建立。 z使用A RM 汇编和C语言设置G PIO 口的相应寄存器。 z编写跑马灯程序。 5、实验原理 走马灯实验是一个硬件实验,因此要求使用DP-51PRO 单片机综合仿真实验仪进行硬件仿真,首先要求先进行软件仿真,排除软件语法错误,保证关键程序段的正确。然后连接仿真仪,下载监控程序,进行主机与实验箱联机仿真。 为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序间的调用规定一定的规则。A TPCS ,即ARM ,Thumb 过程调用标准(ARM/Thumb Procedure Call Standard),是A RM 程序和T humb 程序中子程序调用的基本规则,它规定了一些子程序间调用的基本规则,如子程序调用过程中的寄存器的使用规则,堆栈的使用规则,参数的传递规则等。 下面结合实际介绍几种A TPCS 规则,如果读者想了解更多的规则,可以查看相关的书 籍。 1.基本A TPCS 基本A TPCS 规定了在子程序调用时的一些基本规则,包括下面3方面的内容: (1)各寄存器的使用规则及其相应的名称。 (2)数据栈的使用规则。 (3)参数传递的规则。 相对于其它类型的A TPCS,满足基本A TPCS 的程序的执行速度更快,所占用的内存更少。但是它不能提供以下的支持:ARM 程序和T humb 程序相互调用,数据以及代码的位置无关的支持,子程序的可重入性,数据栈检查的支持。 而派生的其他几种特定的A TPCS 就是在基本A TPCS 的基础上再添加其他的规则而形成的。其目的就是提供上述的功能。 2.寄存器的使用规则 寄存器的使用必须满足下面的规则:

labview实验报告

实验报告 课程名称虚拟仪器技术分析与设计 专业测控技术与仪器 班级1301 学号20 姓名郭鹏 实验一 LabVIEW虚拟温度检测系统 一、实验目的 1.了解LabVIEW的编程环境。

2.掌握LabVIEW的基本操作方法,并编制简单的程序。 3.学习建立子程序的过程 二、实验内容 1.建立一个测量温度的VI。 a.实验步骤 1)选择File?New,打开一个新的前面板窗口。 2)从Controls?Numeric中选择Tank放到前面板中。 3)从“结构”里选择一个for循环,用一个随机数乘与100输出到温度计 b.实验结果 前面板图: 程序框图: 三、实验总结 1.总结VI基本编程的快捷操作。 答:显示程序框图或前面板ctrl+E 框图中,对象的移动:shift+鼠标选择移动;对象的复制:ctrl+鼠标选择移动; 对象的删除:鼠标选择,按<退格>;前面板与框图并排:ctrl+T 工具(Tools)模板:在前面板或框图中按住键并单击鼠标右键。 控件(Controls)模板:在前面板激活状态,在前面板空白区单击右键。 函数(Functions)模板:在框图激活状态,在框图空白区单击右键。 消除所有断线:ctrl+B ;实时帮助:快捷键:ctrl+H 2.简述VI程序有什么构成,其各部分的功能是什么。 答:主要有:输入控件、显示控件、程序结构、函数控件、连线 输入控件:完成实时对变量的外界修改,即数据源 显示控件:完成输出显示数据、图形等。显示仪器分析结果 程序结构:用外方框表示程序的执行顺序、总体上把握程序的执行控制。 函数控件:构成程序的主要部分,完成对数据的采集、分析直至输出功能。 连线:用线的方式显示数据流,完成上述结构之间的关系构建。 3.思考:在前面板和框图程序中,如何区分控制器和指示器。 答:在前面板中,控制器用以外部输入数据,因此输入框为白色表示可主动输入。而显示器只有显示功能,用于被动输出虚拟仪器分析结果,数据框显示灰色,不能用于外部输入。 在程序框图中。控制器端子在右侧,用于连接数据输出线。显示器端子在左侧,用于连接数 据输入线。可以右键将显示图标勾掉,此时两种元件外观也不同。 4.心得体会及其它。 答:实验很简单,没吸引力——首先提下建议。Labview是一种图形编程软件。上手很快,但达到一定程度后,发现没有课本便很难取得进步。原因是,个人觉得labview最重要的是对程序编程结构的深入体会和各函数控件功能的充分掌握。前者可以通过看范例理解加深。

跑马灯实验报告

基于Proteus 的跑马灯 一、实验目的 1、 掌握Proteus 系统的使用,能够建立、保存,打开和修改文件。 2、 掌握使用各种元器件绘制电路原理图的方法,实现电路的仿真。 二、实验内容 跑马灯电路,即完成P1口上的八个发光二极管循环闪亮。 三、实验程序 ORG 0000H AJMP MAIN ORG 30H MAIN: MOV R2,#16 MOV A,#0FEH LOOP: MOV P1,A LCALL D1 RL A DJNZ R2,LOOP D1: MOV R4,#10 D2: MOV R5,#100 D3: MOV R6,#249 DJNZ R6,$ DJNZ R5,D3 DJNZ R4,D2 RET END 四、实验硬件电路 XTAL2 18 XTAL1 19 ALE 30EA 31 PSEN 29RST 9 P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.0/T21P1.1/T2EX 2P1.23P1.34P1.45P1.56P1.67P1.78 P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD 17 P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1 AT89C52 R1 10k C1 1nF C2 1nF C3 1uF X1 CRYSTAL D1 LED-BIBY D2 LED-BIBY D3 LED-BIBY D4 LED-BIBY D5 LED-BIBY D6 LED-BIBY D7 LED-BIBY D8 LED-BIBY 23456789 1 RP1 RESPACK-8 五、运行Proteus 仿真结果

单片机实验报告(学期全部实验)

单片机程序设计 实 验 报 告 姓名: 学号: 专业班级:

第二节课: 实验一:1357,2468位置的灯交替闪烁 一实验要求 1357,2468位置的灯交替闪烁。 二硬件连接图与结果 三原理简述 程序直接控制LED各位置的灯亮灭,时间间隔简单的用了一个延时的语句。四程序 #include main () { int i; P0=0XAA; //1357四个灯亮 for (i=0;i<=25000;i++); //延时程序 P0=0X55; //2468四个灯亮 for (i=0;i<=25000;i++); //延时程序 }

五所遇问题与解决方式 程序比较简单,没有遇到问题。 实验二:流水灯 一实验要求 流水灯,一个接一个的灯亮,亮到最后一个后,全部的灯亮,然后重头开始。二硬件连接图与结果 三原理简述 程序定义第一个位置的灯亮,通过一个时间间隔,运用一个循环移位程序转

移到下一个灯,移位7次后全部的灯亮,最后定义整个循环。时间间隔简单的用了一个延时的语句。 因为移位时是直接补0,发送低电平不亮,所以直接移位达到要求。 四程序 //流水灯 #include 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++); //延时程序 } }

嵌入式系统原理实验三跑马灯

实验三跑马灯实验 实验目的: 通过一个经典的跑马灯程序,了解STM32F1 的IO 口作为输出使用的方法。通过代码控制ALIENTEK 战舰STM32 开发板上的两个LED:DS0 和DS1 交替闪烁,实现类似跑马灯的效果 内容要点: 1.硬件设计 本章用到的硬件只有LED(DS0 和DS1)。其电路在ALIENTEK 战舰STM32F103 开发板上默认是已经连接好了的。DS0 接PB5,DS1 接PE5。所以在硬件上不需 要动任何东西。其连接原理图如图: 2.软件设计 跑马灯实验我们主要用到的固件库文件是: stm32f10x_gpio.c /stm32f10x_gpio.h stm32f10x_rcc.c/stm32f10x_rcc.h misc.c/ misc.h stm32f10x_usart /stm32f10x_usart.h 其中stm32f10x_rcc.h 头文件在每个实验中都要引入,因为系统时钟配置函数以及 相关的外设时钟使能函数都在这个其源文件stm32f10x_rcc.c 中。 stm32f10x_usart.h 和misc.h 头文件在我们SYSTEM 文件夹中都需要使用到,所 以每个实验都会引用。 首先,找到之前新建的Template 工程,在该文件夹下面新建一个HARDWARE 的文件夹,用来存储以后与硬件相关的代码,然后在HARDWARE 文件夹下新 建一个LED 文件夹,用来存放与LED 相关的代码。新建led.h和led.c文件, 一个外设对应一个.h和.c文件。 在Manage Components 管理里面新建一个 HARDWARE 的组,并把led.c 加入到这个组里面, 将led.h 头文件的路径加入到工程里面 一般的头文件有固定的格式,多个地方调用头文件会重复引用,为了避免头文件内 容重复引用,一般通过预编译的方式来写头文件。一般的格式如下:

单片机跑马灯实验报告-叶坤

单片机实验报告—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

单片机跑马灯(流水灯)控制实验报告

单片机实验报告 姓名: 学号: 一、 实验实现功能: 1:计数器功能 2:流水灯 二、 具体操作: 1、计数器功能 数码管的动态显示。每按一次K2键计数器加1通过数码管显示出来,计数器可以实现从0计数到9999。 2、流水灯 当在计数器模式下的时候按下K3键时程序进入跑马灯模式,8个小灯轮流点亮每次只点亮一个,间隔时间为50ms 。 三、 程序流程图 开始 定时器T0 设置初值,启动定时器, 打开中断 复位 Key2按下 中断关闭 计数器模式 计数器加1 Key3按下 流水灯模式 数码管显示数字加1 跑马灯点亮间隔50ms Key1按下中断打开

四、程序 #include 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和K3 sbit 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; //定时器初值使每次循环为1ms TR0 = 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]; //千位

单片机实验报告

单片机实验报告 姓名:姚竞华 班级:电自094 学号:09401300420

实验一存储器读写 一、实验目的: 1、寄存器、存储器读写等汇编指令; 2、掌握编程软件编辑、编译、调试等基本操作; 3、学习简单程序的基本调试方法。 二、实验内容 将70H-7FH16个字节单元的数据复制到片外存储器2000H开始的地址单元中,程序清单如下: ORG 0000H SJMP START ORG 0030H START: MOV R1,10H ;一共16个数据 MOV R0,#70H ;原数据首地址 MOV DPTR,#2000H; 片外存储单元首地址 MOV 70H,#00H;送入原始数据,把70H-71H中分别送入00H-0FH MOV 71H,#01H MOV 72H,#02H MOV 73H,#03H MOV 74H,#04H MOV 75H,#05H MOV 76H,#06H MOV 77H,#07H MOV 78H,#08H MOV 79H,#09H MOV 7AH,#0AH MOV 7BH,#0BH MOV 7CH,#0CH MOV 7DH,#0DH MOV 7EH,#0EH MOV 7FH,#0FH LOOP: MOV A,@R0;循环送入2000H-200FH

MOVX @DPTR,A INC R0 INC DPTR DJNZ R1,LOOP END 三、调试结果

实验二数据排列 一、实验目的 掌握汇编语言分支结构的应用。 二、实验内容 将R0、R1、R2中的数据从大到小排列,并分别从放在70H-71H中。程序清单如下:ORG 0000H SJMP START ORG 0030H START: MOV R0,#02H;分别向R0-R1中写入数据 MOV R1,#05H MOV R2,#03H MOV A,R0 SUBB A,R1;R0-R1 JC SUB1 LOOP1: MOV A,R0 SUBB A,R2;R0-R2 JC SUB2 MOV A,R1 SUBB A,R2;R1-R2 JC SUB3 AJMP OVER; R0>R1>R2 SUB3: CLR C MOV A,R1 XCH A,R2 MOV R1,A AJMP OVER; R0>R2>R1 SUB2: CLR C MOV A,R0 XCH A,R2 MOV R0,A MOV A,R1 XCH A,R2 MOV R1,A AJMP OVER;R2>R0>R1 SUB1: CLR C ;清除C位 MOV A,R0;R0与R1互换

跑马灯报告

淮北师范大学 跑马灯设计 学院计算机科学与技术 专业 11级计算机科学与技术(非师范) 学号 学生姓名 指导教师姓名 2013年11月 24 日

前言 当今的社会科技迅速发展,流水灯在我们生活中有着更多的应用,流水灯控制器在我门日常生活中有重要的运用,如广告牌的设计和节日彩灯的设计都能运用到它的原理。流水灯是一串按一定的规律像流水一样连续闪亮。 流水灯的设计要求在预定的时间到来时,会产生一个控制信号控制LED灯的流向、间歇等,LED灯流向可以随着电路的改变而改变,并具有自控、手控、流向控制功能等。主要参考数字电路中计数器的原理。NE555振荡器的作用等相关知识在设计的过程中需要了解相关芯片(CD4017、NE555)的具体功能,引脚图,真值表,认真布局,在连接过程中更要细致耐心。 这次的设计致力于LED灯的流水设计,使之可以按一定的规律像流水一样连续闪亮。

目录 前言 (2) 1.设计目标 (3) 2.设计思路 (3) 3.正文 (3) 3.1、电路工作原理 (3) 3.2、电子元件介绍及说明 (6) 3.2.1、NE555相关资料 (6) 3.2.2、CD4017相关资料 (8) 3.2.3、LED灯的介绍 (12) 3.3、电路图和实物图 (13) 3.4、材料清单 (14) 4.注意事项 (15) 5.焊接与调试 (16) 6.参考文献 (20) 7.小结 (20)

一、设计目标 1、运用NE555和CD4017芯片设计并且实现跑马灯的设计,使发光二极管可以轮流闪亮,并且要可以控制两个灯之间的闪烁间隔。 二、设计思路 要想实现跑马灯的效果,首先要考虑的是如何让几个灯可以依次有间隔的闪烁,然后在考虑怎样可以使两灯之间的闪烁间隔变大或减小。由此可以以集成电路NE555为核心器件构成自激多谐振荡器,并用CD4017十进制计数器计数器进行计数,从而实现利用CD4017从十个输出端依次输出高电平,不断循环的功能,来使发光二极管可以轮流闪亮。并利用滑动变阻器改变电阻值来改变电压值,从而使两个灯之间的闪烁间隔可以改变。 三、正文 3.1、电路工作原理 先用NE555定时器用来生成脉冲,把脉冲给计数器CD4017,通过CD4017,在时钟脉冲的作用下,CD4017十进制计数器计数器进行计数,并从输出端依次输出高电平,不断循环。就能实现基本电路要求。 555定时器由3个阻值为5kΩ的电阻组成的分压器、两个电压比较器C1和 C2、基本RS触发器、放电三极管TD和缓冲反相器G4组成。虚线边沿标注的数字为管脚号。其中,1脚为接地端;2脚为低电平触发端,由此输入低电平触发脉冲;6脚为高电平触发端,由此输入高电平触发脉冲;4脚为复位端,输入负脉冲(或使其电压低于0.7V)可使555定时器直接复位;5脚为电压控制端,在此端外加电压可以改变比较器的参考电压,不用时,经0.01uF的电容接地,以防止引入干扰;7脚为放电端,555定时器输出低电平时,放电晶体管TD导通,外接电容元件通过TD放电;3脚为输出端,输出高电压约低于电源电压1V—3V,输出电流可达200mA,因此可直接驱动继电器、发光二极管、指示灯等;8脚为电源端,可在5V—18V范围内使用。

单片机 跑马灯实验

实验一跑马灯实验 一、实验内容 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键的效果优化,即状态变化从当前已亮灯开始顺序点亮或逆序点

STM32跑马灯实验

3.1 跑马灯实验 通过本节的学习,你将了解到STM32的IO口作为输出使用的方法。本节分为如下几个小节: STM32 IO口简介 3.1.1 硬件设计 3.1.2 软件设计 3.1.3 仿真与下载 3.1.4

3.1.1 STM32 IO简介 作为所有开发板的经典入门实验,莫过于跑马灯了。ALIENTEK MiniSTM32开发板板载了2个LED,DS0和DS1,本实验将通过教你如何控制这两个灯实现交替闪烁的类跑马灯效果。 该实验的关键在于如何控制STM32的IO口输出。了解了STM32的IO口如何输出的,就可以实现跑马灯了。通过这一节的学习,你将初步掌握STM32基本IO口的使用,而这是迈向STM32的第一步。 STM32的IO口可以由软件配置成8种模式: 1、输入浮空 2、输入上拉 3、输入下拉 4、模拟输入 5、开漏输出 6、推挽输出 7、推挽式复用功能 8、开漏复用功能 每个IO口可以自由编程,单IO口寄存器必须要按32位字被访问。STM32的很多IO口都是5V兼容的,这些IO口在与5V电平的外设连接的时候很有优势,具体哪些IO口是5V兼容的,可以从该芯片的数据手册管脚描述章节查到(I/O Level标FT的就是5V电平兼容的)。 STM32的每个IO端口都有7个寄存器来控制。他们分别是:配置模式的2个32位的端口配置寄存器CRL和CRH;2个32位的数据寄存器IDR和ODR;1个32位的置位/复位寄存器BSRR;一个16位的复位寄存器BRR;1个32位的所存寄存器LCKR;这里我们仅介绍常用的几个寄存器,我们常用的IO端口寄存器只有4个:CRL、CRH、IDR、ODR。 CRL和CRH控制着每个IO口的模式及输出速率。 STM32的IO口位配置表如表3.1.1.1所示: 表3.1.1.1 STM32的IO口位配置表 STM32输出模式配置如表3.1.1.2所示:

相关文档
最新文档