首页 » 排名链接 » 实现跑马灯编程实验(编程单片机跑马灯实验仿真)

实现跑马灯编程实验(编程单片机跑马灯实验仿真)

雨夜梧桐 2024-11-26 03:33:20 0

扫一扫用手机浏览

文章目录 [+]

1.原理布图

2.PCB自动或人工布线

3.SPICE电路仿真

实现跑马灯编程实验(编程单片机跑马灯实验仿真) 排名链接
(图片来自网络侵删)

另外,它可以仿真51系列、AVR、PIC、ARM、等常用主流单片机。
还可以直接在基于原理图的虚拟原型上编程,再配合显示及输出,能看到运行后输入输出的效果。
配合系统配置的虚拟逻辑分析仪、示波器等,Proteus建立了完备的电子设计开发环境。
下面用AT89C55单片机外部连接8个LED反光二极管,采用共阴极连接方法。
当单片机管脚输出为0时,LED亮;当管脚输出为1时,LED灭。

链接方法

编程环境

使用Keil 开发编译环境,首先建立一个新工程,接着建立一个.C文件,如main.c,单片机运行程序入口main(),开始编写程序代码。

编程环境

跑马灯程序代码

跑马灯需要一个延时程序,延时子程序调用delay(),然后单片机管脚在不同时段输出控制LED发光二极管,进行跑马灯的控制。
以下贴上本次实验代码。
欢迎讨论留言!

#include <reg52.H>

#include <intrins.h>

typedef unsigned char uint08;

typedef unsigned short int uint16;

typedef unsigned long int uint32;

void delay_ms(uint16 ms)

{

uint16 i,j;

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

{

for(j=0;j<255;j++)

{

_nop_();

}

}

}

// 0x01 0x02 0x04

uint08 display1[8] = {0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};

uint08 display2[8] = {0x80,0xc0,0xe0,0xf0,0xf8,0xfc,0xfe,0xff};

void main()

{

uint08 i;

uint08 temp;

uint08 ptemp;

// 初始化变量

P2 = 0xff;

ptemp = 0;

while(1)

{

if(ptemp>=8)

{

ptemp = 0;

}

temp = display1[ptemp]; // ÿ´ÎÏÔʾledÊýÁ¿¼Ó1µÄ×Ö¶ÎÂë

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

{

P2 = ~temp;

temp <<= 1;

delay_ms(200);

}

temp = display2[ptemp];// ÿ´ÎÏÔʾledÊýÁ¿¼Ó1µÄ×Ö¶ÎÂë

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

{

P2 = ~temp;

temp >>= 1;

delay_ms(200);

}

ptemp++;

}

}

效果图

相关文章