立即注册 找回密码

微雪课堂

搜索
微雪课堂 C8051 C8051F单片机笑傲江湖 查看内容

C8051F IO输出之LED显示程序

2015-7-13 10:05| 发布者: kaloha| 查看: 5730| 评论: 0

摘要: 系统功能使用C8051F单片机控制8位LED,演示C8051F单片机之“点灯术”。硬件设计关于C8051F的I/O结构及相关介绍详见Datasheet(点击查看),这里仅对作部分简单介绍,下面是AVR的I/O引脚配置表:C8051F I/O 口引脚配 ...
系统功能

使用C8051F单片机控制8位LED,演示C8051F单片机之“点灯术”。


硬件设计

关于C8051F的I/O结构及相关介绍详见Datasheet(点击查看),这里仅对作部分简单介绍,下面是AVR的I/O引脚配置表:

C8051F I/O 口引脚配置表
PxMDOUTPxMDINPxI/O 方式引脚状态说明
X0X输入模拟输入
01X输入漏极开路
11X输出推挽方式

虽然C8051F的I/O口单独输出“1”时,可输出较大电流足已点亮一盏灯,但C8051F总的I/O输出毕竟是有限的,所以,有经验的点灯者考虑到除了点灯外可能还有其它费劲的活儿要干,会将C8051F的I/O口设计为输出“0”时点灯,输出“1”时熄灯。这种接法亦叫“灌电流接法”。


8位LED灯控制电路原理图


软件设计

下面部分从TXT拷出,拷到网页,代码部分缺省了很多空格,比较凌乱,请谅解!

//目标系统: 基于C8051F单片机
//应用软件: Silicon IDE / Keil

/*01010101010101010101010101010101010101010101010101010101010101010101
----------------------------------------------------------------------
实验内容:
点灯,LED灯按顺序从第一盏到第八盏灯依次点亮。
----------------------------------------------------------------------
硬件连接:
将P1口与8位LED指示灯相连。
----------------------------------------------------------------------
注意事项: 
(1)若有加载库程序,请将光盘根目录下的“library”下的“C8051F”文件夹拷到D盘
(2)请详细阅读:光盘根目录下的“说明书首页.htm”里的相应产品说明
----------------------------------------------------------------------
10101010101010101010101010101010101010101010101010101010101010101010*/

#define _DVK501_F320_EX_

#include <c8051f320.h>
#include <../../../../library/C8051F/ws_clock.h>
#include <../../../../library/C8051F/ws_delay.h>

void main(void)
{
uchar a,i;

PCA0MD &= ~0x40; //Clear watchdog timer enable
clock_internal();
P1MDOUT = 0xFF; 
XBR1 = 0x40;

a = 0xFF;

while(1)

for(i=0;i<9;i++)
{
P1 = ~a;
a <<= 1;
delay_ms(500);
}
a = 0xFF; 
}
}


系统调试

本节的目的在于学习AVR的IO输出功能,对于AVR来说,它和传统的51单片机不同,需要设置IO引脚方向。
作如下调试:
(1)改变IO方向,即将“a = 0xFF;”改为“a = 0x00;”,观察现象。
(2)将语句:delay_ms(500);改为语句:delay_ms(100);可以看到LED闪的更快

以上资料由微雪电子整理并发布,未经许可不得转载,否则追究相应责任!


515

顶一下

刚表态过的朋友 (515 人)

最新评论

所有教程

微雪官网|产品资料|手机版|小黑屋|微雪课堂. ( 粤ICP备05067009号 )

GMT+8, 2024-11-24 14:30 , Processed in 0.017557 second(s), 20 queries .

返回顶部