PIC18单片机C语言编程实例:LED控制与显示
下载需积分: 9 | PDF格式 | 185KB |
更新于2024-07-28
| 28 浏览量 | 举报
"该资源为PIC18单片机C语言编程实例,包含外围功能模块简单应用和LED显示实例,适合初学者学习基础操作。"
本文将详细解析两个C语言程序,它们是针对PIC18单片机设计的,旨在帮助用户理解如何使用C语言控制PIC18单片机进行基本的I/O操作。
首先,我们来看第一个程序,这是一个简单的LED控制实例,用于点亮或熄灭与PORTD口相连的8个LED。在这个程序中:
1. 首先,通过`#include "p18f458.h"`引入了特定型号单片机的头文件,这个头文件包含了该型号单片机的寄存器定义和宏定义,使得我们可以直接使用这些寄存器和宏来控制硬件。
2. `main()`函数是程序的入口点。在其中,`TRISD=0X00;`将PORTD的所有位设置为输出模式,这意味着我们可以直接写入数据来控制与之连接的LED。
3. 接下来,`PORTD=0XFF;`将PORTD的值设为全1,使得所有LED熄灭。这是因为LED通常在低电平时亮起,在高电平时熄灭。
4. `while(1)`创建了一个无限循环,在循环内部,`PORTD=0XAA;`将PORTD的值设置为0XAA,这会按照设定的模式点亮部分LED。
第二个程序则是一个更复杂的示例,它演示了如何在8个LED上依次显示数字1到8。此程序包括初始化子程序和显示子程序:
1. 初始化子程序`initial()`设置了一些必要的寄存器,如将PORTA和PORTC设置为输出,关闭所有中断,配置SPI接口等。其中,SPI接口是用于串行通信的一种协议,这里用于控制LED显示。
2. `SPILED(chardata)`是显示子程序,它接收一个字符数据并将其通过SPI接口发送出去。首先,拉低RA5(LATCH)引脚,然后将数据放入SPI缓冲区,等待发送完成,最后拉高RA5引脚,完成锁存显示。
3. 在`main()`函数中,定义了一个包含数字1到8对应LED显示代码的数组`table[]`,并在无限循环中调用`SPILED()`,依次将数组中的数据传入,实现LED上的数字滚动显示。
这两个程序展示了如何利用C语言编写控制PIC18单片机的程序,包括基本的I/O操作、中断设置、以及串行通信协议的使用。对于初学者来说,这些实例提供了很好的实践平台,可以帮助他们深入理解单片机的硬件控制和C语言编程。
相关推荐
p200902146
- 粉丝: 0
- 资源: 1
最新资源
- 一本全面的C语言入门教程
- Android模拟器及编译环境安装新手入门.pdf
- XML 实用大全.doc
- 考研英语真题阅读理解精读笔记
- java 高级教程电子版
- C语言的有关技巧编程公式的方法,介绍及窍门---不看后悔100年
- Java路径问题最终解决方案之一.txt
- 手机网站WAP建站基础教程.doc
- C#网络应用基础编程课后习题答案
- 深入浅出ARM7-LPC213x_214x(下)
- 网站大访问量c10k问题 aio方案 搜狗 sogou开发技术文档
- 解密深入浅出ARM7-LPC213x_214x(上)
- sql 命令基础语法
- 基于立宇泰ARMSYS2440—ubuntu下linux嵌入式开发环境配置
- Qt嵌入式图形开发(实战篇).pdf
- IBM+Lotus+Domino+7+邮件服务器配置全程攻略+V0.2