今天上课做了数模转换的实验。感觉很好玩,在这里写下。

器材: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)数模转化实验,呼吸灯相关推荐

  1. AD数模转化AD0809

    数模转化 AD0809 AD转换就是模数转换,就是把模拟信号转换成数字信号.D/A转换是把数字量转变成模拟的器件.模拟信号只有通过A/D转化为数字信号后才能用软件进行处理,这一切都是通过A/D转换器( ...

  2. 67在C51语言表示16进制数,一级笔试试题考核的主要知识点及答案

    历年(99.4-02.4)一级笔试试题考核的主要知识点及答案 1.计算机中数据的表示形式是 A)八进制 B)十进制 C)二进制 D)十六进制 2.硬盘工作时应特别注意避免 A)噪声 B)震动 C)潮湿 ...

  3. C语言 二维数组行数和列数计算 - C语言零基础入门教程

    目录 一.计算一维数组长度 二.计算二维数组长度 1.二维数组行数 2.二维数组列数 3.二维数组的元素个数 = 二维数组行数 * 二维数组列数 三.猜你喜欢 零基础 C/C++ 学习路线推荐 : C ...

  4. c语言判断回文平方数,C/C++回文数的判断(转)

    "回文数"是一种数字.如:98789, 这个数字正读是98789,倒读也是98789,正读倒读一样,所以这个数字就是回文数. 平方回数 定义:一个回文数,它同时还是某一个数的平方, ...

  5. 122345 java_【每天算法2】:用java语言实现,一个组数:122345这6个数,打印出它所有可能的组合;要求4不能在第3位,3和5不能相连。 | 学步园...

    一个组数:122345这6个数,打印出它所有可能的组合:要求4不能在第3位,3和5不能相连. 我在实现这个 感觉我的算法复杂度还是挺高的.过程中,不断的创建新的数组列别. 如果你有更好的算法,请发上来 ...

  6. 利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止。

    利用Python语言编程,完成猜数游戏,系统随机产生一个1到100的数字num1,用户输入一个数字guess,如果没有猜对,根据系统给出的提示重新猜数,直到才对为止. 要求:(1)系统每次都要给出新的 ...

  7. 用c语言编程阿姆斯特朗数,C语言水仙花数,阿姆斯特朗数

    阿姆斯特朗数也就是俗称的水仙花数,是指一个三位数,其各位数字的立方和等于该数本身.例如:153=13+53+33,所以 153 就是一个水仙花数.求出所有的水仙花数. 算法思想 对于阿姆斯特朗数问题, ...

  8. C语言中的有符号数和无符号数之间转换

    C语言中的有符号数和无符号数之间转换 我们都知道C语言中有有符号数和无符号数两种整数表示方法,并且支持相互转换. 那么具体相互转换有什么规则,我们今天来了解一下: 在C语言中当声明一个像12345或0 ...

  9. 考研复试C语言微机原理,放福利,初试数模电,复试微机原理和C的进来看看

    本帖最后由 99terry 于 2013-4-17 15:34 编辑 我10年毕业的,工作两年多,去年7月份辞职,8月份开始备考,本科学的焊接技术与工程,跨考电工理论,二本出生,好在年纪不大,90年的 ...

最新文章

  1. Cloudera Manager5安装总结遇到问题及解决办法
  2. mysqldump备份数据库
  3. mysql数据库连接过多的错误,可能的原因分析及解决办法
  4. Oracle Profile 使用详解
  5. 前端框架——Jquery——基础篇2__获取DOM节点的值
  6. 主从故障处理--session 级别参数复制错误
  7. 如何解决Ubuntu 14.04编译make menuconfig时缺少'ncurses-devel'库
  8. 获取滚动文本框TextArea焦点位置信息
  9. .NET平台依赖注入机制及IoC的设计与实现
  10. 探讨C#的out关键字
  11. JS判断日期是否在同一个星期内,和同一个月内
  12. Android_之动画1
  13. PHP导航栏管理,zblog导航栏管理设置的几种方法
  14. Educational Codeforces Round 67 E.Tree Painting (树形dp)
  15. 第2章企业管理中的经济学原理
  16. 2020年百度之星 程序设计大赛 初赛一
  17. 揭秘鲜为人知的酒店管理“黑洞”
  18. 当series用math包里的log计算出现错误
  19. 毕业好几年,改行学IT哪个岗位容易上手?
  20. mysql 织梦 优化,织梦Dedecms全站SEO优化教程

热门文章

  1. 哈罗不显示服务器,哈罗助力车怎么没有了
  2. 在eclipse中用bluestack运行android程序
  3. 使用Time Machine连接到群晖 NAS时,该如何解决问题?
  4. 现代通信原理_招生季专业详解读丨天津师范大学电子与通信工程学院
  5. 韩立刚《计算机网络》| 第4章 网络层
  6. 2015年站长十大常用工具
  7. 模电学习笔记(上交郑老师)4.场效应管
  8. 6.7绝地求生服务器维护,绝地求生6月5日更新维护全内容及官方更新时间
  9. 谈谈射频电路设计,再奉上五条经验
  10. 公司邮箱如何注册163邮箱