专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
TI
编译老是出现图中问题,是分文件出错了吗?
2019-07-15 15:31
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
TI MCU
4092
2
1026
编译老是出现这样的问题,我不知道是不是分文件出错了
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
colin1125
1楼-- · 2019-07-15 17:25
[C]
纯文本查看
复制代码
这是主函数:[C]
纯文本查看
复制代码
#include <msp430x16x.h>#include"Config.h"#include"12864.h"#include"keyboard.h"//***********************************************************************// 系统时钟初始化,外部8M晶振//***********************************************************************void Clock_Init(){ uchar i; BCSCTL1&=~XT2OFF; //打开XT2振荡器 BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ do{ IFG1&=~OFIFG; //清楚振荡器错误标志 for(i=0;i<100;i++) _NOP(); } while((IFG1&OFIFG)!=0); //如果标志位1,则继续循环等待 IFG1&=~OFIFG; }void LCD_DisplayKey(uchar keynum){ LCD_write_char(0x06,1,0x30+keynum);}void main(void){ WDT_Init(); Clock_Init(); //时钟初始化 Port_init(); keyPort_init(); //端口初始化,用于控制IO口输入或输出 LCD_init(); //液晶参数初始化设置 LCD_clear(); //清屏 LCD_Desk(); while(1) { keyscan(); switch(key) { case 0:LCD_DisplayKey(1);break; case 1:LCD_DisplayKey(2);break; case 2:LCD_DisplayKey(3);break; case 3:LCD_DisplayKey(4);break; case 4:LCD_DisplayKey(5);break; case 5:LCD_DisplayKey(6);break; case 6:LCD_DisplayKey(7);break; case 7:LCD_DisplayKey(8);break; case 8:LCD_DisplayKey(9);break; case 9:LCD_DisplayKey(10);break; } }}[C]
纯文本查看
复制代码
这是按键扫描程序:[C]
纯文本查看
复制代码
#include "keyboard.h"#include"Config.h"void keyPort_init(){ P1SEL = 0x00; //P1普通IO功能 P1DIR = 0x0f; //P0~p3设置为输出模式,p4~p7为输入 P3SEL = 0x00; //P3口普通IO功能 P3DIR = 0xFF; //P3口输出模式,驱动led}//4*4矩阵键盘扫描程序,检测第一列S6~S18 uchar keyscan(void){ uchar temp; /*************************扫描第1行***********************/ P1OUT=0x0e; temp=P1IN&0xf0;// if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=0; break; case 0xd0: key=1; break; case 0xb0: key=2; break; case 0x70: key=3; break; } } } /*************************扫描第2行***********************/ P1OUT=0x0d; temp=P1IN&0xf0; if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=4; break; case 0xd0: key=5; break; case 0xb0: key=6; break; case 0x70: key=7; break; } } } P1OUT=0x0b; temp=P1IN&0xf0; if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=8; break; case 0xd0: key=9; break; case 0xb0: key=10; break; case 0x70: key=11; break; } } } P1OUT=0x07; temp=P1IN&0xf0; if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=12; break; case 0xd0: key=13; break; case 0xb0: key=14; break; case 0x70: key=15; break; } } } return key; }[C]
纯文本查看
复制代码
这是液晶显示:#include"12864.h"#include"Config.h"//*************************************************************************//初始化IO口子程序//*************************************************************************void Port_init(){ P4SEL = 0x00; P4DIR = 0xFF; P5SEL = 0x00; P5DIR|= BIT0 + BIT1 + BIT5 + BIT6 + BIT7; PSB_SET; //液晶并口方式 RST_SET;}//***********************************************************************//显示屏命令写入函数//***********************************************************************void LCD_write_com(unsigned char com) { RS_CLR; RW_CLR; EN_SET; DataPort = com; delay_ms(5); EN_CLR;}//***********************************************************************//显示屏数据写入函数//***********************************************************************void LCD_write_data(unsigned char data) { RS_SET; RW_CLR; EN_SET; DataPort = data; delay_ms(5); EN_CLR;}//***********************************************************************//显示屏清空显示//***********************************************************************void LCD_clear(void) { LCD_write_com(0x01); delay_ms(5);}//***********************************************************************//函数名称:DisplayCgrom(uchar hz)显示CGROM里的汉字//***********************************************************************void DisplayCgrom(uchar addr,uchar *hz){ LCD_write_com(addr); delay_ms(5); while(*hz != ' ') { LCD_write_data(*hz); hz++; delay_ms(5); }} //***********************************************************************//显示屏单字符写入函数//***********************************************************************void LCD_write_char(unsigned char x,unsigned char y,unsigned char data) { if (y == 0) { LCD_write_com(0x80 + x); //第一行显示 } if(y == 1) { LCD_write_com(0x90 + x); //第二行显示 } if (y == 2) { LCD_write_com(0x88 + x); //第三行显示 } if(y == 3) { LCD_write_com(0x98 + x); //第四行显示 } delay_ms(1); LCD_write_data(data); delay_ms(1);}//****************************************************************//函数名称:Display()显示测试结果//****************************************************************void Display(void){ DisplayCgrom(0x80,"欣世纪电子欢迎你"); DisplayCgrom(0x88,"旺:jingyehanxing"); DisplayCgrom(0x90,"www.avrgcc.com "); DisplayCgrom(0x98,"电话057487470625");}//***********************************************************************//显示屏初始化函数//***********************************************************************void LCD_init(void) { LCD_write_com(FUN_MODE);//显示模式设置 delay_ms(5); LCD_write_com(FUN_MODE);//显示模式设置 delay_ms(5); LCD_write_com(CURSE_DIR);//显示模式设置 delay_ms(5); LCD_write_com(DISPLAY_ON);//显示开 delay_ms(5); LCD_write_com(CLEAR_SCREEN);//清屏 delay_ms(5);}//***********************************************************************// 液晶显示界面初始化//***********************************************************************void LCD_Desk(void){ LCD_clear(); DisplayCgrom(0x80,"苏职大欢迎你"); DisplayCgrom(0x90,"当前键值是:"); delay_ms(250);}
加载中...
pu76543
2楼-- · 2019-07-15 18:32
目测可能是头文件重复引用问题。
加载中...
一周热门
更多
>
相关问题
CPLD的方波输出
4 个回答
11个版本Quartus II 软件下载,安装包网盘合集,附教程,47G!
20 个回答
请大家帮忙到21IC发展大家谈支持我申请新版面
20 个回答
【通知】21ic中国电子网服务条款 (所有人员必读)
1 个回答
满载而归乙亥年,大展鸿途庚子年---集签赢好礼
20 个回答
携手ADI,踏上电子工程师之巅—车辆电气化视频,答题领奖!
1 个回答
如何提升论坛质量,看你了!
20 个回答
【最终名单】二姨家喊你来拿100份新年大礼啦~
20 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
TI
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
这是主函数:[C] 纯文本查看 复制代码
#include <msp430x16x.h>#include"Config.h"#include"12864.h"#include"keyboard.h"//***********************************************************************// 系统时钟初始化,外部8M晶振//***********************************************************************void Clock_Init(){ uchar i; BCSCTL1&=~XT2OFF; //打开XT2振荡器 BCSCTL2|=SELM1+SELS; //MCLK为8MHZ,SMCLK为8MHZ do{ IFG1&=~OFIFG; //清楚振荡器错误标志 for(i=0;i<100;i++) _NOP(); } while((IFG1&OFIFG)!=0); //如果标志位1,则继续循环等待 IFG1&=~OFIFG; }void LCD_DisplayKey(uchar keynum){ LCD_write_char(0x06,1,0x30+keynum);}void main(void){ WDT_Init(); Clock_Init(); //时钟初始化 Port_init(); keyPort_init(); //端口初始化,用于控制IO口输入或输出 LCD_init(); //液晶参数初始化设置 LCD_clear(); //清屏 LCD_Desk(); while(1) { keyscan(); switch(key) { case 0:LCD_DisplayKey(1);break; case 1:LCD_DisplayKey(2);break; case 2:LCD_DisplayKey(3);break; case 3:LCD_DisplayKey(4);break; case 4:LCD_DisplayKey(5);break; case 5:LCD_DisplayKey(6);break; case 6:LCD_DisplayKey(7);break; case 7:LCD_DisplayKey(8);break; case 8:LCD_DisplayKey(9);break; case 9:LCD_DisplayKey(10);break; } }}[C] 纯文本查看 复制代码
这是按键扫描程序:[C] 纯文本查看 复制代码
#include "keyboard.h"#include"Config.h"void keyPort_init(){ P1SEL = 0x00; //P1普通IO功能 P1DIR = 0x0f; //P0~p3设置为输出模式,p4~p7为输入 P3SEL = 0x00; //P3口普通IO功能 P3DIR = 0xFF; //P3口输出模式,驱动led}//4*4矩阵键盘扫描程序,检测第一列S6~S18 uchar keyscan(void){ uchar temp; /*************************扫描第1行***********************/ P1OUT=0x0e; temp=P1IN&0xf0;// if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=0; break; case 0xd0: key=1; break; case 0xb0: key=2; break; case 0x70: key=3; break; } } } /*************************扫描第2行***********************/ P1OUT=0x0d; temp=P1IN&0xf0; if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=4; break; case 0xd0: key=5; break; case 0xb0: key=6; break; case 0x70: key=7; break; } } } P1OUT=0x0b; temp=P1IN&0xf0; if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=8; break; case 0xd0: key=9; break; case 0xb0: key=10; break; case 0x70: key=11; break; } } } P1OUT=0x07; temp=P1IN&0xf0; if(temp!=0xf0) // 说明高四位有低电平输入 { delay_ms(10); if(temp!=0xf0) { temp=P1IN&0xf0; switch(temp) { case 0xe0: key=12; break; case 0xd0: key=13; break; case 0xb0: key=14; break; case 0x70: key=15; break; } } } return key; }[C] 纯文本查看 复制代码
这是液晶显示:#include"12864.h"#include"Config.h"//*************************************************************************//初始化IO口子程序//*************************************************************************void Port_init(){ P4SEL = 0x00; P4DIR = 0xFF; P5SEL = 0x00; P5DIR|= BIT0 + BIT1 + BIT5 + BIT6 + BIT7; PSB_SET; //液晶并口方式 RST_SET;}//***********************************************************************//显示屏命令写入函数//***********************************************************************void LCD_write_com(unsigned char com) { RS_CLR; RW_CLR; EN_SET; DataPort = com; delay_ms(5); EN_CLR;}//***********************************************************************//显示屏数据写入函数//***********************************************************************void LCD_write_data(unsigned char data) { RS_SET; RW_CLR; EN_SET; DataPort = data; delay_ms(5); EN_CLR;}//***********************************************************************//显示屏清空显示//***********************************************************************void LCD_clear(void) { LCD_write_com(0x01); delay_ms(5);}//***********************************************************************//函数名称:DisplayCgrom(uchar hz)显示CGROM里的汉字//***********************************************************************void DisplayCgrom(uchar addr,uchar *hz){ LCD_write_com(addr); delay_ms(5); while(*hz != ' ') { LCD_write_data(*hz); hz++; delay_ms(5); }} //***********************************************************************//显示屏单字符写入函数//***********************************************************************void LCD_write_char(unsigned char x,unsigned char y,unsigned char data) { if (y == 0) { LCD_write_com(0x80 + x); //第一行显示 } if(y == 1) { LCD_write_com(0x90 + x); //第二行显示 } if (y == 2) { LCD_write_com(0x88 + x); //第三行显示 } if(y == 3) { LCD_write_com(0x98 + x); //第四行显示 } delay_ms(1); LCD_write_data(data); delay_ms(1);}//****************************************************************//函数名称:Display()显示测试结果//****************************************************************void Display(void){ DisplayCgrom(0x80,"欣世纪电子欢迎你"); DisplayCgrom(0x88,"旺:jingyehanxing"); DisplayCgrom(0x90,"www.avrgcc.com "); DisplayCgrom(0x98,"电话057487470625");}//***********************************************************************//显示屏初始化函数//***********************************************************************void LCD_init(void) { LCD_write_com(FUN_MODE);//显示模式设置 delay_ms(5); LCD_write_com(FUN_MODE);//显示模式设置 delay_ms(5); LCD_write_com(CURSE_DIR);//显示模式设置 delay_ms(5); LCD_write_com(DISPLAY_ON);//显示开 delay_ms(5); LCD_write_com(CLEAR_SCREEN);//清屏 delay_ms(5);}//***********************************************************************// 液晶显示界面初始化//***********************************************************************void LCD_Desk(void){ LCD_clear(); DisplayCgrom(0x80,"苏职大欢迎你"); DisplayCgrom(0x90,"当前键值是:"); delay_ms(250);}
一周热门 更多>