pic16f883 c语言,PIC16F883和TLC5615(DA)数模转化实验,呼吸灯
今天上课做了数模转换的实验。感觉很好玩,在这里写下。
器材:PIC16F883控制芯片、TLC5615、LED灯一个、电阻一个(1K)、PICkit2下载器
实验说明,本实验采用I/O模拟方法实现数模转换,转换结果输出到LED引脚。LED呈现呼吸似的缓慢闪烁。
实验电路图:
RC3连接SCLK、RC5连接Din、RC2连接CS。
输入DA的数字从0加到1024(DA为10位),再从1024减到0。中间最亮的时候做了一点儿延时。
LED灯接一个电阻到地,另一端接DA的模拟输出引脚。
实验中比较重要的时序图:
根据这个时序图,我周期性的给引脚的电位置1和置0。
代码如下:
#include
#define uchar unsigned char
#define uint unsigned int
#define CLK RC3
#define DATA_IN RC5
#define CS RC2
void delay(uint x)
{
uint a,b;
while(x--)
{
b = 0x00ff;
while(b--)
{
a = 0x00ff;
while(a--);
}
}
}
void main()
{
uint i,temp,k=0,kp;
TRISC=0x00;
void delay(uint x);
while(1)
{
i = 12;
CS = 0;
CLK = 0;
kp = k;
kp<<=4;
while(i--)
{
temp=kp&0x8000;
if(temp!=0)
{
DATA_IN = 1;
}
else
{
DATA_IN = 0;
}
CLK = 1;
kp<< = 1;
CLK = 0;
}
CS = 1;
CLK = 0;
k++;
if(k==0x0fff)
{
delay(1);
while(k--)
{
i = 12;
CS = 0;
CLK = 0;
kp = k;
kp<<=4;
while(i--)
{
temp = kp&0x8000;
if(temp!=0)
{
DATA_IN = 1;
}
else
{
DATA_IN = 0;
}
CLK = 1;
kp<< = 1;
CLK = 0;
}
CS = 1;
CLK = 0;
}
k = 0;
}
}
}
可以在每完成一个数据的输入后嘴一个延时来减慢LED灯的亮灭速度。看起来就是呼吸的效果。
如果有任何问题,请您跟我联系!感谢您的光临!
pic16f883 c语言,PIC16F883和TLC5615(DA)数模转化实验,呼吸灯相关推荐
- AD数模转化AD0809
数模转化 AD0809 AD转换就是模数转换,就是把模拟信号转换成数字信号.D/A转换是把数字量转变成模拟的器件.模拟信号只有通过A/D转化为数字信号后才能用软件进行处理,这一切都是通过A/D转换器( ...
- 67在C51语言表示16进制数,一级笔试试题考核的主要知识点及答案
历年(99.4-02.4)一级笔试试题考核的主要知识点及答案 1.计算机中数据的表示形式是 A)八进制 B)十进制 C)二进制 D)十六进制 2.硬盘工作时应特别注意避免 A)噪声 B)震动 C)潮湿 ...
- C语言 二维数组行数和列数计算 - C语言零基础入门教程
目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...
- c语言判断回文平方数,C/C++回文数的判断(转)
"回文数"是一种数字.如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数. 平方回数 定义:一个回文数,它同时还是某一个数的平方, ...
- 122345 java_【每天算法2】:用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连。 | 学步园...
一个组数:122345这6个数,打印出它所有可能的组合:要求4不能在第3位,3和5不能相连. 我在实现这个 感觉我的算法复杂度还是挺高的.过程中,不断的创建新的数组列别. 如果你有更好的算法,请发上来 ...
- 利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止。
利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止. 要求:(1)系统每次都要给出新的 ...
- 用c语言编程阿姆斯特朗数,C语言水仙花数,阿姆斯特朗数
阿姆斯特朗数也就是俗称的水仙花数,是指一个三位数,其各位数字的立方和等于该数本身.例如:153=13+53+33,所以 153 就是一个水仙花数.求出所有的水仙花数. 算法思想 对于阿姆斯特朗数问题, ...
- C语言中的有符号数和无符号数之间转换
C语言中的有符号数和无符号数之间转换 我们都知道C语言中有有符号数和无符号数两种整数表示方法,并且支持相互转换. 那么具体相互转换有什么规则,我们今天来了解一下: 在C语言中当声明一个像12345或0 ...
- 考研复试C语言微机原理,放福利,初试数模电,复试微机原理和C的进来看看
本帖最后由 99terry 于 2013-4-17 15:34 编辑 我10年毕业的,工作两年多,去年7月份辞职,8月份开始备考,本科学的焊接技术与工程,跨考电工理论,二本出生,好在年纪不大,90年的 ...
最新文章
- Cloudera Manager5安装总结遇到问题及解决办法
- mysqldump备份数据库
- mysql数据库连接过多的错误,可能的原因分析及解决办法
- Oracle Profile 使用详解
- 前端框架——Jquery——基础篇2__获取DOM节点的值
- 主从故障处理--session 级别参数复制错误
- 如何解决Ubuntu 14.04编译make menuconfig时缺少'ncurses-devel'库
- 获取滚动文本框TextArea焦点位置信息
- .NET平台依赖注入机制及IoC的设计与实现
- 探讨C#的out关键字
- JS判断日期是否在同一个星期内,和同一个月内
- Android_之动画1
- PHP导航栏管理,zblog导航栏管理设置的几种方法
- Educational Codeforces Round 67 E.Tree Painting (树形dp)
- 第2章企业管理中的经济学原理
- 2020年百度之星 程序设计大赛 初赛一
- 揭秘鲜为人知的酒店管理“黑洞”
- 当series用math包里的log计算出现错误
- 毕业好几年,改行学IT哪个岗位容易上手?
- mysql 织梦 优化,织梦Dedecms全站SEO优化教程