电路连接 由于数码管品种多样,还有共阴共阳的,下面我们使用一个数码管段码生成器(在文章结尾) 去解决不同数码管的问题: 本例作者利用手头现有的一位不知品牌的共阳数码管:型号D5611 A/B,在Eagle 找了一个 类似的型号SA56-11,引脚功能一样可以直接代换。所以下面电路图使用SA56-11 做引脚说明。 注意: 1. 将数码管的a~g 段,分别接到Arduino 的D0~D6 上面。如果你手上的数码管未知的话,可以通过通电测量它哪个引脚对应哪个字段,然后找出a~g 即可。 2. 分清共阴还是共阳。共阴的话,接220Ω电阻到电源负极;共阳的话,接220Ω电阻到电源+5v。 3. 220Ω电阻视数码管实际工作亮度与手头现有原件而定,不一定需要准确。 4. 按下按钮即停。 源代码 由于我是按照段码生成器默认接法接的,所以不用修改段码生成器了,直接在段码生成器选择共阳极,再按“自动”生成数组就搞定。 下面是源代码,由于偷懒不用写循环,使用了部分AVR 语句。 PORTD 这个是AVR 的端口输出控制语句,8 位对应D7~D0,PORTD=00001001 就是D3 和D0 是高电平。 PORTD = a;就是找出相应的段码输出到D7~D0。 DDRD 这个是AVR 语句中控制引脚作为输出/输入的语句。DDRD = 0xFF;就是D0~D7 全部 作为输出脚了。 ARDUINO CODECOPY /* Arduino 单数码管骰子 Ansifa 2011-12-28 */ //定义段码表,表中十个元素由LED 段码生成器生成,选择了共阳极。 inta[10] = {0xC0, 0xF9, 0xA4, 0xB0, 0x99, 0x92, 0x82, 0xF8, 0x80, 0x90}; voidsetup() { DDRD = 0xFF; //AVR 定义PortD 的低七位全部用作输出使用。即0xFF=B11111111对 应D7~D0 pinMode(12, INPUT); //D12用来做骰子暂停的开关 } voidloop() { for(int i = 0; i < 10; i++) { //将段码输出PortD 的低7位,即Arduino 的引脚D0~D6,这样需要取出PORTD 最高位,即 D7的状态,与段码相加,之后再输出。 PORTD = a[i]; delay(50); //延时50ms while(digitalRead(12)) {} //如果D12引脚高电平,则在此死循环,暂停LED 跑 动 } }
上传时间: 2013-10-15
上传用户:baitouyu
利用一块芯片完成除时钟源、按键、扬声器和显示器(数码管)之外的所有数字电路功能。所有数字逻辑功能都在CPLD器件上用VHDL语言实现。这样设计具有体积小、设计周期短(设计过程中即可实现时序仿真)、调试方便、故障率低、修改升级容易等特点。 本设计采用自顶向下、混合输入方式(原理图输入—顶层文件连接和VHDL语言输入—各模块程序设计)实现数字钟的设计、下载和调试。 一、 功能说明 已完成功能 1. 完成秒/分/时的依次显示并正确计数; 2. 秒/分/时各段个位满10正确进位,秒/分能做到满60向前进位; 3. 定时闹钟:实现整点报时,又扬声器发出报时声音; 4. 时间设置,也就是手动调时功能:当认为时钟不准确时,可以分别对分/时钟进行调整; 5. 利用多余两位数码管完成秒表显示:A、精度达10ms;B、可以清零;C、完成暂停 可以随时记时、暂停后记录数据。 待改进功能: 1. 闹钟只是整点报时,不能手动设置报时时间,遗憾之一; 2. 秒表不能向秒进位,也就是最多只能记时100ms; 3. 秒表暂停记录数据后不能在原有基础上继续计时,而是复位重新开始。 【注意】秒表为后来添加功能,所以有很多功能不成熟!
上传时间: 2014-01-02
上传用户:LIKE
用AT89S51单片机的P0.0/AD0-P0.7/AD7端口接数码管的a-h端,8位数码管的S1-S8通过74LS138译码器的Y0-Y7来控制选通每个数码管的位选端。AT89S51单片机的P1.0-P1.2控制74LS138的A,B,C端子。在8位数码管上从右向左循环显示“12345678”。能够比较平滑地看到拉幕的效果。
上传时间: 2016-06-17
上传用户:wanghui2438
AVR单片机 实验教学指导书 实验一 实训装置的认识与软件使用 实验二 彩灯控制 实验三 键控加减计数 实验四 外部中断的使用 实验五 数码管动态扫描显示 实验六 实时时钟显示 实验七 高频脉冲频率的测量 实验八 低频脉冲频率的测量 实验九 脉宽调制的实验 实验十 显示驱动器7219的使用 实验十一 7219驱动8位8段数码管的时钟显示 实验十二 8×8点阵字符显示控制器的使用 实验十三 异步通信实验 实验十四 多路模拟数据采集与显示 实验十五 模拟比较器应用 实验十六 矩阵键盘扫描与编码显示 实验十七 常数设置 实验十八 液晶显示器应用
上传时间: 2016-10-19
上传用户:wqxstar
前面我们已经完成了第一个实例:流水灯的实验。今天我们开始进行第二个实例的学习:8位数码管的显示。
上传时间: 2013-05-23
上传用户:情义强哥
通过AT89S/C52,11.0592MHz,DS18B20和6位数码管,采集温度并在数码管上实时显示。\r\n并有相应的不同颜色的led和蜂鸣器指示。\r\n下载后即可以运行。
上传时间: 2013-09-30
上传用户:changeboy
通过AT89S/C52,11.0592MHz,DS18B20和6位数码管,采集温度并在数码管上实时显示。并有相应的不同颜色的led和蜂鸣器指示。同时包括完整的PROTEUS演示,内容完整,为初学者不可或缺的入门资料!2008年4月18号
上传时间: 2013-09-30
上传用户:qiao8960
8位数码管显示动态显示电路图及程序
上传时间: 2013-10-19
上传用户:er1219
4×4键盘及8位数码管显示构成的电子密码锁
上传时间: 2014-01-04
上传用户:ysjing
四位数码管从一数到F,LED就向下移一位c语言代码
上传时间: 2014-12-25
上传用户:1214209695