用C语言对PIC单片机编程MPLAB需要哪些附加软件?

[复制链接]
 楼主| splyc 发表于 2008-2-15 11:27 | 显示全部楼层 |阅读模式
我刚学习PIC不久,现在用MPLAB仿真调试汇编程序,想学习C语言编程,但不知道MPLAB需要附加那些软件才能支持C编程?比如:头文件等。到哪里去找啊?硬件仿真器多少钱?
一唯 发表于 2008-2-15 13:48 | 显示全部楼层

C编译器 PICC 9.50或更高版本。硬件仿真器ICD-2大约700RMB

例程:<br /><br />秒&nbsp;&nbsp;表<br />程序清单<br />//器件为PIC16F877<br /><br />#include&nbsp;&nbsp;&nbsp;&nbsp;&ltpic.h&gt<br />#include&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&ltmath.h&gt<br />//此程序实现计时秒表功能,时钟显示范围00.00~99.99秒,分辨度:0.01秒<br />unsigned&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s0,s1,s2,s3;<br />//定义0.01&nbsp;秒、0.1&nbsp;秒、1秒、10秒计时器<br />unsigned&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;s[4];<br />unsigned&nbsp;&nbsp;char&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;k&nbsp;,data&nbsp;,sreg;<br />unsigned&nbsp;&nbsp;&nbsp;int&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;i;<br />const&nbsp;&nbsp;&nbsp;&nbsp;table[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90};<br />//不带小数点的显示段码表<br />const&nbsp;&nbsp;&nbsp;&nbsp;table0[10]={0X40,0X79,0X24,0X30,0X19,0X12,0X02,0X78,0X00,0X10};<br />//带小数点的显示段码表<br />//TMR0初始化子程序<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmint()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;T0CS=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//TMR0工作于定时器方式<br />&nbsp;&nbsp;&nbsp;&nbsp;PSA=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//TMR0不用分频<br />&nbsp;&nbsp;&nbsp;&nbsp;T0IF=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清除TMR0的中断标志<br />&nbsp;&nbsp;&nbsp;&nbsp;T0IE=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//TMR0中断允许<br />}<br />//spi显示初始化子程序<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPIINIT()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;PIR1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPCON=0x30;<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPSTAT=0xC0;<br />//设置SPI的控制方式,允许SSP方式,并且时钟下降沿发送。与&quot;74HC595,当其<br />//SCLK从低到高跳变时,串行输入寄存器&quot;的特点相对应<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISC=0xD7;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//SDO引脚为输出,SCK引脚为输出<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISA5=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//RA5引脚置为输出,输出显示锁存信号<br />}<br />//系统其它部分初始化子程序<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;initial()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISB1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISB2=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISB4=1;<br />&nbsp;&nbsp;&nbsp;&nbsp;TRISB5=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//设置与键盘有关的各口的输入输出方式<br />&nbsp;&nbsp;&nbsp;&nbsp;RB1=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;RB2=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//建立键盘扫描的初始条件<br />}<br />//SPI传输数据子程序<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPILED(data)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPBUF=data;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//启动发送<br />&nbsp;&nbsp;&nbsp;&nbsp;do&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}while(SSPIF==0);<br />&nbsp;&nbsp;&nbsp;&nbsp;SSPIF=0;<br />}<br />//显示子程序,显示4位数<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dispaly()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;RA5=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//准备锁存<br />&nbsp;&nbsp;&nbsp;&nbsp;for(k=4;k&gt0;k--)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data=s[k-1];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(k==3)&nbsp;&nbsp;&nbsp;&nbsp;data=table0[data];//第二位需要显示小数点<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;&nbsp;&nbsp;&nbsp;data=table[data];<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPILED(data);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//发送显示段码<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;for(k=0;k&lt4;k++)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data=0xFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SPILED(data);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//连续发送4个DARK,使显示好看一些<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;RA5=1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//最后给锁存信号,代表显示任务完成<br />}<br />//软件延时子程序<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DELAY()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;for(i&nbsp;=&nbsp;3553;&nbsp;--i&nbsp;;)&nbsp;&nbsp;&nbsp;&nbsp;continue;<br />}&nbsp;&nbsp;&nbsp;&nbsp;<br />//键扫描子程序<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KEYSCAN()<br />{<br />while(1){&nbsp;&nbsp;&nbsp;&nbsp;<br />while(1)<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dispaly();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//调用一次显示子程序<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((RB5==0)||(RB4==0))&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DELAY();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//若有键按下,则软件延时<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((RB5==0)||(RB4==0))&nbsp;&nbsp;&nbsp;&nbsp;break;//若还有键按下,则终止循环扫描,返回<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />//等键松开子程序<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyrelax()<br />{<br />while(1){<br />&nbsp;&nbsp;&nbsp;&nbsp;dispaly();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//调用一次显示子程序<br />&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((RB5==1)&&(RB4==1))&nbsp;&nbsp;&nbsp;&nbsp;break;<br />&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//为防止按键过于灵敏,每次等键松开才返回<br />}<br />//系统赋值初始化子程序<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inizhi()<br />{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;s0=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;s[0]=s0;<br />&nbsp;&nbsp;&nbsp;&nbsp;s1=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;s[1]=s1;<br />&nbsp;&nbsp;&nbsp;&nbsp;s2=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;s[2]=s2;<br />&nbsp;&nbsp;&nbsp;&nbsp;s3=0x00;<br />&nbsp;&nbsp;&nbsp;&nbsp;s[3]=s3;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//s0=s1=s2=s3=0,并放入显示缓冲数组中<br />&nbsp;&nbsp;&nbsp;&nbsp;sreg=0x00;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//tmr0中断次数寄存器清0<br />}<br />//中断服务程序<br />void&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;interrupt&nbsp;&nbsp;&nbsp;&nbsp;clkint(void)<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;TMR0=0X13;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//对TMR0写入一个调整值。因为写入TMR0后接着的<br />//两个周期不能增量,中断需要3个周期的响应时间,<br />//以及C语言自动进行现场保护要消耗周期<br />&nbsp;&nbsp;&nbsp;&nbsp;T0IF=0;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//清除中断标志<br />&nbsp;&nbsp;&nbsp;&nbsp;CLRWDT();<br />&nbsp;&nbsp;&nbsp;&nbsp;sreg=sreg+1;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//中断计数器加1<br />&nbsp;&nbsp;&nbsp;&nbsp;if(sreg==40)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//中断次数为40后,才对S0,S1,S2,S3&nbsp;操作<br />&nbsp;&nbsp;&nbsp;&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sreg=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s0=s0+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(s0==10){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s0=0&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s1=s1+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(s1==10){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s1=0&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2=s2+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(s2==10){<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s2=0;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s3=s3+1;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(s3==10)&nbsp;&nbsp;&nbsp;&nbsp;s3=0&nbsp;&nbsp;&nbsp;&nbsp;;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />&nbsp;&nbsp;&nbsp;&nbsp;s[0]=s0;<br />&nbsp;&nbsp;&nbsp;&nbsp;s[1]=s1;<br />&nbsp;&nbsp;&nbsp;&nbsp;s[2]=s2;<br />&nbsp;&nbsp;&nbsp;&nbsp;s[3]=s3;<br />}<br />//主程序<br />main()<br />{<br />&nbsp;&nbsp;&nbsp;&nbsp;OPTION=0XFF;<br />&nbsp;&nbsp;&nbsp;&nbsp;tmint();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//TMR0初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;SPIINIT();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//spi显示初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;initial();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//系统其它部分初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;di();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//总中断禁止<br />while(1)&nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;inizhi();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//系统赋值初始化<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KEYSCAN();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//键扫描,直到开始键按下<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyrelax();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//等键松开<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ei();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//总中断允许<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TMR0=0X08;<br />KEYSCAN();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//键扫描直到停止键按下,在键扫描时有显示<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyrelax()&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//等键松开<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;di();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//总中断禁止<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KEYSCAN();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//键扫描到清0键按下,在键扫描时有显示&nbsp;&nbsp;&nbsp;&nbsp;<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;keyrelax()&nbsp;&nbsp;&nbsp;&nbsp;;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//等键松开<br />&nbsp;&nbsp;&nbsp;&nbsp;}<br />}<br />
499767 发表于 2008-2-16 17:38 | 显示全部楼层

mcc18官方C编译器

兰天白云 发表于 2008-2-16 17:53 | 显示全部楼层

编译器都要另加

  
hotpower 发表于 2008-2-17 00:30 | 显示全部楼层

哪位给个IAR FOR PIC的下载地址???想看看它和PICC有什么不同

  
ocon 发表于 2008-2-18 00:46 | 显示全部楼层

我一般用CCSC,因为它的帮助做得好。

  
ygl968 发表于 2013-9-17 10:17 | 显示全部楼层
收藏
pofu007 发表于 2013-9-18 09:08 | 显示全部楼层
还有IAR for pic的啊。
adccadcc 发表于 2013-9-20 11:07 | 显示全部楼层
好好看看
您需要登录后才可以回帖 登录 | 注册

本版积分规则

10

主题

19

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部