当前位置:首页 > 单片机 > 单片机
[导读]昨天拿到板子,焊接完毕。用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); //发送低四位

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

pic单片机应用很多,生活中到处都有pic单片机的身影。小编个人也是从事pic单片机开发的人员之一,对于pic单片机有一定的理解。今天,小编将带领大家一起看一下pic单片所具备的8大优势。

关键字: pic 单片机 寄存器

骊住实验室成为首家两次成功获得德国国家认可委员会(DAkkS)认证的卫浴品牌。这家位于德国海默的开发实验室主要从事配件测试。 测试程序遵照国际标准执行。 骊住亦向其他有相应产品测试需求的企业开放独立实验室。...

关键字: 配件 测试程序 INNOVATION ISO

SpiceJet 成为首家借力Q400客机提升盈利潜力的航空公司 加拿大多伦多, Sept. 24, 2018 (GLOBE NEWSWIRE) -- Bombardier Commercial

关键字: pic ce

什么是PIC单片机?你知道多少?时代的变迁,PIC单片机是这个时代的新宠。之前我们对pic单片机的I/O接口进行过阐述,不是很详细。本期对关于PIC单片机的各种内部硬件资源加以介绍,以帮助大家全面掌握pic单片机打下夯实...

关键字: pic 单片机 电路

pic单片机具备很多应用,对于pic单片机,想必大家并不陌生。往期文章中,小编对pic单片机做过诸多介绍。本文中,小编将为大家带来6个pic单片机问题,并予以解答。而在之后的pic单片机文章中,小编将带来另外6个问题。如...

关键字: pic pic单片机 单片机 指数

对于c编译器,大家应早已熟悉。往期文章中,小编带来诸多c编译器相关文章,尤其是gcc c编译器。本文中,小编将对gcc c编译器如何编译c程序予以介绍,并在文章的后半部分向大家讲解如果选择pic单片机的c编译器。如果你对...

关键字: c编译器 gcc pic 指数

​2020年2月13日,北京——是德科技宣布,该公司即将与国家信息光电子创新中心(NOEIC)和CompoundTek展开合作,三方携手建立光子集成电路(PIC)自动化测试的布局设计标准。

关键字: pic 自动化测试 fdr

​Microchip PIC18-Q43系列产品将更多的独立于内核的外设(CIP)及功能丰富的开发工具生态系统相结合,可改善实时控制和互联应用的设计

关键字: MCU pic cip

还有一个问题也是值得注意的,就是在中断服务程序中避免打开全局中断允许位,因为PIC单片机不支持中断嵌套,否则在执行一个中断服务程序还未结束就进入另一个中断服务程序后,上一个中断的现场参数将遭到破坏,从而导致程序产生不可预...

关键字: pic 单片机 电源技术解析

Pic单片机的学习是存在一定难度的,一是因为必须具备一定的pic单片机基础知识,二是需对pic单片机的所有引脚等有一定的了解。这篇文章是小编在学习pic单片机写的一篇比较适合pic单片机初入门朋友阅读的文章,一起了解下吧...

关键字: pic pic单片机 单片机
关闭
关闭