pic单片机编程实例
Ⅰ 请教高手PIC单片机乘除法及运算的编程
原理很简单,但程序很复杂,最原始也是最准确的方法,二进制移位乘法和除法运算,还要特别注意,一般人不会考虑,除数永远大于相同位数值。
Ⅱ PIC单片机c语言程序设计实例精粹的介绍
《PIC单片机C语言程序设计实例精粹》以应用和实用为目标,通过实际工程实例,介绍了PIC单片机C程序设计的流程、方法与技巧。全书共16章,首先简要介绍了PIC系列产品、硬件结构、C语言编程基础,以及常用开发工具;然后选择了13个工程实例,以“设计思路分析+硬件电路设计+软件设计与程序注释”的主要形式,讲解了PIC单片机在智能仪器仪表、数据采集与测量、网络传输与通信、消费电子领域应用开发的技术和技巧。
Ⅲ PIC单片机编程的问题 刚学 不太懂
你好,首先我没用过MAPLAB IDE,我不知道它是否支持你这样写程序,如果用我现在用的仿真器,这段程序是无法编译的,先不谈语法,这段程序无头文件无程序入口。你去找下MAPLAB IDE的错误讯息,会告诉你ERROR152 129分别代表什么。上面显示的是,你这段程序除了伪代码段从第四行开始其他都错了,我只看出最后一行意思是你程序没有期望的END,但是我这里ICE有没有END都无所谓,所以你还是找下你那个IDE的错误讯息吧,所有的错误讯息都会告诉你是为什么,看ERROR后面的数字就行了。
Ⅳ PIC单片机 c语言编程
以DIP-40的PIC16F877A来举例 灯闪动频率为1秒
void Delay_Ms(unsigned char n);
void main(void)
{
while(1)
{
RA0 = 1;//2脚输出
//11脚是供电
RD2 = 1;//21脚输出
trisA = 0x04; //4脚RA2作为输入
if(RA2 == 0) //如果4脚为低电平
{
//执行代码
}
else //如果4脚为高电平
{
//执行代码
}
Delay_Ms(1000); //延时1秒
RA0 = 0;//2脚输出
//11脚是供电
RD2 = 0;//21脚输出
Delay_Ms(1000); //延时1秒
}
}
void Delay_Ms(unsigned char n) //延时程序
{
unsigned int i;
unsigned char j;
for(j=0;j<n;j++)
{
for(i=0;i<Fosc/44000;i++)
{
}
}
}
Ⅳ PIC单片机常用模块与综合系统设计实例精讲的目 录
第1章 PIC单片机概述 2
1.1 PIC单片机的特点 2
1.2 PIC单片机的系列产品 5
1.2.1 基本级PIC系列单片机 6
1.2.2 中级PIC系列单片机 6
1.2.3 高级PIC系列单片机 8
1.3 PIC16F87X单片机的硬件
1.3 结构 10
1.3.1 PIC16F87X的主要特色 10
1.3.2 PIC16F87X的内部结构 11
1.3.3 PIC16F87X的引脚功能 16
1.4 本章小结 21
第2章 PIC单片机的CPU和中断系统 22
2.1 PIC单片机的CPU 22
2.1.1 系统配置 22
2.1.2 振荡器配置 24
2.1.3 复位 26
2.1.4 中断 33
2.1.5 监视定时器WDT 33
2.1.6 睡眠模式 35
2.1.7 在线调试 37
2.1.8 程序代码保护 37
2.1.9 用户标识码 37
2.1.10 在线串行编程技术ICSP(In-Circuit Serial Programming) 37
2.2 中断系统 38
2.2.1 中断的基本概念 38
2.2.2 PIC16F87X的中断源及中断逻辑 39
2.2.3 与中断相关的寄存器 44
2.2.4 CPU对中断的处理 48
2.3 本章小结 51
第3章 PIC单片机的指令系统 52
3.1 PIC汇编语言指令格式 53
3.2 PIC16F87X指令集 54
3.3 伪操作指令 60
3.4 寻址方式 64
3.5 本章小结 67
第4章 PIC单片机的开发工具 68
4.1 PIC系列单片机的仿真器 68
4.2 PIC系列单片机的编程器及开发套件 73
4.3 MPLAB-IDE 7.4版集成开发环境 77
4.3.1 MPLAB-IDE 7.4概述 77
4.3.2 MPLAB-IDE 7.4工程创建实例 80
4.3.3 几个常用的菜单项 83
4.4 本章小结 85 第5章 I/O输入输出模块 88
5.1 44扫描键盘设计实例 88
5.1.1 实例说明 88
5.1.2 键盘知识介绍 88
5.1.3 硬件电路设计 90
5.1.4 软件设计 90
5.1.5 实例总结 93
5.2 直接驱动LED显示 94
5.2.1 实例说明 94
5.2.2 LED数码管知识 94
5.2.3 硬件电路设计 94
5.2.4 软件设计 95
5.2.5 实例总结 96
第6章 LCD液晶显示模块:温度测量系统设计实例 97
6.1 实例说明 97
6.2 DS18B20与YMSC-G12864
6.2 IDYEWWD 98
6.2.1 温度传感器DS18B20 98
6.2.2 液晶显示屏YMSC-G12864I-DYEWWD 100
6.3 硬件电路设计 103
6.4 软件设计 105
6.4.1 温度传感器DS18B20的软件设计 105
6.4.2 液晶显示屏YMSC-G12864-IDYEWWD的软件设计 109
6.5 实例总结 116
第7章 定时器模块:用定时器控制端口输出实例 117
7.1 实例说明 117
7.2 定时器Timer0介绍 117
7.3 硬件电路设计 118
7.4 软件设计 119
7.5 实例总结 120
第8章 A/D模块:压力测量系统设计实例 121
8.1 实例说明 121
8.2 A/D转换相关知识 121
8.2.1 A/D转换的原理说明 121
8.2.2 单片机相关寄存器介绍 122
8.2.3 A/D转换操作对时间的要求 124
8.3 硬件电路设计 125
8.4 软件设计 125
8.4.1 程序设计流程 126
8.4.2 程序代码说明 126
8.5 实例总结 128
第9章 存储器模块:基于I2C对EEPROM 24C02的读写 129
9.1 实例说明 129
9.2 24C02与I2C接口介绍 129
9.2.1 24C02简介 129
9.2.2 PIC16F877 I2C接口简介 130
9.2.3 I2C总线规则 130
9.3 硬件电路设计 131
9.4 软件设计 132
9.5 实例总结 136
第10章 比较与检测模块 137
10.1 利用CCP模块控制继电器 137
10.1.1 实例说明 137
10.1.2 定时器TMR1介绍 137
10.1.3 硬件电路设计 139
10.1.4 软件设计 140
10.1.5 实例总结 141
10.2 脉冲频率的检测设计 141
10.2.1 实例说明 141
10.2.2 定时器TMR2介绍 141
10.2.3 硬件电路设计 142
10.2.4 软件设计 143
10.2.5 实例总结 144
10.3 电压测量模块 144
10.3.1 实例介绍 144
10.3.2 硬件电路设计 145
10.3.3 软件设计 145
10.3.4 实例总结 147
第11章 步进电机模块 148
11.1 实例说明 148
11.2 步进电机驱动工作原理 148
11.3 硬件电路设计 149
11.4 软件设计 150
11.4.1 软件设计流程 151
11.4.2 程序代码说明 152
11.5 实例总结 153
第12章 信号发生模块 154
12.1 PWM实现DA转换 154
12.1.1 实例说明 154
12.1.2 PWM模块架构 155
12.1.3 硬件电路设计 156
12.1.4 软件设计程序 157
12.1.5 实例总结 158
12.2 正弦波发生器 158
12.2.1 实例说明 158
12.2.2 TLC5620介绍 158
12.2.3 硬件电路设计 160
12.2.4 软件程序设计 160
12.2.5 实例总结 162
第13章 数字PID控制模块 163
13.1 PID控制概述 163
13.2 位置式PID控制算法 164
13.3 增量式PID控制算法 165
13.3.1 增量式控制算法流程 166
13.3.2 数字PID控制算法的改进 167
13.4 数字PID控制算法代码 168
13.5 实例总结 170
第14章 直流数控稳压电源模块 171
14.1 实例说明 171
14.2 设计思路分析 171
14.2.1 D/A转换器DAC0832 172
14.2.2 步进0.1V实现 172
14.3 硬件电路设计 172
14.3.1 模数转换电路 172
14.3.2 电流放大电路 173
14.3.3 人机接口电路 173
14.3.4 稳压电源电路 174
14.4 软件设计 174
14.4.1 程序设计流程 174
14.4.2 程序代码说明 174
14.5 实例总结 177
第15章 网络通信与数据传输模块 178
15.1 USART串行通信模块实例 178
15.1.1 实例说明 178
15.1.2 打印机并口介绍 178
15.1.3 硬件电路设计 180
15.1.4 软件设计 181
15.1.5 实例总结 182
15.2 I2C总线通信模块实例 182
15.2.1 实例说明 182
15.2.2 I2C总线介绍 183
15.2.3 硬件电路设计 187
15.2.4 软件设计 188
15.2.5 实例总结 195
15.3 SPI总线通信模块实例 195
15.3.1 实例说明 195
15.3.2 SPI模块相关的寄存器 195
15.3.3 硬件电路设计 197
15.3.4 软件设计 198
15.3.5 实例总结 200
15.4 通信模块:CAN总线模块实例 200
15.4.1 实例说明 201
15.4.2 设计思路分析 202
15.4.3 硬件电路设计 206
15.4.4 软件程序设计 207
15.4.5 实例总结 212
15.5 通信模块:USB数据传输模块实例 212
15.5.1 实例说明 212
15.5.2 设计思路分析 213
15.5.3 硬件电路设计 219
15.5.4 USB固件程序设计 220
15.5.5 实例总结 225 第16章 智能手电筒开发实例 228
16.1 系统功能说明 228
16.2 系统工作原理与实现方法 229
16.2.1 系统的供电 229
16.2.2 灯珠和LED点亮或熄灭的实现 229
16.2.3 按键扫描电路和A/D转换电路图原理 230
16.2.4 数据的显示 231
16.2.5 蜂鸣器驱动和背光源驱动 235
16.2.6 电池的自动充电实现 236
16.3 软件设计与代码分析 237
16.3.1 软件设计 237
16.3.2 主程序 239
16.3.3 中断子程序 244
16.3.4 时钟处理子程序 245
16.3.5 2ms到处理子程序 247
16.3.6 A/D中断子程序 252
16.4 实例总结 255
第17章 汽车应急启动器系统开发实例 257
17.1 系统功能说明 257
17.2 系统硬件框图 258
17.3 系统各模块工作原理与实现方法 259
17.3.1 系统电源部分 259
17.3.2 蜂鸣器驱动与系统检测按键扫描电路 259
17.3.3 灯管驱动与灯管按键扫描电路 260
17.3.4 发光二极管驱动与内部电池电压按键扫描电路 261
17.3.5 液晶显示器(LCD)驱动电路 261
17.3.6 内部电池与外部电池连接正确与否检测电路 264
17.3.7 应急启动控制电路 264
17.3.8 轮胎压力检测电路 265
17.3.9 轮胎气泵启动控制与轮胎
17.3.9 充气按键扫描电路 267
17.3.10 加键与减键扫描电路 268
17.3.11 外部电池检测按键扫描电路 269
17.3.12 电池电压检测与电池充电电路 269
17.4 软件设计与代码分析 270
17.4.1 主程序 271
17.4.2 气泵处理程序 280
17.4.3 灯管处理程序 280
17.4.4 外部电池检测程序 282
17.4.5 系统检测程序 283
17.4.6 时钟中断程序 284
17.4.7 内部电池充电程序 288
17.5 实例总结 289
第18章 无功功率补偿控制器设计实例 290
18.1 系统功能说明 290
18.2 系统硬件框图 292
18.3 系统各模块工作原理与实现方法 292
18.3.1 系统的供电 292
18.3.2 按键扫描电路 293
18.3.3 电流和电压相位差检测电路 294
18.3.4 电流和电压的A/D转换电路 297
18.3.5 八段数码管和LED指示灯电路 298
18.3.6 十路电力电容驱动电路 298
18.3.7 EEPROM的驱动电路 300
18.4 软件设计与代码分析 301
18.4.1 初始化、欠流判断和开机按键扫描程序 301
18.4.2 检测电力电容容量程序 308
18.4.3 检测功率因数程序
18.4.3 (主程序) 310
18.4.4 参数设置程序 323
18.5 实例总结 325
Ⅵ 单片机C语言程序设计实训100例:基于PIC+Proteus仿真的目录
第1章PIC单片机C语言程序设计概述
1.1 PIC单片机简介
1.2 MPLAB+C语言程序开发环境安装及应用
1.3 PICC/PICC18/MCC18程序设计基础
1.4 PIC单片机内存结构
1.5 PIC单片机配置位
1.6 基本的I/O端口编程
1.7 中断服务程序设计
1.8 PIC单片机外设相关寄存器
1.9 C语言程序设计在PIC单片机应用系统开发中的优势
第2章PROTEUS操作基础
2.1 PROTEUS操作界面简介
2.2 仿真电路原理图设计
2.3 元件选择
2.4 仿真运行
2.5 MPLAB IDE与PROTEUS的联合调试
2.6 PROTEUS在PIC单片机应用系统开发中的优势
第3章 基础程序设计
3.1 闪烁的LED
3.2 用双重循环控制LED左右来回滚动显示
3.3 多花样流水灯
3.4 LED模拟交通灯
3.5 单只数码管循环显示0~9
3.6 4只数码管滚动显示单个数字
3.7 8只数码管扫描显示多个不同字符
3.8 K1~K5控制两位数码管的开关、加减与清零操作
3.9 数码管显示4×4键盘矩阵按键
3.10 数码管显示拨码开关编码
3.11 继电器及双向可控硅控制照明设备
3.12 INT中断计数
3.13 RB端口电平变化中断控制两位数码管开关与加减显示
3.14 TIMER0控制单只LED闪烁
3.15 TIMER0控制流水灯
3.16 TIMER0控制数码管扫描显示
3.17 TIMER1控制交通指示灯
3.18 TIMER1与TIMER2控制十字路口秒计时显示屏
3.19 用工作于同步计数方式的TMR1实现按键或脉冲计数
3.20 用定时器设计的门铃
3.21 报警器与旋转灯
3.22 用工作于捕获方式的CCP1设计的频率计
3.23 用工作于比较模式的CCP1控制音阶播放
3.24 CCP1 PWM模式应用
3.25 模拟比较器测试
3.26 数码管显示两路A/D转换结果
3.27 EEPROM读写与数码管显示
3.28 睡眠模式及看门狗应用测试
3.29 单片机与PC双向串口通信仿真
3.30 PIC单片机并行从动端口PSP读写测试
第4章 硬件应用
4.1 74HC138与74HC154译码器应用
4.2 74HC595串入并出芯片应用
4.3 用74HC164驱动多只数码管显示
4.4 数码管BCD解码驱动器7447与4511应用
4.5 8×8LED点阵屏显示数字
4.6 8位数码管段位复用串行驱动芯片MAX6951应用
4.7 串行共阴显示驱动器MAX7219与7221应用
4.8 14段与16段数码管串行驱动显示
4.9 16键解码芯片74C922应用
4.10 1602LCD字符液晶测试程序
4.11 1602液晶显示DS1302实时时钟
4.12 1602液晶工作于4位模式实时显示当前时间
4.13 带RAM内存的实时时钟与日历芯片PCF8583应用
4.14 2×20串行字符液晶演示
4.15 LGM12864液晶显示程序
4.16 PG160128A液晶图文演示
4.17 TG126410液晶串行模式显示
4.18 HDG12864系列液晶演示
4.19 Nokia7110液晶菜单控制程序
4.20 8通道模拟开关74HC4051应用测试
4.21 用带I2C接口的MCP23016扩展16位通用I/O端口
4.22 用带SPI接口的MCP23S17扩展16位通用I/O端口
4.23 用I2C接口控制MAX6953驱动4片5×7点阵显示器
4.24 用I2C接口控制MAX6955驱动16段数码管显示
4.25 用带SPI接口的数/模转换器MCP4921生成正弦波形
4.26 用带SPI接口的数/模转换器MAX515控制LED亮度循环变化
4.27 正反转可控的直流电机
4.28 PWM控制MOSFET搭建的H桥电路驱动直流电机运行
4.29 正反转可控的步进电机
4.30 用L297+L298控制与驱动步进电机
4.31 PC通过RS-485器件MAX487远程控制单片机
4.32 I2C接口DS1621温度传感器测试
4.33 SPI接口温度传感器TC72应用测试
4.34 温度传感器LM35全量程应用测试
4.35 K型热电偶温度计
4.36 用铂电阻温度传感器PT100设计的测温系统
4.37 DS18B20温度传感器测试
4.38 SHT75温湿度传感器测试
4.39 1-Wire式可寻址开关DS2405应用测试
4.40 光敏电阻应用测试
4.41 MPX4250压力传感器测试
4.42 用I2C接口读写存储器AT24C04
4.43 用SPI接口读写AT25F1024
4.44 PIC18 I2C接口存储器及USART接口测试程序
4.45 PIC18 SPI接口存储器测试程序
4.46 PIC18定时器及A/D转换测试
4.47 用PIC18控制Microwire接口继电器驱动器MAX4820
4.48 MMC存储卡测试
4.49 ATA硬盘数据访问
4.50 微芯VLS5573液晶显示屏驱动器演示
第5章 综合设计
5.1 用DS1302/DS18B20+MAX6951设计的多功能电子日历牌
5.2 用PCF8583设计高仿真数码管电子钟
5.3 用4×20LCD与DS18B20设计的单总线多点温度监测系统
5.4 用内置EEPROM与1602液晶设计的加密电子密码锁
5.5 用PIC单片机与1601LCD设计的计算器
5.6 电子秤仿真设计
5.7 数码管显示的GP2D12仿真测距警报器
5.8 GPS全球定位系统仿真
5.9 能接收串口信息的带中英文硬字库的80×16点阵显示屏
5.10 用M145026与M145027设计的无线收发系统
5.11 红外遥控收发仿真
5.12 交流电压检测与数字显示仿真
5.13 带位置感应器的直流无刷电机PMW控制仿真
5.14 3端可调正稳压器LM317应用测试
5.15 模拟射击训练游戏
5.16 带触摸屏的国际象棋游戏仿真
5.17 温室监控系统仿真
5.18 PIC单片机MODBUS总线通信仿真
5.19 PIC单片机内置CAN总线通信仿真
5.20 基于PIC18+Microchip TCP/IP协议栈的HTTP服务器应用
参考文献
Ⅶ PIC单片机c 语言编程
就是1有效的意思,如果是0就不成立。就相当于IPAddress=1
Ⅷ microchip单片机pic怎么编程
microchip 的PIC 单片机,使用 MPLAB 编译器进行程序编译。
比较cao蛋的是,MPLAB 具有多种编译器,版本相互不兼容。
其中市场主打 的PIC16F 系列,多数采用 MPLAB IDE 编译器(本人用V8.8版本(破解的,嘘),新的应该是V8.9版本,不过本人没多关注,也不知道正不正确)。
MPLAB 编译器,在编程的时候,必须选择单片机型号,而本人使用的IDE V8.8版,并不能支持所有的PIC16系列单片机型号(最起码,最近使用的PIC16F1513就没有支持,在MPLAB X IDE里有支持)
而microchip 的高级单片机 PIC18系列,则以 MPLAB X IDE 编译器为主(行业称“十”版本),不过用了IDE V8.8后,再下载使用 IDE 10(就是上面的十版本)。你会觉得画风突变,完全找不着北,连配置字、用户程序版本号都没法兼容使用。前面熟悉的IDE,完全没法发挥任何作用。你又得重新开始学习一个新的编程软件(害得哥在新项目上浪费了N多时间)。
最可恨的是,IDE 10 把市场上销售的PICKIT 3 的离线脱机下载功能给搞死了(一插上KIT 3,IDE 10就自动升级KIT 3 的内部固件程序)。然后哥只能给它贴上“研发专用”标签!
PIC 的单片机很多地方要注意的,不用的特殊功能(特别是AD)不是你不开就好的,而是你必须关闭才行。
PIC 单片机有自己的一套 汇编,如果你用汇编,你必须重新学习它的汇编语言。如果你使用C,那还好,多数是兼容的(除了 程序续行(就是单行程序太长,进行多行显示))。不过哥没整好它的混编(不知道是哥能力不够,还是破解安装少东西,都是编译错误),没法发挥它的高效。PIC 单片机的 除法运算1000个周期、左右移16位无法编译、硬堆栈层限制(就是函数内 调用函数 调用函数 调用函数……,最明显的就是递归调用被限死)…………一堆弱点!