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的那款片子,也很简单,给你一个相关的程序参考一下,真的是大同小异无非是细节问题。这个没有人能帮到你,靠自己是最好的也可以学习很多东西。还是那句话程序师调试出来的
如果在调试过程中有什么问题请Hi我,常在线
AD9851的驱动程序
//头文件
#include"SPCE061A.h"
//变量说明
unsigned long int Freq_Ctrl_Word= 0x051eb851;//频率控制字先传低位再传高位
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代码的介绍到此结束,希望对大家有所帮助。