历史上的今天
返回首页

历史上的今天

今天是:2024年09月16日(星期一)

2020年09月16日 | P10点阵屏C51单片机程序

2020-09-16 来源:51hei

P10点阵屏C51程序
1/4扫描,四扫下行,1路16行,数据低OE高(04-P16-08)

适用于HUB12接口单色P10

串口模式0,普通左移,亮度速度可调,6个IO口,用的STC8F1K08,最多231个字

制作出来的实物图如下:
 


单片机源程序如下:

#include

#include

#include

#define                DATA        P30                //

#define                CLOCK        P31                //↑        ↓

#define                ADDR_A        P32                //↑

#define                ADDR_B        P33                //

#define                LATCH        P54                //↓        ↓

#define                ENABLE        P55                //↓

unsigned char Offset_Bit,Offset_String;

unsigned char code String[]=

{

        #include <0.h>

};


/*----------------------------延时10us@STC-Y6@11.0592MHz----------------------------*/

void Delay_10us(void)

{

        unsigned char i;

        i=35;

        while(--i);

}


/*----------------------------延时x10us----------------------------*/

void Delay_x10us(unsigned char x)

{

        while(x--)

                Delay_10us();

}


void Line_Driver(unsigned char temp)

{

        switch(temp)

        {

                case 0:

                        ADDR_A=0;

                        ADDR_B=0;

                break;

                case 1:

                        ADDR_A=1;

                        ADDR_B=0;

                break;

                case 2:

                        ADDR_A=0;

                        ADDR_B=1;

                break;

                case 3:

                        ADDR_A=1;

                        ADDR_B=1;

                break;

                default:

                break;

        }

        ENABLE=1;

}


void Send_One_Byte(unsigned char temp)

{

        unsigned char i,temp1;

        for(i=0;i<8;i++)

        {

                temp1<<=1;

                if(temp&0x01)

                        temp1|=0x01;

                temp>>=1;

        }

        SBUF=~temp1;

        while(!TI);

        TI=0;

}


void Send_Display(unsigned char line)

