历史上的今天
返回首页

历史上的今天

今天是:2024年12月08日(星期日)

正在发生

2020年12月08日 | 单片机自动窗帘控制程序(两个电机)

2020-12-08 来源:51hei

单片机源程序如下:

#include

#include

#include



void io_inithw(void);

void int_init(void);

void io_inithw(void)

{

        P0=0xff;

        P1=0xff;

        P2=0xff;

        P3=0xff;

}


void int_inithw(void)

{

        EX0=1;

        EA=1;

}

/*********************************************************/

// 毫秒级的延时函数,time是要延时的毫秒数

/*********************************************************/

void DelayMs(uint time)

{

        uint i,j;

        for(i=0;i                for(j=0;j<112;j++);

}



/*********************************************************/

// 1602液晶写命令函数,cmd就是要写入的命令

/*********************************************************/

void LcdWriteCmd(uchar cmd)

{

        LcdRs_P = 0;

        LcdRw_P = 0;

        LcdEn_P = 0;

        P0=cmd;

        DelayMs(2);

        LcdEn_P = 1;   

        DelayMs(2);

        LcdEn_P = 0;        

}



/*********************************************************/

// 1602液晶写数据函数,dat就是要写入的数据

/*********************************************************/

void LcdWriteData(uchar dat)

{

        LcdRs_P = 1;

        LcdRw_P = 0;

        LcdEn_P = 0;

        P0=dat;

        DelayMs(2);

        LcdEn_P = 1;   

        DelayMs(2);

        LcdEn_P = 0;

}



/*********************************************************/

// 1602液晶初始化函数

/*********************************************************/

void LcdInit()

{

        LcdWriteCmd(0x38);        // 16*2显示,5*7点阵,8位数据口

        LcdWriteCmd(0x0C);        // 开显示,不显示光标

        LcdWriteCmd(0x06);        // 地址加1,当写入数据后光标右移

        LcdWriteCmd(0x01);        // 清屏

}



/*********************************************************/

// 液晶光标定位函数

/*********************************************************/

void LcdGotoXY(uchar line,uchar column)

{

        // 第一行

        if(line==0)        

                LcdWriteCmd(0x80+column);

        // 第二行

        if(line==1)        

                LcdWriteCmd(0x80+0x40+column);

}



/*********************************************************/

// 液晶输出字符串函数

/*********************************************************/

void LcdPrintStr(uchar *str)

{

        while(*str!='')

                        LcdWriteData(*str++);

}



/*********************************************************/

// 液晶输出数字(0-99)

/*********************************************************/

void LcdPrintNum(uchar num)

{

        LcdWriteData(num/10+48);                // 十位

        LcdWriteData(num%10+48);                 // 个位

}



/*********************************************************/

// 显示模式

/*********************************************************/

void LcdPrintMode(uchar num)

{

        switch(num)                        

        {

                case 1: LcdPrintStr("Manual");        break;

                case 2: LcdPrintStr("Timing");        break;

                case 3: LcdPrintStr("Liging");        break;

                default:                                                                                                break;

        }

}



/*********************************************************/

// 液晶显示内容的初始化

/*********************************************************/

void LcdShowInit()

{

        LcdGotoXY(0,0);

        LcdPrintStr("20  -  -     :  ");

        LcdGotoXY(1,0);

        LcdPrintStr("           gz:  ");

        LcdGotoXY(1,0);

        LcdPrintMode(gMode);

}




/*********************************************************/

// 刷新时间显示

/*********************************************************/

void FlashTime()

{

        LcdGotoXY(0,2);                                                                                // 年份

        LcdPrintNum(TimeBuff[0]);

        LcdGotoXY(0,5);                                                                                // 月份

        LcdPrintNum(TimeBuff[1]);

        LcdGotoXY(0,8);                                                                                // 日期

        LcdPrintNum(TimeBuff[2]);

        LcdGotoXY(0,11);                                                                        // 小时

        LcdPrintNum(TimeBuff[4]);

        LcdGotoXY(0,14);                                                                        // 分钟

        LcdPrintNum(TimeBuff[5]);

        LcdGotoXY(0,13);                                                                        // 秒钟

        if(TimeBuff[6]%2==0)                                                        // 秒钟是偶数显示冒号

                LcdWriteData(':');

        else                                                                                                                        // 秒钟是奇数显示空格

                LcdWriteData(' ');

}



/*********************************************************/

// 初始化DS1302

/*********************************************************/

void DS1302_Init(void)

{

        RST_P=0;                        // RST脚置低

        SCK_P=0;                        // SCK脚置低

        SDA_P=0;                        // SDA脚置低                                

}



/*********************************************************/

// 从DS1302读出一字节数据

/*********************************************************/

uchar DS1302_Read_Byte(uchar addr)

{

        uchar i;

        uchar temp;

        

        RST_P=1;                                                               

        

        /* 写入目标地址:addr*/

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

        {     

                if(addr&0x01)

                        SDA_P=1;

                else

                        SDA_P=0;

推荐阅读

史海拾趣

DESIGNERSYSTEMS公司的发展小趣事

DESIGNERSYSTEMS公司非常注重人才的培养和引进。他们建立了一套完善的人才培养机制,通过内部培训、外部交流等多种方式不断提升员工的综合素质和专业能力。同时,DESIGNERSYSTEMS还积极引进国内外优秀人才,为公司的发展注入新的活力和创新力。这种对人才的重视和投入使得DESIGNERSYSTEMS在电子行业中保持了持续的创新力和竞争力。

Electronicon Kondensatoren GmbH公司的发展小趣事

1992年,ELECTRONICON成立了卷绕电容器部门,并专注于该领域的研发与生产。该部门拥有238名员工,致力于为客户提供高品质的照明、电机和电力电容器产品。随着部门的不断发展壮大,ELECTRONICON在电容器领域的市场份额也得到了进一步提升。

德旭电子(DEXU)公司的发展小趣事

在德旭电子的发展历程中,供应链管理和成本控制一直是公司关注的重点。为了降低生产成本和提高产品质量,公司不断优化供应链管理流程和技术手段。

德旭电子与多家优质供应商建立了长期稳定的合作关系,并通过引入先进的供应链管理软件和系统实现了供应链的数字化和信息化管理。这些措施有效提高了供应链的响应速度和灵活性,降低了库存和运营成本。

在成本控制方面,德旭电子注重精细化管理和持续改进。公司通过优化生产流程、提高生产效率、降低能耗和原材料成本等措施不断降低生产成本。同时,公司还建立了完善的成本管理体系和考核机制确保成本控制工作的有效实施。

GISMA Steckverbinder GmbH公司的发展小趣事

GISMA深知产品质量对于企业生存和发展的重要性。因此,公司建立了完善的质量管理体系,并通过了DIN ISO 9001(DNV)等国际质量认证。这一认证不仅证明了GISMA在产品生产过程中的严格质量控制能力,也为其赢得了更多客户的信任和认可。GISMA始终坚持质量第一的原则,不断提升产品质量和服务水平,确保每一款产品都能达到客户的期望和要求。通过持续的质量管理和改进活动,GISMA在电子行业中树立了良好的品牌形象和口碑。

AURORA公司的发展小趣事

在自动驾驶技术快速发展的同时,AURORA公司也积极寻找商业化突破口。公司创始人认为,自动驾驶卡车商业化是一个具有巨大潜力的市场。因此,AURORA优先瞄准了自动驾驶卡车商业化领域,与FedEx、Paccar、Schneider、Werner和Xpress等多家平台公司建立了试点合作关系。通过在实际场景中测试和验证自动驾驶技术,AURORA不断积累经验和数据,为未来的商业化落地奠定了坚实基础。

这五个故事展示了AURORA公司在电子行业中的发展历程和取得的成就。从初创时期的挑战与机遇到技术实力的不断提升,再到与汽车制造商的深度合作、垂直产业链的整合与布局以及自动驾驶卡车商业化的探索,AURORA公司凭借其卓越的技术实力和前瞻性的战略眼光,在电子行业中逐渐崭露头角。未来,我们有理由相信AURORA将继续在自动驾驶领域取得更多突破和创新。

Econais公司的发展小趣事

作为一家在电子行业有影响力的企业,Econais深知自己的社会责任。公司积极参与各种公益活动,并致力于推动可持续发展。Econais的产品在设计时就考虑到了环保因素,采用低功耗技术减少能源消耗,并选用环保材料降低对环境的影响。此外,Econais还通过技术创新帮助其他企业实现节能减排的目标。

以上五个故事概述了Econais在电子行业发展中的一些重要里程碑和关键事件。这些故事不仅展示了Econais的技术实力和市场竞争力,也体现了公司的社会责任感和可持续发展的理念。

问答坊 | AI 解惑

DSP开发100问

DSP开发100问 一。时钟和电源 问:DSP的电源设计和时钟设计应该特别注意哪些方面?外接晶振选用有源的好还是无源的 好? 答:时钟一般使用晶体,电源可用TI的配套电源。外接晶振用无源的好。 问:TMS320LF2407的A/D转换精度保证措施。 答:参 ...…

查看全部问答>

请教做过“倒车影像系统”的兄弟

我现在在做毕业设计,涉及到倒车影像中的“倒车轨迹的绘制”(想把不同转角下的车辆倒车轨迹都绘制好放入flash中供单片机调用)。想了好几天,没有合适的办法绘制倒车轨迹,请指点一二。谢谢。 邮箱 shangqi2010@163.com  感激不尽。…

查看全部问答>

求助:大家好,我是个新新手,想请教SIM300C无线数传的问题。

大家好! 我刚刚接触SIM300C,单片机通过串口连接SIM300C,要实现数据传输应该怎样设置SIM300C?哪位专家能否给我一个设置流程,万分感谢!…

查看全部问答>

作嵌入式驱动程序,现在想转硬件设计,不知道好不好转啊

一直在作音视频驱动,总是在和硬件打交道。感觉还是硬件那边稳定,不用再学好多乱七八糟得编程语言。 python,jsp,vbscript,C#,。。。 硬件那边只要把电路搞得很通就行了。爽啊。…

查看全部问答>

图象传感器的应用

1、CMOS图象传感器是否直接可以用AVR单片机来进行采集像素数据 2、目前的摄像头,大多用DSP和FPGA做的,能否用低端的8BIT的潜入式单片机来做,如果有请专家们提供设计参考,感激不尽 3、怎样调节采集像素的速率,目前我们所用的MCU速度较慢,是否 ...…

查看全部问答>

LDO没有输出电容

New LDO Offers High Speed Performance without Output Capacitor The new XC6503 series from Torex, integrates internal phase compensation circuitry, removing the need for expensive output capacitors and dramatically ...…

查看全部问答>

关于MAP文件问题

我的MAP里面有个地方产生啦多余的4K RAM,谁知道是什么问题吗?----------------------------------------------------------  ======================CODE  Relative segment, address: 0800246C  ...…

查看全部问答>

好消息,TI M3的9D96终于正式推出了

昨天才出的,英文网站已经更新,中文网站还要等几天http://focus.ti.com/docs/toolsw/folders/print/dk-lm3s9d96.html?HQS=mcu_firestorm_110724&DCMP=mytinwsltr_07_25_2011&sp_rid_pod3=LTc5NzAyMjkzOAS2&sp_mid_pod3=495039…

查看全部问答>

TI 自行设计开发板自带例程(TI内部资料)不要错过!!!

TI 内部开发板对应的开发例程,非常好!!!…

查看全部问答>