MCU学习2--跑马灯
来源:互联网 发布:算法英文版 编辑:程序博客网 时间:2024/06/13 12:45
程序(跑马灯) :
#include <stdio.h>
#include <reg52.h>
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
void main( void )
{
unsigned int n;
while( 1 )
{
P10=0; P11=1; P12=1; P13=1;
for(n=40000; n>0; n--);
P10=1; P11=0; P12=1; P13=1;
for(n=40000; n>0; n--);
P10=1; P11=1; P12=0; P13=1;
for(n=40000; n>0; n--);
P10=1; P11=1; P12=1; P13=0;
for(n=40000; n>0; n--);
}
}
总结 :
1. main函数没有返回值, 也没有参数. 否则keil不仿真. 不知道为什么
2. build的时候需要先clear target. 然后再builder target.而且不能build all target. 否则直接进入RUN方式,并且还不能仿真。 奇哉怪也, 不知道为什么。 以后就这么干吧!
3. MS延迟都使用类似这样的代码来达到
unsigned int n;
for(n=40000; n>0; n--);
至于究竟延迟了多长时间, 先不理会! 精确延迟也暂时不考虑
作业:
例程中的跑马灯在同一时刻只显示1个灯,现在改为同时亮着2个灯的跑马灯。
#include <stdio.h>
#include <reg52.h>
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
void main( void )
{
unsigned int n;
while( 1 )
{
P10=0; P11=0; P12=1; P13=1;
for(n=40000; n>0; n--);
P10=1; P11=0; P12=0; P13=1;
for(n=40000; n>0; n--);
P10=1; P11=1; P12=0; P13=0;
for(n=40000; n>0; n--);
P10=0; P11=1; P12=1; P13=0;
for(n=40000; n>0; n--);
}
}
由于延时太短了, 都看不大清楚. 以上的延迟我改为了
for(n=40000; n>0; n--);
for(n=40000; n>0; n--);
for(n=40000; n>0; n--);
for(n=40000; n>0; n--);
for(n=40000; n>0; n--);
呵呵就能看能明白点了。(将一个延迟放大5倍)
通常延迟加长, 估计都是利用嵌套循环的吧! 不会像我为了省事COPY & PASTER. 如:
unsigned char i;
unsigned int n;
// 将延迟放大10倍
for(i=10; i>0; i--)
for(n=40000; n>0; n--)
;
那么, 作业就修改为 :
#include <stdio.h>
#include <reg52.h>
sbit P10 = P1^0;
sbit P11 = P1^1;
sbit P12 = P1^2;
sbit P13 = P1^3;
sbit P14 = P1^4;
sbit P15 = P1^5;
sbit P16 = P1^6;
sbit P17 = P1^7;
void main( void )
{
unsigned char i; // 尽量的用小数据类型, 如果够用的话.
unsigned int n;
while( 1 )
{
P10=0; P11=0; P12=1; P13=1;
for(i=5; i>0; i--)
for(n=40000; n>0; n--);
P10=1; P11=0; P12=0; P13=1;
for(i=5; i>0; i--)
for(n=40000; n>0; n--);
P10=1; P11=1; P12=0; P13=0;
for(i=5; i>0; i--)
for(n=40000; n>0; n--);
P10=0; P11=1; P12=1; P13=0;
for(i=5; i>0; i--)
for(n=40000; n>0; n--);
}
}
- MCU学习2--跑马灯
- MCU学习
- MCU学习1--点亮LED灯
- JavaScript 学习笔记 跑马灯
- TextView学习-------------跑马灯效果
- 【STM32l0B-LK1学习板】之三 例程2-跑马灯
- STM32:STM32学习记录2:跑马灯及仿真
- MCU学习笔记1
- AVR学习札记之跑马灯程序
- 初步学习MSP430——跑马灯
- #学习笔记#(33)JS文字跑马灯
- android客户端学习-跑马灯效果
- android学习:TextView 跑马灯的实现
- zephyr学习笔记---CC3200---跑马灯
- STM32F103C8T6学习笔记_跑马灯
- 跑马灯见疗效2
- 跑马灯
- 跑马灯
- Web 标准会帮助我们实现 WWW 的梦想
- 网页验证
- 万维网联盟(W3C)创立了 WWW 标准
- Implementing the Singleton Pattern in C#
- Web 品质 - 国际化
- MCU学习2--跑马灯
- javascript 网站常用的iframe分割
- 看地图就上地图中国网
- 配置VS2008开发环境
- PHP的OOP简单入门
- 【微软】了解 SQL Server 2000 中的“复制数据库向导”及其疑难解答
- A Red, Red Rose
- 用JavaScript实现仿Windows关机效果
- JS实现仿新浪信息提示效果