{

        unsigned char i,j,a,b;

        unsigned int c,d;

        b=2*line;

        for(i=0;i<4;i++)

        {

                c=(Offset_String+i)*32;

                for(j=0;j<8;j++)

                {

                        if(j<4)

                        {

                                a=(3-j)*8;

                                d=a+b+c;

                                if(Offset_Bit<=8)

                                        Send_One_Byte((String[d]<>(8-Offset_Bit));

                                else

                                        Send_One_Byte((String[d+1]<<(Offset_Bit-8))|(String[d+32])>>(8-(Offset_Bit-8)));

                        }

                        else

                        {

                                a=(7-j)*8;

                                d=a+b+c;

                                if(Offset_Bit<=8)

                                        Send_One_Byte((String[d+1]<>(8-Offset_Bit));

                                else

                                        Send_One_Byte((String[d+32]<<(Offset_Bit-8))|(String[d+33])>>(8-(Offset_Bit-8)));

                        }

                }

        }

        LATCH=0;

        LATCH=1;

}


void Display(unsigned char brightness)

{

        unsigned char line;

        for(line=0;line<4;line++)

        {

                Send_Display(line);

                Line_Driver(line);

                Delay_x10us(brightness);

                ENABLE=0;

                Delay_x10us(10-brightness);

        }

}


void Init(void)

{

        AUXR|=0x20;

        P3M0=0x0f;

        P3M1=0x00;

        P5M0=0x30;

        P5M1=0x00;

        Offset_Bit=0;

        Offset_String=0;

}


void main(void)

{

        unsigned char i;

        Init();

        while(1)

        {

                for(i=0;i<10;i++)

                {

                        Display(1);

                }

                Offset_Bit++;

                if(Offset_Bit==16)

                {

                        Offset_Bit=0;

                        Offset_String++;

                }

                if(Offset_String==159)

                {

                        Offset_String=0;

                }

        }

}


推荐阅读

史海拾趣

Gennum ( Semtech )公司的发展小趣事
在连接元件时,避免导线裸露部分相互接触或接触到金属物体,以防止短路。
Conexcon Group公司的发展小趣事

在电子行业的快速发展中,Conexcon Group以其前瞻性的技术视野,成功研发出一款新型智能芯片,这款芯片不仅性能卓越,而且功耗极低,迅速赢得了市场的青睐。公司凭借这一技术突破,逐步扩大了在国内外市场的份额,成为了行业内技术创新的领军者。随着产品线的不断丰富,Conexcon Group逐渐形成了从芯片设计到整机制造的完整产业链,进一步巩固了其在电子行业的领先地位。

First Silicon Co., Ltd公司的发展小趣事

人才是企业发展的核心竞争力。First Silicon公司深知这一点,因此始终将人才战略作为公司发展的重要支撑。公司建立了完善的人才培养体系和激励机制,吸引了大批优秀人才的加入。同时,公司还注重与高校和研究机构的合作,共同开展前沿技术研究和人才培养项目。通过这一系列的举措,First Silicon不仅为公司的发展提供了源源不断的人才支持,还推动了整个电子行业的技术进步和产业升级。

请注意,以上五个故事均是基于电子行业的一般情况和假设构建的,并非First Silicon Co., Ltd公司的实际历史。如需了解该公司的具体发展情况,建议直接访问其官方网站或查阅相关行业报告。

e2v technologies公司的发展小趣事

在医疗领域,e2v也积极发挥其作用。公司针对放射治疗系统提供了价格合理、易于运输和安装的国内制造设备,支持中国各地医院和诊所的放射治疗工作。这些设备不仅提高了放射治疗的效果和效率,也为患者带来了更好的治疗体验。

Cretex Companies Inc公司的发展小趣事

为了降低成本、提高生产效率,Cretex开始对产业链进行整合与优化。他们与上游供应商建立长期稳定的合作关系,确保原材料的稳定供应和质量可靠。同时,公司还加强了对下游客户的服务与支持,通过提供个性化的解决方案和优质的售后服务,增强了客户黏性。这些举措使得Cretex在激烈的市场竞争中保持了领先地位。

贝特莱公司的发展小趣事

贝特莱与小米的合作是其发展历程中的又一重要事件。作为小米全系列合作伙伴,贝特莱为米家智能门锁提供了独家指纹传感器和定制算法芯片。随着米家智能门锁销量突破百万大关,贝特莱也实现了销售上的重大突破。这一合作不仅证明了贝特莱技术的成熟与可靠,也进一步提升了其在智能门锁市场的地位。

问答坊 | AI 解惑

检测绝缘栅极双极型晶体管(IGBT)好坏的简易方法

1、判断极性首先将万用表拨在R×1KΩ挡,用万用表测量时,若某一极与其它两极阻值为无穷大,调换表笔后该极与其它两极的阻值仍为无穷大,则判断此极为栅极(G)。其余两极再用万用表测量,若测得阻值为无穷大,调换表笔后测量阻值较小。在测量阻值 ...…

查看全部问答>

很奇怪的问题 wince 串口测试应用程序 writefile(...)函数没有执行完就失败了,然后程序死掉了。

串口测试的writefile(...)函数没有执行完就失败了,没有任何返回结果。writefile的下一个语句做断点,没有执行到。 if(hComm!=INVALID_HANDLE_VALUE&&dwCharToWrite!=0)         {           &nbs ...…

查看全部问答>

终于研发成功

终于研发成功,cpu是s3c2410,64M   SDRAM,网口为cs8900 flash(k9f1208 64m)   实现了只用nand flash 就可以启动引导vxworks. 公司送bsp及全套开发文档 ,另可配公司的开发板 有意着QQ联系641328010 请注明 arm…

查看全部问答>

STC12LE5206AD 程序将引脚置为0 却检测到为高

有谁能够帮忙解决下啊? 本人qq:853887107…

查看全部问答>

RT_THREAD中的异常与中断

  异常是导致处理器脱离正常运行转向执行特殊代码的任何事件,如果系统不及时处理,系统轻则出错,重着导致系统毁灭性的瘫痪。所以正确地处理异常避免错误的发生是提高软件的鲁棒性重要的一方面,对于嵌入式系统更加如此。 异常可以分成两类 ...…

查看全部问答>

DIY导航避障车规整贴

DIY导航避障车小组今日下午展开第一次例会,在本次例会中大家集中讨论了无线的选择,避障的选择等等部分,并对小车进行了前景规划,以谷歌的自动驾驶车为终极目标,大家积极发言例会持续了一个半小时,并表示未来会采用各种新技术。下次再来把细节 ...…

查看全部问答>

11.06【每周讨论】软文——春风化雨、润物无声

您知道“软文”的含义吗?什么,不知道。赶紧百度一下吧,别被OUT了 [ 本帖最后由 longxtianya 于 2011-11-6 20:19 编辑 ]…

查看全部问答>

分享一些收集的msp430方面的书籍

最近接触了一下msp430的单片机从网上搜集了一些书籍希望对大家有帮助。…

查看全部问答>

泰克2012年度春季创新论坛北京站见闻

    4月24日阴雨天气,阿牛哥上午9点去北京朝阳区五洲皇冠大酒店参加泰克2012年度春季创新论坛。热情的工程师们朋友已经在会场里聆听泰克的测试测量行业趋势观点,泰克领先测试测量方案,还有一些工程师朋友在展厅参观泰克最新 ...…

查看全部问答>

全球智能机Q2出货1.5亿部 中兴进前五

本帖最后由 jameswangsynnex 于 2015-3-3 20:01 编辑 …

查看全部问答>