打印

用AtmelStudio6.2跑mega16例程(32)拨码盘控制LED

[复制链接]
692|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ddllxxrr|  楼主 | 2014-10-10 22:35 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
根据拨码盘的状态来显示数字。因为拨码盘是7位最多255外数字。所以再主程序转换成要显的字模后显示。
原理图如下:




程序:
/*
* GccApplication15.c
*
* Created: 2014-10-10 21:55:49
*  Author: Administrator
*/

#define F_CPU 8000000UL
#include <avr/io.h>
#include <util/delay.h>
#include <stdint.h>
const int8_t SEG_CODE[] = {0x3F,0x06,0x58,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
int8_t DSY_Buffer[3] = {0,0,0};       
int main(void)
{
    while(1)
    {
       uint8_t i,Num;
           DDRC = 0xFF;PORTC = 0xFF;
           DDRB = 0xFF;PORTB = 0xFF;
           DDRD = 0x00;PORTD = 0xFF;
           while(1)
           {
                Num = PINB;
                        DSY_Buffer[0] = Num / 100;
                        DSY_Buffer[1] = Num /10 % 10;
                        DSY_Buffer[2] = Num % 10;
                        for(i=0;i<3;i++)
                        {
                            PORTD = ~_BV(i+1);
                                PORTC = SEG_CODE[DSY_Buffer[i]];
                                 _delay_ms(80);
                        }
           }
    }
}



相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:http://shop34182318.taobao.com/ http://shop562064536.taobao.com

2398

主题

6955

帖子

67

粉丝