首页编程pic单片机c语言编程300例?c语言必背100代码

pic单片机c语言编程300例?c语言必背100代码

编程之家2026-05-24790次浏览

大家好,今天给各位分享pic单片机c语言编程300例的一些知识,其中也会对c语言必背100代码进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

pic单片机c语言编程300例?c语言必背100代码

关于PIC单片机C语言编程

1:第一个问号:是;第二个问号:不一定;

2:一些C30有多种类型版本,你说的30C和36可能不是指同一种类型。

3:没破解的编译器过期就不能编译程序了。想用就需要重装(貌似它会在系统内记录的,所以应该是重装操作系统才行)。

4:肯定不可靠。我有过编译经历,破解的编译出来的在逻辑上就会有问题。但这不影响普通学生入门者做设计。如果你是做工业、航天领域设计的,你的领导也不会让你用破解版或者未注册版。所以现在很多单位宁愿用汇编来编译程序。

PICC有支持 PIC10/12/16/18/24/32系列单片机的C编译器。同时也支持dsPIC30/33系列DSC芯片的C编译器

PIC单片机C语言编程的高手来帮帮忙啊!

你好,对于你这个问题其实也不是太难,不要在乎片子有多复杂,也不要在乎问题有多难,关键是勇于挑战他,你弄永远不行,程序是调试出来的,别人给你写的你不一定可以用得上。AD985X系列的DDS芯片大同小异,基本也就是协议问题。仔细看一下,手册上的介绍对你很有帮助,还有就是关于你选择的PIC的那款片子,也很简单,给你一个相关的程序参考一下,真的是大同小异无非是细节问题。这个没有人能帮到你,靠自己是最好的也可以学习很多东西。还是那句话程序师调试出来的

pic单片机c语言编程300例?c语言必背100代码

如果在调试过程中有什么问题请Hi我,常在线

AD9851的驱动程序

//头文件

#include"SPCE061A.h"

//变量说明

unsigned long int Freq_Ctrl_Word= 0x051eb851;//频率控制字先传低位再传高位

pic单片机c语言编程300例?c语言必背100代码

unsigned int Phase_Ctrl_Word= 0x0000;//相位控制字先传低位再传高位

unsigned int Order_Ctrl_Word= 0x0000;//b32:0 6倍频关闭 b33b34:00电源工作模式

//定义AD9851与SPCE061A的接口

#define M_DATA 0x0001

#define M_UD 0x0002

#define M_CLK 0x0004

#define Set_IOA_Bit(x)(*P_IOA_Data=*P_IOA_Buffer| x)//置高

#define Clear_IOA_Bit(x)(*P_IOA_Data=*P_IOA_Buffer&~x)//置低

//====================================================================

//----Function: void Init_AD9851(void)

//-Description:初始化与AD9851连接的IO口

//--Parameters:无

//------Return:无

//-------Notes:不影响其他IO口

//====================================================================

void Init_AD9851(void)

{

*P_IOA_Dir|=(M_DATA+ M_UD+ M_CLK);

*P_IOA_Attrib|=(M_DATA+ M_UD+ M_CLK);

*P_IOA_Data&=~(M_DATA+ M_UD+ M_CLK);

}

//====================================================================

//----Function: void Write_AD9851(void)

//-Description:向AD9851写入频率控制字,命令控制字和相位控制字

//--Parameters:无

//------Return:无

//-------Notes:无

//====================================================================

void Write_AD9851(void)

{

unsigned long int mask= 0x0001;

unsigned int i;

Clear_IOA_Bit(M_UD);//M_UD置低

//送32位频率控制字

for(i= 0;i< 32;i++)

{

Clear_IOA_Bit(M_CLK);//M_CLK置低

if(Freq_Ctrl_Word& mask)

{

Set_IOA_Bit(M_DATA);

}

else

{

Clear_IOA_Bit(M_DATA);

}

Set_IOA_Bit(M_CLK);

mask= mask<< 1;

}

//送3位的命令控制字

mask= 0x0001;

for(i= 0;i< 3;i++)

{

Clear_IOA_Bit(M_CLK);//M_CLK置低

if(Order_Ctrl_Word& mask)

{

Set_IOA_Bit(M_DATA);

}

else

{

Clear_IOA_Bit(M_DATA);

}

Set_IOA_Bit(M_CLK);

mask= mask<< 1;

}

//送5位相位控制字

mask= 0x0001;

for(i= 0;i< 5;i++)

{

Clear_IOA_Bit(M_CLK);//M_CLK置低

if(Phase_Ctrl_Word& mask)

{

Set_IOA_Bit(M_DATA);

}

else

{

Clear_IOA_Bit(M_DATA);

}

Set_IOA_Bit(M_CLK);

mask= mask<< 1;

}

Set_IOA_Bit(M_UD);//M_UD置高,产生上升沿,频率更新使能,输出有效

}

最后在说一下个人的理解,也就是DDS与MCU之间的接口问题,个人认为有点像SPI,只不过SPI的数据口是串行的,而在这这里是分时并行。主要问题就是协议,唯一的办法就是求助于数据手册,我刚出去查了一下,好像全是E文的,建议前期工作就是对照Google翻译这个数据手册,很有必要。

学习和创作的过程也很有趣,虽然很艰辛

单片机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语言编程300例,c语言必背100代码的介绍到此结束,希望对大家有所帮助。

企业网站搭建(怎么建立个人网站)免费外国网站浏览器推荐(国外免费网站推广入口在哪里)