当前位置:首页 > 单片机 > 单片机
[导读]昨天拿到板子,焊接完毕。用i/o控制继电器,发现不好用,马上查三极管,果然画图的时候把封装搞错了,幸运的是直接颠倒焊接就行,刚毕业的时候犯过这样的错误,没想到现在还犯。问题1解决。调试12864液晶,采用st792

昨天拿到板子,焊接完毕。用i/o控制继电器,发现不好用,马上查三极管,果然画图的时候把封装搞错了,幸运的是直接颠倒焊接就行,刚毕业的时候犯过这样的错误,没想到现在还犯。问题1解决。
调试12864液晶,采用st7920的12864,串行方式。从51移植过来的,但死活不显示,检查硬件连接没有问题,程序上调整时序也不行,下午的时候看看网上的例子,发现一个寄存器ADCON1,仔细18f2550手册,才知道i/o需要设置成数字i/o,因为我用的i/o第二功能正好是ad的输入
设置成0x0f之后,显示ok,上个测试程序

#include

__CONFIG(1,USBPLL&IESODIS&FCMDIS&HSPLL&CPUDIV1&PLLDIV5);

//Configword2

__CONFIG(2,VREGEN&PWRTDIS&BOREN&BORV20&WDTDIS&WDTPS32K);

//Configword3

__CONFIG(3,PBDIGITAL&LPT1DIS&MCLREN);

//Configword4

__CONFIG(4,XINSTDIS&STVREN&LVPDIS&ICPORTDIS&DEBUGDIS);

//Configword5,6and7(protectionconfiguration)

__CONFIG(5,UNPROTECT);

__CONFIG(6,UNPROTECT);

__CONFIG(7,UNPROTECT);

#defineBKRA3//定义LCD的读/写控制口

#defineSCLKRA2//定义LCD的使能口

#defineSIDRA1//定义通信方式控制口

#defineCSRA0//定义复位口

#defineLED1RC1

#defineLED2RC0

#definerelay1RB4

#definerelay2RB5

#definex10x80

#definex20x88

#definey0x80

#definecomm0

#definedat1

unsignedcharconstnum_lcd[]={"0123456789:.-"};

unsignedcharconstready[]="ASDFGHJKJ";

voidIO_init();

voidLcd_Init(void);

voidWrite_Char(unsignedcharstart,unsignedcharddata);

voidSend_Byte(unsignedcharbbyte);

voidDelaynms(unsignedintdi);

voidClr_Scr(void);

voidLCD_Set_XY(unsignedcharX,unsignedcharY);

voidLCD_Write_String(unsignedcharX,unsignedcharY,unsignedchar*s);

voidLCD_Write_Number(unsignedchars);

voidDisplay_Img(unsignedcharconst*img);

//voidWr_Lcd(unsignedchardat_comm,unsignedcharcontent);

//-------------------------------------------

//主程序

voidmain()

{

IO_init();

LED1=1;

LED2=1;

BK=0;

relay1=0;

relay2=0;

Lcd_Init();

Delaynms(100);

LCD_Write_String(1,1,ready);

LCD_Set_XY(3,0);

LCD_Write_Number(1);

while(1)

{

}

}

//-------------------------------------------

//I/O口设置函数

voidIO_init()

{

TRISA=0X00;//设置A口为输出

TRISB=0X00;//设置A口为输出

//TRISD=0X00;//设置D口为输出

ADCON1=0X0f;//设置A口为普通I/O口

TRISC=0X00;

}

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

*函数名称:Lcd_init

*功能描述:初始化LCD

*参数:参数名称:输入/输出?类型描述

*

*返回值:

*作者:

*创建日期:2008-12-19

*全局变量:

*全局静态变量:

*局部静态变量:

*----------------------------------------修改历史------------------------------------------

*当前版本:修改人:修改日期:

*修改说明:

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

voidLcd_Init(void)

{

Delaynms(200);//启动等待,等LCM讲入工作状态

CS=1;

Write_Char(0,0x30);//8位介面,基本指令集

Write_Char(0,0x0c);//显示打开,光标关,反白关

Write_Char(0,0x01);//清屏,将DDRAM的地址计数器归零

LED1=0;

}

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

*函数名称:Write_char

*功能描述:写指令或数据

*参数:参数名称:输入/输出?类型描述

*

*返回值:

*作者:

*创建日期:2006-12-19

*全局变量:

*全局静态变量:

*局部静态变量:

*----------------------------------------修改历史------------------------------------------

*当前版本:修改人:修改日期:

*修改说明:

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

voidWrite_Char(unsignedcharstart,unsignedcharddata)

{

unsignedcharstart_data,Hdata,Ldata;

if(start==0)

start_data=0xf8;//写指令

else

start_data=0xfa;//写数据

Hdata=ddata&0xf0;//取高四位

Ldata=(ddata<<4)&0xf0;//取低四位

Send_Byte(start_data);//发送起始信号

Delaynms(8);//延时是必须的

Send_Byte(Hdata);//发送高四位

Delaynms(3);//延时是必须的

Send_Byte(Ldata); //发送低四位

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