打印

纯手工打造2051

[复制链接]
3863|26
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cnhysc|  楼主 | 2013-1-19 23:31 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 cnhysc 于 2013-1-20 13:13 编辑

最近一直进展不顺,心情郁闷...只有阿Q一下,找点开心的事玩玩,所以一个晚上纯手工打造了一个2051,随便加了点code,上图...呵呵...






相关帖子

沙发
ddddd6666| | 2013-1-20 08:33 | 只看该作者
不错哦、

使用特权

评论回复
板凳
dirtwillfly| | 2013-1-20 09:06 | 只看该作者
楼主的图都挂了,建议把图片上传到21ic,不要引用其他网站的图片。
QQ空间的图片不允许外部引用的

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
渤海三叠浪 + 4 神马都是浮云
地板
NE5532| | 2013-1-20 10:20 | 只看该作者
虾米都看不到啊………………………………

使用特权

评论回复
评分
参与人数 1威望 +4 收起 理由
渤海三叠浪 + 4 神马都是浮云
5
senzh01| | 2013-1-20 10:45 | 只看该作者
无图!!!

使用特权

评论回复
6
ningling_21| | 2013-1-20 12:47 | 只看该作者
图片被禁止显示了...

使用特权

评论回复
7
dong_abc| | 2013-1-20 14:04 | 只看该作者
不错,我都看见图片了呀~

使用特权

评论回复
8
wuzx-61| | 2013-1-20 14:55 | 只看该作者
顶楼主.

使用特权

评论回复
9
autopccopy| | 2013-1-20 14:58 | 只看该作者
古董,AT2051

使用特权

评论回复
10
sgj245609615| | 2013-1-20 17:13 | 只看该作者
线走的挺漂亮

使用特权

评论回复
11
cnhysc|  楼主 | 2013-1-20 19:44 | 只看该作者
本帖最后由 cnhysc 于 2013-1-20 19:48 编辑

上代码,改天有空的时候整理一份原理图。。。
#include <at89x051.h>

//common part
#define        HIGH                     1
#define        LOW                     0
#define        TRUE                    1
#define        FALSE                   0
#define        ZERO                    0
#define        MSB                      0x80
#define        LSB                       0x01
//max7219 part
#define        DECODE_MODE    0x09
#define        INTENSITY             0x0A
#define        SCAN_LIMIT           0x0B
#define        SHUT_DOWN        0x0C
#define        DISPLAY_TEST      0x0F

sbit LOAD = P1^2;                   //MAX7219        Load-Data Input:            rising edge               pin 12
sbit DIN  = P1^3;                     //MAX7219        Serial-Data Input:            rising edge               pin 1
sbit CLK  = P3^7;                     //MAX7219        Serial-Clock Input:           maximum 10MHz     pin 13

void delayms(unsigned int z)//延时函数
{
        unsigned int x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}

void Write_Max7219_byte(unsigned char temp)        //发送一个字节的子程序, 上升沿发送数据
{
        unsigned char i;
        for (i=0; i<8; i++)     
        {
                CLK = LOW;
                DIN = (bit)(temp&MSB);      
                temp <<=1;  
                CLK = HIGH;
        }
}

void Write_Max7219(unsigned char address,unsigned char dat)        //向寄存器中写入一个数据先写地址,后写数据load 上升沿锁存数据
{
        LOAD = LOW;
        Write_Max7219_byte(address);
        Write_Max7219_byte(dat);
        LOAD = HIGH;                 
}

void Init_Max7219(void)        //初始化max7219 子函数 设置工作寄存器   需要查看芯片手册
{
        Write_Max7219(SHUT_DOWN,0x01);            //Normal Operation XXXXXXX1 Shutdown Mode   XXXXXXXX0
        Write_Max7219(DISPLAY_TEST,0x00);          //Normal Operation XXXXXXX0 Display Test Mode XXXXXXXX1
        Write_Max7219(DECODE_MODE,0xff);          //Decode Mode Select D7~D0 1 B decode 0 No decode在非BCD译码态输入,高四位为8,9,A,B,C,D,E,F等数显示“.”低四位为正常数码管字型码。
//        Write_Max7219(SCAN_LIMIT,0x07);            //SCAN LIMIT 0~7 0xX0~0xX7
        Write_Max7219(SCAN_LIMIT,0x04);              //SCAN LIMIT 0~4 0xX0~0xX4
        Write_Max7219(INTENSITY,0x04);                //Set Intensity   0xX0~0xXf   强度调节
}

void main(void)                  //左移方式显示0~9数字
{
        unsigned char i;
        unsigned char j;                                                                                                                                                  
        i=j=0;
        Init_Max7219();  
        while(TRUE)
        {
                j = i;
                 Write_Max7219(1,0x80+j);
                 j++;
                 if(j>=10)
                         j=0;
                 Write_Max7219(2,0x80+j);
                 j++;
                 if(j>=10)
                         j=0;
                 Write_Max7219(3,0x80+j);
                 j++;
                 if(j>=10)
                         j=0;
                 Write_Max7219(4,0x80+j);
                 j++;
                 if(j>=10)
                         j=0;
                 Write_Max7219(5,0x80+j);
                 j++;
                 if(j>=10)
                         j=0;
                 delayms(500);
                i++;
                if(i>=10)
                        i=0;
        }
}

使用特权

评论回复
12
Cortex-M0| | 2013-1-21 07:30 | 只看该作者
哈哈~~~

还还以为纯手工打造2051 MPU呢~~~

那才是真牛~~~

使用特权

评论回复
13
qingx| | 2013-1-21 09:01 | 只看该作者
呵呵,我看到图片了,还行

使用特权

评论回复
14
zhangliming420| | 2013-1-21 09:55 | 只看该作者
我也以为是纯手工打造2051呢....

使用特权

评论回复
15
NE5532| | 2013-1-21 19:36 | 只看该作者
寒,我也看成是自己用门电路做2051了…………………………

使用特权

评论回复
16
pallee| | 2013-1-21 20:05 | 只看该作者
哈哈,有点标题党的味道。
不过楼主还是很厉害的!

使用特权

评论回复
17
coody| | 2013-1-22 09:24 | 只看该作者
纯手工打造一个CPU

使用特权

评论回复
18
uschon| | 2013-1-22 09:34 | 只看该作者
楼主标题党

使用特权

评论回复
19
ayb_ice| | 2013-1-22 10:10 | 只看该作者
还用7219,有米啊

使用特权

评论回复
20
duhemayi| | 2013-1-23 10:41 | 只看该作者
这做的是个什么东西

使用特权

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

本版积分规则

1

主题

11

帖子

1

粉丝