找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 24363|回复: 27
收起左侧

Pic单片机C语言编程教程(共29页pdf)

  [复制链接]
ID:276925 发表于 2018-1-17 12:00 | 显示全部楼层 |阅读模式
简单一份PIC C语言的编程开发

初谈如何从汇编转向 PICC

因为 HIDE-TECH PICC 破解版很多,所以 HIDE PICC 有比其它 PICC 有更多的用户,虽然
它的编译效率不是最好。最好的是 CCS,但没破戒版。 。 。 ,不过用 HIDE PICC 精心安排函数
一样可以获得很高的编译效率,还是人脑是第一的。
当然要求你要有 C 语言的基础。PICC 不支持 C++,这对于习惯了 C++的朋友还得翻翻 C 语
言的书。
C 代码的头文件一定要有
#include<pic.h>
它是很多头文件的集合,C 编译器在 pic.h 中根据你的芯片自动栽入相应的其它头文件。
这点比汇编好用。
载入的头文件中其实是声明芯片的寄存器和一些函数。
顺便摘抄一个片段:
static volatile unsigned char TMR0 @ 0x01;
static volatile unsigned char PCL @ 0x02;
static volatile unsigned char STATUS @ 0x03;
可以看出和汇编的头文件中定义寄存器是差不多的。如下:
TMR0 EQU 0X01;
PCL   EQU 0X02;
STATUS EQU 0X03;
都是把无聊的地址定义为大家公认的名字。
一:怎么附值?
如对 TMR0 附值:
汇编中:MOVLW 200;
MOVWF TMR0;当然得保证当前页面在 0,不然会出错。
  
C 语言:TMR0=200;//无论在任何页面都不会出错。
可以看出来 C 是很直接了当的。并且最大好处是操作一个寄存器时候,不用考虑页面的问
题。一切由 C 自动完成。
二:怎么位操作?
汇编中的位操作是很容易的。在 C中更简单。
C 的头文件中已经对所有可能需要位操作的寄存器的每一位都有定义名称:
如:PORTA 的每一个 I/O口定义为:RA0、RA1、RA2。 。 。RA7。
OPTION 的每一位定义为:PS0、PS1、PS2 、PSA 、T0SE、T0CS、INTEDG 、RBPU。
可以对其直接进行运算和附值。
如:
RA0=0;
RA2=1;
在汇编中是:
BCF PORTA,0;
BSF PORTA,2;
可以看出 2者是大同小异的,只是 C 中不需要考虑页面的问题。
三:内存分配问题:
在汇编中定义一个内存是一件很小心的问题,要考虑太多的问题,稍微不注意就会出错。比如 16 位的运算等。用 C就不需要考虑太多。
下面给个例子:
16 位的除法(C 代码) :
INT X=5000;
INT Y=1000;
INT Z=X/Y;
而在汇编中则需要花太多精力。
给一个小的 C 代码,用 RA0 控制一个LED闪烁:
#include<pic.h>
void main(){
                       int x;   
                        CMCON=0B111;    file://关掉 A口比较器,要是有比较器功能的话。
                         ADCON1=0B110;           file://关掉 A/D功能,要是有 A/D功能的话。
                           TRISA=0;               file://A口全为输出。
                          loop:RA0=!RA0;            
                           for(x=60000;--x;){;}            file://延时
                         goto loop;
}
说说 RA0=!RA0 的意思:PIC 对 PORT 寄存器操作都是先读取----修改----写入。
上句的含义是程序先读 RA0,然后取反,最后把运算后的值重新写入 RA0,这就实现了闪
烁的功能。

0.png 0.png

完整的pdf格式文档51黑下载地址(共29页):
Pic单片机C语言编程.pdf (200.52 KB, 下载次数: 576)

评分

参与人数 2黑币 +10 收起 理由
清闲的风 + 5 很给力!
1111开 + 5

查看全部评分

回复

使用道具 举报

ID:316641 发表于 2018-5-16 00:41 | 显示全部楼层
来玩玩
回复

使用道具 举报

ID:234846 发表于 2018-5-18 23:02 来自手机 | 显示全部楼层
下来看看,谢谢!
回复

使用道具 举报

ID:316641 发表于 2018-5-26 18:57 | 显示全部楼层
下载看看吧
回复

使用道具 举报

ID:212173 发表于 2018-6-7 15:28 | 显示全部楼层
下载看看,谢谢楼主
回复

使用道具 举报

ID:72238 发表于 2018-9-19 20:23 | 显示全部楼层
下来看看,谢谢!
回复

使用道具 举报

ID:154839 发表于 2018-11-7 13:43 | 显示全部楼层
谢谢楼主热心啦
回复

使用道具 举报

ID:422426 发表于 2018-11-7 16:34 | 显示全部楼层
赞一个!
回复

使用道具 举报

ID:430658 发表于 2018-11-21 16:40 | 显示全部楼层
谢谢,奉献!
回复

使用道具 举报

ID:336233 发表于 2018-12-29 15:12 | 显示全部楼层

谢谢,奉献!
回复

使用道具 举报

ID:6428 发表于 2019-1-5 15:01 | 显示全部楼层
谢谢分享,刚入门
回复

使用道具 举报

ID:4302 发表于 2019-8-26 14:53 | 显示全部楼层
学习 一下
回复

使用道具 举报

ID:558811 发表于 2019-11-14 14:46 | 显示全部楼层
我原来用汇编的,现在学学c尝试一下
回复

使用道具 举报

ID:150142 发表于 2019-11-27 18:31 | 显示全部楼层
好资料   收藏
回复

使用道具 举报

ID:162962 发表于 2020-5-9 10:46 | 显示全部楼层
下载学习。谢谢分享!
回复

使用道具 举报

ID:663502 发表于 2020-6-17 16:31 | 显示全部楼层
谢谢分享,好好学习
回复

使用道具 举报

ID:86554 发表于 2020-9-23 11:06 | 显示全部楼层
下载看了一下,感觉用处一般!
回复

使用道具 举报

ID:319585 发表于 2020-11-14 09:25 | 显示全部楼层
这个还不错的,需要看看
回复

使用道具 举报

ID:388361 发表于 2021-1-13 12:18 | 显示全部楼层
寫的不錯,要應用一下,裡面的技巧。
回复

使用道具 举报

ID:196009 发表于 2021-1-13 16:26 | 显示全部楼层
写的太好了,值得学习
回复

使用道具 举报

ID:390067 发表于 2021-1-18 14:27 | 显示全部楼层
谢谢,奉献!
回复

使用道具 举报

ID:652660 发表于 2021-4-25 16:46 来自手机 | 显示全部楼层
学pic单片机C语言,请推荐一本书
回复

使用道具 举报

ID:891026 发表于 2021-5-2 22:53 | 显示全部楼层
为什么PIC教学视频这么少啊
回复

使用道具 举报

ID:203380 发表于 2021-5-17 16:32 | 显示全部楼层
不错  谢谢楼主分享   已下载   学习中
回复

使用道具 举报

ID:971262 发表于 2021-10-11 22:12 | 显示全部楼层
想下载,对比下PIC和c51的区别,看看
回复

使用道具 举报

ID:974131 发表于 2021-10-22 14:10 | 显示全部楼层
写的太好了,值得学习
回复

使用道具 举报

ID:637294 发表于 2024-5-31 16:36 | 显示全部楼层
很有用的一份资料
回复

使用道具 举报

ID:1129379 发表于 2024-7-21 17:39 | 显示全部楼层
IS  GOOD
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表