工控上位机编程学习技巧
一、为何要学编程?每个人的动机不一样。大致有:
1、为了找个好工作,或为了有更好的机会和更好的发展。2、看到别人超厉害,所以也想学。3、实际工作中很多场合需要。4、从小就立志做个程序员,做软件工程师。5、振兴中国的软件事业。二、如何学编程?1、多看好书。差书误人子弟,不但浪费时间和精力,而且打击人的信心,差书使人很久都不会,会让人怀疑自已的学习能力。 现在的书很多,但好书很少,特别是被大家公认很有价值的好书更是少之又少。历经多年时间考验和市场风雨的残酷洗礼而仅存的巨著,更是极其稀少。中国历史上文学小说类书本多如牛毛,但仅存的巨著,也只不过<<红楼梦>>等四本名著而已,编程方面也是如此。2、多动手。这一点很重要。而且特别重要。“纸上得来终觉浅,绝知此事要躬行。”陆游的千古名句说的就是这个道理,并且同样适合于编程方面。三、用什么语言最好?这主要取决于应用领域,每种语言都有自已的长处和不足。
1、汇编语言和C语言在单片机及工控领域用较多。另外C语言也是一种通用语言,是学C++/C#的起点。2、C++系统编程等多个方面,最常用的编译器是VC。3、C#/Java网络编程方面新兴的。4、VB通用。5、还有Delphi等。。。。。。个人建议:从未编过程的,就从学VB开始。有基础的可直接学C++/VC。四、有什么好书?
几年前,台湾著名技术作家侯捷先生曾经写过一篇影响很大的书评文章,叫做《MFC四大天王》。文章的意思是说在MFC的浩瀚书海中,只要认真研读和学习其中四本,就可以“五岳归来不看山”。侯先生虽以MFC为例,但是这个道理却同样适合于MFC之外的很多具体技术领域,这不能不说是一个有趣的统计现象。
通常在某一个具体细分的技术领域,会自然而然地出现3-5本顶级著作,它们彼此互相配合,形成一个完整的体系。对于学习者来说,只需要认真研读这几本书,就足以升堂入室。我乐于将这种现象称为“四书五经现象”。对于读者来说,如果能够找到该领域中的“四书五经”,则无论在时间上还是金钱上都是最经济的选择。好书几本,胜过烂书几捆,这个体会想必大家都有。在此,帮助大家遴选各个技术领域里的“四书五经”。
编程的书可谓汗牛充栋,其中经典也是不泛其数,但绝大多数的过来人,都一致认为,要想很快地入门并尽快地投入到编程实践中,只要其中的四到五本也就够了,即只看经典中的经典,圣经级的书就可以了。
所谓活到老学到老,程序员是个终身学习的职业,要不断地看书,直到放弃编程的那一天。所以,您要读的好书也绝非以下推荐的这些书哟,呵呵。
一句话,由于我们的时间、精力、金钱都是有限的,如何以最小的代价换得最大的收获。五、经典好书分类热销榜1、java
java编程语言(第三版)---java四大名著----James Gosling(java之父)java编程思想(第2版)----java四大名著----Bruce Eckeljava编程思想(第3版)----java四大名著----------------Bruce Eckeljava 2核心技术 卷I:基础知识(原书第7版)---java四大名著-----Cay Horstmannjava 2核心技术 卷II:高级特性(原书第7版)----java四大名著-----Cay HorstmannEffective java中文版------java四大名著--------Joshua Bloch精通Struts:基于MVC的java Web设计与开发---孙卫琴精通Hibernate:java对象持久化技术详解---孙卫琴Tomcat与java Web开发技术详解------------孙卫琴java与模式------------------------------阎宏2、C#
C#程序设计-------Charles Petzold“windows编程泰山北斗”---C#语言“倚天屠龙双剑”C# Primer中文版--------Stanley B.Lippman---C#语言“倚天屠龙双剑”.NET框架程序设计(修订版)--------Jeffrey Richter“windows编程泰山北斗”---.NET平台四大天王C# Windows程序设计----------Charles Petzold“windows编程泰山北斗”------.NET平台四大天王.NET程序设计技术内幕-------------Jeff Prosise---.NET平台四大天王.NET本质论--第1卷:公共语言运行库(中文版)--------Chris Sells---.NET平台四大天王3、C++
C++程序设计语言(特别版)---c++八大金刚----Bjarne Stroustrup“C++之父”C++ Primer (第3版)中文版----c++八大金刚---Stanley B.LippmanC++ Primer(第4版)中文版----c++八大金刚---Stanley B.LippmanC++标准程序库—自修教程与参考手册--c++八大金刚--Nicolai M.JosuttisC++语言的设计和演化-----c++八大金刚----Bjarne Stroustrup“C++之父”深度探索C++对象模型---c++八大金刚----Stanley B.LippmanEssential C++中文版---c++八大金刚---Stanley B.LippmanEffective C++中文版 2nd Edition-----c++八大金刚------Scott MeyersMore Effective C++中文版----c++八大金刚------Scott MeyersC++编程思想(第2版)第1卷:标准C++导引--------Bruce EckelC++编程思想(第2版)第2卷:实用编程技术 --------Bruce EckelC++程序设计--------------------------谭浩强C++ 程序设计教程(第2版)--------------钱能C++ Primer Plus(第五版)中文版---Stephen Prata广博如四库全书The c++ programming language、c++ Primer深奥如山重水复Inside the c++ object model程序库大全The c++ standard libray工程经验之积累Effective c++、More Effective c++、Exceptional c++C++八大金刚:
1、Essentital c++---lippman---C++之父,旁枝暂略,主攻核心,轻薄短小,初学者2、The c++ programming language----C++之父,技术权威,用词深峻,思想深远,c++百科全书代表,圣经。3、c++ Primer----lippman---纵横书市十数年,c++最佳教本,c++百科全书代表。4、Inside the c++ object model-----lippman----揭示c++底层,非常好,非常难。5、Effective c++-----通过50个编程实例,展示专家经验,行文有趣,深处浅出。6、More Effective c++----通过35个编程实例,展示专家经验,行文有趣,深处浅出。7、The c++ standard libray---c++标准库的百科全书。8、设计模式:可复用面向对象软件的基础------good!4、cC程序设计语言(第2版·新版)---C语言“倚天屠龙双剑”---Brian W.Kernighan“C语言之父” C Primer Plus中文版(第五版)--------C语言“倚天屠龙双剑”---Stephen Prata C程序设计(第三版)---------------------------谭浩强 C语言大全(第四版)---------------------------HERBERT SCHILDT C语言接口与实现:创建可重用软件的技术-------------DAVID R.HANSON C语言参考手册(原书第5版)--------------------------Samuel P.Harbison C程序设计教程---------------------------------H.M.Deitel/P.J.Deitel C陷阱与缺陷-----------------------------------Andrew Koenig5、VB
Visual Basic .NET技术内幕-----VB编程三剑客-----------Francesco Balena“vb首席大师”Windows程序设计-Visual Basic.NET语言描述--VB编程三剑客-----Charles Petzold“windows编程泰山北斗”---.NET框架程序设计:Visual Basic.NET语言描述--VB编程三剑客--Jeffrey Richter“windows编程泰山北斗”---Visual Basic 6编程技术大全------------------------Francesco Balena“vb首席大师”Visual Basic.NET 从入门到精通-------------------------Petroutsos,E.高级VISUAL BASIC编程-----------------------------------MATTHEW CURLAND6、Delphi
Inside VCL(深入核心——VCL架构剖析)----------李维Delphi 7高效数据库程序设计--------------李维面向对象开发实践之路(Delphi版)----------李维7、VC
Windows 程序设计(第5版)-----Charles Petzold“windows编程泰山北斗”---Windows核心编程----------Jeffrey Richter“windows编程泰山北斗”---Windows高级编程指南---------Jeffrey Richter“windows编程泰山北斗”---深入浅出MFC(第二版)-----“MFC四大天王”-------侯捷MFC Windows程序设计(第2版)---MFC四大天王”---------Jeff ProsiseVisual C++ 技术内幕(第4版)--MFC四大天王”--------David Kruglinski深入解析MFC-------------MFC四大天王”-----------George ShepherdVisual C++.NET 技术内幕(第6版)-MFC四大天王”------------David Kruglinski8、vf
Visual Foxpro程序设计参考手册-------------------张洪举专家门诊——Visual FoxPro开发答疑160问-------------------张洪举Visual FoxPro 6.0/9.0解决方案与范例大全-------------------张洪举Visual FoxPro软件开发模式与应用案例-------------------张洪举9、黑客
应用密码学(协议算法与C源程序-----------Bruce Schneier网络信息安全的真相-----------Bruce Schneier黑客大曝光:网络安全机密与解决方案(第5版)--------STUART MCCLURE软件加密技术内幕------------看雪学院加密与解密——软件保护技术与完全解决方案------------看雪学院加密与解密(第二版)--------段钢10、汇编
Intel微处理器结构、编程与接口(第六版)---------Barry B. Brey80*86、奔腾机汇编语言程序设计---------Barry B. BreyWindows环境下32位汇编语言程序设计(第2版)-----------罗云彬IBM-PC汇编语言程序设计(第2版) 本书是国内优秀教材--------沈美明 温冬婵IBM PC汇编语言程序设计(第五版) 这本书籍是国外优秀教材-------PETER ABEL著,沈美明 温冬蝉译11、驱动开发
Windows WDM设备驱动程序开发指南------------------------------------ Chris CantWindows 2000/XP WDM设备驱动程序开发(第2版)--------------------------武安河WINDOWS 2000/XP WDM设备驱动程序开发-------------------------------- 武安河12、网络
计算机网络第四版中文版----网络编程三剑客--------------Andrew S.TanenbaumTCP/IP详解3卷本--------------------Richard Stevens----网络编程三剑客UNIX网络编程2卷本--------------------Richard Stevens----网络编程三剑客用TCP/IP进行网际互联-----------Douglas E. Comer高级TCP/IP编程-------------------Jon C. SnaderC++网络编程-----------------------Douglas SchmidtUNIX环境高级编程(第2版)--------------------Richard Stevens13、算法
计算机程序设计艺术-------Donald.E.Knuth----------算法“倚天屠龙”双剑算法导论-----------------Thomas H. Cormen--------算法“倚天屠龙”双剑离散数学及其应用----------Kenneth H.Rosen具体数学—计算机科学基础--------Donald.E.Knuth14、图形编程
Windows 图形编程----------------FENG YUAN --图形编程界的Charles Petzold之书
15、数据结构
数据结构 C++语言描述》58.00(Data Structures C++) William Ford,William Topp 刘卫东 沈官林数据结构算法与应用-C++语言描述》49.00Sartej Sahni 汪诗林 孙晓东等机械工业出版社16、软件工程
设计模式--可复用面向对象软件的基础重构—改善既有代码的设计17、操作系统深入理解计算机系统(修订版)-------RANDAL E.BRYANT18、Unix
UNIX 网络编程 卷I 套接字联网API(英文版 第三版)UNIX 编程艺术UNIX环境高级编程(英文影印第2版)-----UNIX编程“圣经UNIX环境高级编程(英文影印版)(第2版)UNIX环境高级编程(第2版)UNIX环境高级编程(第2版)---UNIX编程“圣经UNIX网络编程 第1卷:套接口API(第3版)UNIX网络编程卷2:进程间通信(第2版)(英文影印版)UNIX 网络编程(第二版)第2卷:进程间通信UNIX编程环境UNIX 网络编程 卷I 套接字联网API(英文版 第三版)UNIX系统编程UNIX环境高级编程UNIX 网络编程 卷I 套接字联网API(英文版 第三版)UNIX网络编程 第1卷:套接口API(第3版)UNIX 网络编程(第二版)第2卷:进程间通信UNIX网络编程卷2:进程间通信(第2版)(英文影印版)UNIX 网络编程(第2版)第1卷:套接口API和X/Open 传输接口APIUNIX网络编程(卷1):连网的APLS:套接字与XTI(第二版)(英文影印版)UNIX环境高级编程Unix技术手册19、Linux
Linux内核设计与实现Linux内核完全注释LINUX内核分析及编程GNU/Linux 编程指南(第二版)Linux设备驱动程序(第三版)嵌入式设计及Linux驱动开发指南——基于ARM 9处理器Linux设备驱动程序 第三版(英文影印版)Linux内核设计与实现(第2版)Linux内核设计与实现(英文影印版)(第2版)Linux技术手册20、游戏编程
Windows游戏编程大师技巧(第二版)游戏之旅--我的编程感悟OpenGL超级宝典:第三版OpenGL编程指南(第四版)java 游戏高级编程J2ME手机游戏编程入门游戏之旅——我的编程感悟游戏开发中的人工智能(英文影印版)3D游戏:卷2 动画与高级实时渲染技术面向对象的游戏开发java 游戏高级编程3D游戏编程大师技巧游戏编程精粹面向对象的游戏开发3D游戏 卷1:实时渲染与软件技术3D游戏 卷2:动画与高级实时渲染技术…J2ME手机游戏编程入门Direct3D游戏编程入门教程(第二版)…21、移动开发
Windows Mobile手机应用开发SYMBIAN OS C++手机应用开发Windows Mobile手机应用开发--傅曦 齐宇 徐骏SYMBIAN OS C++手机应用开发 (第2卷)------------------RICHARD HARRISON著,周良忠 王伯欣译SYMBIAN OS C++手机应用开发---------------RICHARD HARRISON著,周良忠译Windows CE.net内核定制及应用程序开发---------周毓林 宁杨 陆贵强 付林林嵌入式系统Windows CE 开发技巧与实例--傅曦Palm OS编程实践---绝版22、单片机
单片机轻松入门----------------------------------周坚(平凡老师)单片机典型模块设计实例导航-----------------------求是科技例说8051----------------------------------------张义和陈敌北KEIL CX51 V7.0单片机高级语言编程与ΜVISION2应用实践-----徐爱钧单片机应用程序设计技术(修订版)--------------------周航慈8051单片机实践与应用-------------------------------吴金戎MCS-51系列单片机实用接口技术---------------------李华23、串并口通讯
Visual C++/Turbo C串口通信编程实践------------------龚建伟VISUAL BASIC与RS-232串行通信控制(最新版)----------范逸之24、电子
无线电识图与电路故障分析轻松入门(第二版)-------------------胡斌无线电元器件检测与修理技术轻松入门(第二版) -------------------胡斌图表细说电子技术识图-------------------胡斌图表细说电子元器件-------------------胡斌图表细说元器件及实用电路-------------------胡斌通过以下4个阶段的训练第一阶段:掌握一种编程语言
学习内容: 学习任意一种主流的编程语言,例如C++语言。学习目标: 熟练掌握一种语言的语法和基本的编程技巧。学习时间: 3个月左右注意事项: 编程语言和编程工具是两回事情,编程语言是指C++、Basic、Object Pascal等程序设计语言,它们是像汉语、英语一样的抽象的语法规则,编程工具是指Visual C++ 6.0、Visual Basic 6.0、Delphi 7.0等包括了源代码编辑器、程序编译器在内的集成化、可视化的软件开发工具。C++源程序可以在Visual C++ 6.0里编写,也可以在记事本里编写,而同一个C++源程序可以用Visual C++ 6.0编译、执行,也可以用C++ Builder 5.0 编译、执行,所以: C++ 不等于 Visual C++ 6.0第二阶段:掌握一种编程工具
学习内容: 学习任意一种主流的编程工具。注意编程工具要和第一阶段学习的编程语言一致,例如你学习的编程语言是C++,那么编程工具要选Visual C++ 6.0或者C++ Builder 5.0。学习目标: 熟练掌握这种编程工具基本用法,例如:菜单、组件、程序跟踪调试、编写Windows程序等。学习时间: 3个月左右注意事项: 这个阶段侧重编程工具的使用,同时进一步熟习编程语言,最后达到能熟练编写各种基本的Windows程序。第三阶段:掌握“算法与数据结构”这门课程
学习内容: 算法与数据结构,推荐许卓群的《数据结构》,高等教育出版社出版。学习目标: 熟练掌握各种常用的算法与数据结构学习时间: 4个月左右注意事项: 这是一门不可或缺的软件开发课程,曾经有一本经典计算机专业书籍叫做《数据结构+算法=程序》,这说明了数据结构和算法的重要性。它能帮我们建立良好的程序分析与设计能力。第四阶段:实现一个模拟的小型软件项目
学习内容: 软件项目的开发过程学习目标: 掌握软件项目的基本开发过程和方法学习时间: 4个月左右注意事项: 自己完成一个模拟的小型软件项目,强烈推荐做一个MIS(管理信息系统)软件,参考用书推荐“中小型信息管理系统开发实例系列丛书”,人民邮电出版社,它的例子详实有效,以它为基础再加以扩展,就可以做出实用的MIS软件来。此丛书包括多种开发工具,大家可以选择适合自己的:《VISUAL FOXPRO6.0 数据库系统开发实例导航》 《java数据库系统开发实例导航》 《VISUAL BASIC数据库系统开发实例导航》《VISUAL C++6.0数据库系统开发实例导航》 《ASP.NET数据库管理系统开发实例导航》 《DELPHI数据库系统开发实例导航》《POWERBUILDER 8.0数据库系统开发实例导航》。最后:将完成的模拟软件刻成光盘,作为自己的作品去面试,以此踏上自己光辉的职业程序员之路!
VC++之上位机编程
先简单介绍一下何为上下位机,在实际应用中,有时需要单片机采集数据并通过串口将数据传递至个人电脑,再由个人电脑收集数据,并对数据进行,分析处理,再通过串口将要操作的指令发送出去,单片机接收到后执行相对应的操作。
本节介绍全双工通信,类似于所讲的套接字编程,但由于单片机上没有windows系统,因此需要通过串口通信。上位机和下位机分别类似于网络编程的服务端和客户端,两者没有固定区分,并在一定情况下可以相互转化,也就是说单片机同样可以通过串口通信给个人电脑发送指令让其执行相应操作。
单片机作为下位机,对应的寄存器和编程内容不在此介绍,着重介绍个人电脑的上位机编程。
主要还是借助mfc的active控件——Mscomm控件
,我们新建一个对话框,
然后右击添加Active控件,
选择
,点击完成,随后打开类向导
为该控件定义一个CMscomm1类型的控制变量,随后都通过这个变量对控件进行操控。
接着介绍下该控件类主要的成员函数:
put_commPort(ComPort);//设置端口号,由于笔者采用电脑的com3口通信,所以这里设为3;
put_SThreshold(Sthreshold);若设置 Sthreshold 属性为 0(缺省值),数据传输事件不会产生 OnComm 事件。若设置 Sthreshold 属性为 1,当传输缓冲区完全空时,MSComm 控件产生 OnComm 事件,这里设为1;
put_RThreshold(Rthreshold);//当接收字符后,若 Rthreshold 属性设置为 0(缺省值)则不产生 OnComm 事件。这里设置 Rthreshold 为 1,接收缓冲区收到每一个字符都会使 MSComm 控件产生 OnComm 事件。
put_InputMode(1) //0(缺省)通过 Input 属性以文本方式取回数据,而这里设为1表示以二进制方式取回数据;
put_Settings("BBBB,P,D,S ")//BBBB 为波特率,P为奇偶校验,D为数据位数,S为停止位数。value 的缺省值是:"9600,N,8,1 ";
在设置完基本的属性值之后还必须得打开端口put_PortOpen(BOOL)函数,若BOOL为TRUE,则打开端口,若为FALSE,则关闭端口;
在打开端口后我们可以通过以下语句提醒端口状态
若成功打开则出现以下对话框;
在初次进行上位机编程的时候不可避免地会出现很多苦难,一开始,笔者对属性如下设置
结果发现跳出对话框
说明端口已被占用,后来用串口调试助手调至com3端口才成功,于是笔者又对属性索性全改成3结果发现,无论如何端口都不曾打开
回头再看通过断点一步步调试才发现只有端口值才需为3。emmmm,说明心急是要不得的。果然当属性设置正确后,程序理想化运行,配合下位机实验,发出的值成功返回,程序调通。
程序调通只是一小步,确意味着可以通过这个模块,写对应的程序,通过电脑控制单片机的每一个模块,也可以编写属于自己的串口调试小助手。光明的未来似乎触手可摸……
相关问答
程序员vc是啥意思?
ctrlc,ctrlv的意思。vc是程序员对自己的一种自嘲的行为,意思是一些技术比较低级的程序员写代码水平不高,只会ctrlc,ctrlv复制粘贴别人的代码。ctrlc,c...
怎么用vc++6.0编程使电脑黑屏若干时间-ZOL问答
中关村在线vivoX90Pro+举报笔记本电脑5人讨论7911次围观关注问题写回答讨论回答(5)umlqeyohfz换个版本有用(0)回复maoluhongjava数据...
可否使用VC++编程和西门子PLC通讯?为什么?
可以的...不过我没用过呵呵VC++和西门子PLC通讯这是组态软件WICC的事哦有一动态库:S7W95.DLL使用VC直接编程替代WINCC可以的...不过我没用过呵呵VC++...
win7用VC++6.0编程为何总有一个错误,是ErrorSpawningc1.ex...
win7与vc++6.0不兼容的,我的电脑也是win7装了vc++6.0不能用就装了xp虚拟机,再在虚拟机上装vc++6.0就好了很好用有用(0)回复dstxmeiljdxnVCShar...
可否使用VC++编程和西门子PLC通讯?为什么?
如果通信走得是USB转串口,协议还是串口类(如:ASTM系列)的话,还是可以使用的,如果通信协议也是USB的,那就用不到MSComm了。用VB写USB通信有点别扭,建议换VC...
电脑vc+怎么用?
VC+是微软公司推出的一款编程软件,在电脑上使用VC+需要进行以下步骤:使用VC+需要进行以下步骤VC+是一款编程软件,需要进行安装和配置才能使用。同时,使用VC+...
VB,C++,VC等等编程软件有什么不同呢?-懂得
VB是一种相对简单的编程语言,适合初学者学,虽然相对简单,但是如果加上API的话,编程Windows的程序是很合适的.C++是一种更加专业的语言,一般来说,大...
求vc编程,输入想,计算并输出下列分段函数f(x)的值,调用函数s...
[最佳回答]#include#include#includevoidmain(){doublex,y,temp;cin>>x;if(x==0){exit(0);cout
VC++怎样编程实现上位机与下位机的通信?
一般来说,测试上下位机通信。先使用工具测试你的下位机,完全通信成功后,在用来调试你的上位机。不然你话,你都不知道错误在哪里。加入下位机不是...一般来...
plc能用C语言编程吗?
可以因为PLC(ProgrammableLogicController)使用一种特殊的编程语言LadderLogic,不过现在大部分PLC也支持C语言编程,C语言编程是PLC的应用范围不断扩大的...