查看: 4366|回复: 31
|
用PIC做scientific calculator
[复制链接]
|
|
要如何开始? 可以用16F877A or 16F876A 吗? 用什么 C compiler 最适合?要能算floating point,log,和trigo function的。。。请各位帮帮忙,给意见,谢了!!! |
|
|
|
|
|
|
|
发表于 23-6-2008 07:59 AM
|
显示全部楼层
原帖由 extreme2550 于 22-6-2008 11:53 PM 发表
要如何开始? 可以用16F877A or 16F876A 吗? 用什么 C compiler 最适合?要能算floating point,log,和trigo function的。。。请各位帮帮忙,给意见,谢了!!!
PICMCU: 18F4520, 18F4620 之类大容量的MCU,或PIC24, PIC32,
但是PIC16F就比较难用, RAM太小了。。。
建议: CCS C
支持函数:
abs( ),cosh( ),labs( ),sin( )
acos( ),div( ),ldexp( ),sinh( ),
asin( ),exp( ),ldiv( ),sqrt( ),
atan( ),fabs( ),log( ),tan( )
atan2( ),floor( ),log10( ),tanh( )
ceil( ),fmod( ),modf( ),
cos( ),frexp( ),pow( ) |
|
|
|
|
|
|
|
楼主 |
发表于 23-6-2008 03:12 PM
|
显示全部楼层
原帖由 pic 于 23-6-2008 07:59 AM 发表
PICMCU: 18F4520, 18F4620 之类大容量的MCU,或PIC24, PIC32,
但是PIC16F就比较难用, RAM太小了。。。
建议: CCS C
支持函数:
abs( ),cosh( ),labs( ),sin( )
acos( ),div( ),ldexp( ) ...
谢谢pic的回复
18F4520 & 18F4620 的architecture 都和 16F877A 差不多对吗?CCS C compiler 在它的网站上都只是提供demo版本(2k memory size & 30days expiry date)。。。那我能不能用?还是一定要买full version才能完成我的project? |
|
|
|
|
|
|
|
发表于 23-6-2008 06:08 PM
|
显示全部楼层
原帖由 extreme2550 于 23-6-2008 03:12 PM 发表
谢谢pic的回复
18F4520 & 18F4620 的architecture 都和 16F877A 差不多对吗?CCS C compiler 在它的网站上都只是提供demo版本(2k memory size & 30days expiry date)。。。那我能不能用?还是一定要买fu ...
18F在Floating point上比16F优。
除非你的code很复杂, 不然2K勉强够的。 |
|
|
|
|
|
|
|
楼主 |
发表于 24-6-2008 01:23 AM
|
显示全部楼层
原帖由 pic 于 23-6-2008 06:08 PM 发表
18F在Floating point上比16F优。
除非你的code很复杂, 不然2K勉强够的。
那么如果用MPLAB C 或mikroC 可以吗?都一样的是吗?要如何开始?我之前学过C 和学过用assembly language来program PIC,但要如何用C 来program PIC我就一窍不通 。。。要先了解什么?有什么reference/books 可以介绍我来读吗?thanksss
[ 本帖最后由 extreme2550 于 24-6-2008 01:29 AM 编辑 ] |
|
|
|
|
|
|
|
发表于 24-6-2008 08:39 AM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 25-6-2008 01:01 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 25-6-2008 02:42 PM
|
显示全部楼层
|
|
|
|
|
|
|
楼主 |
发表于 25-6-2008 03:11 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 25-6-2008 04:13 PM
|
显示全部楼层
|
|
|
|
|
|
|
发表于 26-6-2008 01:37 AM
|
显示全部楼层
#3
MPLab IDE 是由microchip研发的开发工具,将MPLab IDE与C Compiler一起并用能提升source code开发时间。
如何开始?
必须在MPLab IDE里头开一个project, 循序如下
1)Open MPLab IDE
2)Project > ProjectWizard > Next
3)Choose a microcontrollermodel
4)At [Active Toolsuite]box, choose [HI-TECH PICC-Lite Toolsuite]
5)Choose a location forproject folder and project file
6)Next > Next >Finish
如果成功, 左边将有一个project windows, [projectname.mcw]
接下来就是必须开一个source file,
File > New
银幕会有一个可以输入文字的windows. 将它储存, filename.c
之后就将 filename.c 嵌入project里:
File > Add New File To Project
选 filename.c
在 [projectname.mcw] 的windows里的[sourcefile]folder里将出现 filename.c , doubleclick 此file
之前空白,可以输入文字的windows将在次出现. 这里就是你写原码的地方啦.
原码的整体如下
#include<pic.h>
main()
{
//your coding
}
接着就是compile 和 debug 了....
如果成功compile, 另一个windows 将弹出并显示microcontroller的资料, 如memory usage等等....
看到这windows 就代表成功了 |
评分
-
查看全部评分
|
|
|
|
|
|
|
发表于 14-7-2008 09:28 PM
|
显示全部楼层
原帖由 extreme2550 于 24-6-2008 01:23 AM 发表
那么如果用MPLAB C 或mikroC 可以吗?都一样的是吗?要如何开始?我之前学过C 和学过用assembly language来program PIC,但要如何用C 来program PIC我就一窍不通 。。。要先了解什么?有什么reference/books 可以介绍我来读吗?thanksss
http://www.scribd.com/doc/886920/PICmicro-MCU-C-An-introduction-to-programming-The-Microchip-PIC-in-CCS-C
我找到一本 |
评分
-
查看全部评分
|
|
|
|
|
|
|
发表于 16-7-2008 10:01 AM
|
显示全部楼层
Nigel Gardner 的那本书是最适合初学者的一本CCS C 入门的书。
网络有很多盗版。。。
有钱的话, 去买一本支持作者。 |
|
|
|
|
|
|
|
楼主 |
发表于 18-7-2008 10:29 PM
|
显示全部楼层
谢了BillGates兄 这本书不错。。。后来发现,其实网上也有很多类似的盗版书,都是市面上找不到的 |
|
|
|
|
|
|
|
发表于 19-7-2008 04:21 PM
|
显示全部楼层
原帖由 extreme2550 于 18-7-2008 10:29 PM 发表
谢了BillGates兄 这本书不错。。。后来发现,其实网上也有很多类似的盗版书,都是市面上找不到的
我也是菜鳥
最近才開始玩
發覺蠻有趣的
所以找了很多書來參考
希望大家有用 |
|
|
|
|
|
|
|
楼主 |
发表于 7-8-2008 08:35 PM
|
显示全部楼层
想问关于c programming (for PIC 18F),有什么方法,就像我们平时用scientific calculator,type进equation后,比如说34 + 23 - 46 X 2,然后LCD就会显示34 + 23 - 46 X 2,然后我们按 “=” 键时,就会显示-35。就是说我所输入的equation将会被evaluate 然后计算出来,而不是像普通的计算机,从34到+, 然后23,然后 -,到最后才 X2 一个一个算??各位帮帮忙啊。。。 |
|
|
|
|
|
|
|
发表于 9-8-2008 09:10 AM
|
显示全部楼层
原帖由 extreme2550 于 7-8-2008 08:35 PM 发表
想问关于c programming (for PIC 18F),有什么方法,就像我们平时用scientific calculator,type进equation后,比如说34 + 23 - 46 X 2,然后LCD就会显示34 + 23 - 46 X 2,然后我们按 “=” 键时,就会显示-35。就是 ...
你输入的是很多variable,还有Operator,先存入, 按‘=’ 时‘ 才处理, 先乘除,后加减。 |
|
|
|
|
|
|
|
楼主 |
发表于 27-8-2008 06:45 AM
|
显示全部楼层
原帖由 pic 于 9-8-2008 09:10 AM 发表
你输入的是很多variable,还有Operator,先存入, 按‘=’ 时‘ 才处理, 先乘除,后加减。
想问,我现在用着PIC18F452做普通的计算机,source code是用你介绍的Proteus 里的code。但奇怪的是,问什么有时候像显示的答案会有乱码?比如说,324817 X 2 = 650-*+,会有-*+的出现?而且我想问PIC18能算到几个小数点?能用double吗? |
|
|
|
|
|
|
|
发表于 31-8-2008 07:31 AM
|
显示全部楼层
原帖由 extreme2550 于 27-8-2008 06:45 AM 发表
但奇怪的是,问什么有时候像显示的答案会有乱码?比如说,324817 X 2 = 650-*+,会有-*+的出现?
有虫吧。。。
想问PIC18能算到几个小数点?能用double吗?
要用32 bit float,
能算到几个小数点我没试过, 4个应该可以。
有时候, 要精确, 可以用Int32, 然后在显示时自己加小数点。
如 123.45678 = 其实是12345678/100000
显示12345678, 但自己+ 小数点变成 123.45678
会用很多RAM,我不知道适用于你吗, 但这是其中一种方法。 |
|
|
|
|
|
|
|
楼主 |
发表于 31-8-2008 05:46 PM
|
显示全部楼层
|
|
|
|
|
|
| |
本周最热论坛帖子
|