pic单片机编程入门视频教程(pic单片机编程实例)
学习PIC单片机C语言编程,想买本书 ,基本上是零基础,最好是实例多点,注释完整容易看懂的~大家给推荐下~
是这样的 学习单片机前 的确是要先打点基础 不然听起来莫名其妙 到最后越来越吃力!首先会C语言 要学得比较好!然后再学 《微机原理》这门课 这门课很重要 虽然学得时8088芯片 很过时 但是你要是学懂了 那么单片机以及往后的神马都是相通的! 而且微机原理中学得是汇编语言 这种语言好处就是 学懂汇编就能知道微机中 包括单片机中是如何运行的!电工电子是一门课 重要的是电子这门课 也就是常说的模电和数电!这门课也很重要 在以后进行单片机二次开发时候能起来很大作用!打基础就先这么多了 学完以上的就可以正式开始学习单片机 不会有难度了 但是想成为真正的电子工程师 还要学一些课程 比方说高频电子电路 很重要!至于说学习的目的 在等你学完单片机 自己体会我觉得更好!回答完毕 希望满意!
PIC单片机编程的问题 刚学 不太懂
;?实例?供参考?可以直接仿真,多看看实例? 会有帮助的。
;?*********************************************************************
;?*? ? ? GPIO0-V? GPIO1-I? GPIO2-LED1? GPIO4-LED2? GPIO5-OUT? ? ? ? ? *
;?*? ? ? GPIO3-10K? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *
;?*********************************************************************
? ? ? ? ? LIST?P=12F675
? ? ? ? ? INCLUDE?"P12F675.INC"? ;?包含MPLAB预定义的头文件
? ? ? ? ? __CONFIG(0x3FC4)? ? ? ?;?11?---1?1100?1000? 设定配置字信息
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?;?_CPD_OFF??_CP_OFF??_BODEN_ON??_MCLRE_OFF?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?;?关代码-数据保护,? ? 掉电复位使能,内部复位,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?;?_PWRTE_ON??_WDT_OFF??_INTRC_OSC_NOCLKOUT
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?;?上电复位延时使能,关看门狗,内部振荡无时钟输出
;?*************************************************
;?*?寄存器定义及RAM分配? ? ? ? ? ? ? ? ? ? ? ? ? ?*
;?*************************************************
? ? ? ? ERRORLEVEL?-302? ? ? ? ? ?;?编译输出结果中不要显示message
? ? ? ? cblock?0x20? ? ? ? ? ? ? ?;?通用变量定义从该地址开始
? ? ? ? ? W_TEMP? ? ? ? ? ? ? ? ? ? ;?中断服务程序用来临时保存W和STATUS?
? ? ? ? ? STATUS_TEMP
? ? ? ? ? FLAGS? ? ? ? ? ? ? ? ? ? ?;?程序要使用的状态标志寄存器
? ? ? ? ? PWM_HIGH:2? ? ? ? ? ? ? ? ;?新的PWM高电平时间,保留两个字节
? ? ? ? ? PWM_LOW:2? ? ? ? ? ? ? ? ?;?新的PWM低电平时间,保留两个字节
? ? ? ? ? PWM_HIGH_CURRENT:2? ? ? ? ;?当前PWM的高电平时间锁存
? ? ? ? ? PWM_LOW_CURRENT:2? ? ? ? ?;?当前的PWM低电平时间锁存
? ? ? ? ? COUNTER? ? ? ? ? ? ? ? ? ?;?AD采样次数计数
? ? ? ? ? adsum:2? ? ? ? ? ? ? ? ? ?;?16位的AD累加结果,用于平均运算,两个字节
? ? ? ? ? temp:2? ? ? ? ? ? ? ? ? ? ;?用于数学运算的临时变量,两个字节
? ? ? ? ? endc? ? ? ? ? ? ? ? ? ? ? ;?结束cblock变量定义
? ? ? ? count? ?EQU? ?38H
? ? ? ? ? result? EQU? ?39H
;************************************************
;I/O引脚初始化? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *
;以及?A/D?初始化? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? *
;************************************************
;GP0?=?模拟电压输入
;GP1?=?没有使用
;GP2?=?没有使用
;GP3?=?只能作为输入,连接10K下拉电阻到地,ICSP烧录会使用该引脚
;GP4?=?PWM1? 输出引脚
;GP5?=?PWM2? 输出引脚
? ? ? ? ;?/?***?***?***?***?***?/? ?代换定义
#define?PWM_OUTPUT? ? ?GPIO,2? ;?GPIO,4
#define?LOAD_PWM? ? ? ?FLAGS,0
#define?CALCULATE_AD? ?FLAGS,1
#define?PWM_TICKS? ? ? .1024? ?;?PWM时间片的个数,如果PWM的分辨率是10位,
#define?TEST_PWM_HIGH? .512? ? ;?用于测试的50%占空比,高电平时间等于PWM时间片的一半
#define?TEST_PWM_LOW? ?PWM_TICKS-TEST_PWM_HIGH? ;?低电平时间等于PWM时间片减高电平时间
#define?ISR_DELAY? ? ? .16? ? ?;?从Timer1溢出到进入中断重新装载Timer1值的延时,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?;?可通过软件模拟来确定该值
#define?NUM_AD_SAMPLES?.16? ? ?;?AD采样次数
#define?AD_TIME_INTERVAL?.10? ?;?0xFF?-?(.245)? ?AD时间间隔,10个cycle的循环
? ? ? ? ;?/?***?***?***?***?***?/? ?定义双字节常数减变量的宏
? ? ? ? ? ;?const_input?-?input?=?output
sub_const_16?macro?const_input,?input,?output
? ? ? ? ? movlw? ?low?const_input? ?;?W?=?low?双字节常数? ?L
? ? ? ? ? movwf? ?temp
? ? ? ? ? movlw? ?high?const_input? ;?W?=?high?双字节常数?H
? ? ? ? ? movwf? ?temp+1
? ? ? ? ? movf? ? input,w? ? ? ? ? ?;?W?=?input
? ? ? ? ? subwf? ?temp,w? ? ? ? ? ? ;?W?=?temp?-?W?
? ? ? ? ? movwf? ?output? ? ? ? ? ? ;?output?=?W
? ? ? ? ? movf? ? input+1,w? ? ? ? ?;?W?=?input+1
? ? ? ? ? btfss? ?STATUS,C? ? ? ? ? ;?C?=?1?-
? ? ? ? ? incf? ? input+1,w? ? ? ? ?;?W?=?input+1?+?1
? ? ? ? ? subwf? ?temp+1,w? ? ? ? ? ;?W?=?temp+1?-?W?
? ? ? ? ? movwf? ?output+1? ? ? ? ? ;?output+1?=?W
? ? ? ? ? endm
? ? ? ? ;?/?***?***?***?***?***?/? ?定义双字节常数加变量的宏
? ? ? ? ? ;?const_input?+?input?=?output
add_const_16?macro?const_input,?input,?output
? ? ? ? ? movlw? ?low?const_input? ?;?W?=?low?双字节常数? ?L
? ? ? ? ? movwf? ?temp
? ? ? ? ? movlw? ?high?const_input? ;?W?=?high?双字节常数?H
? ? ? ? ? movwf? ?temp+1
? ? ? ? ? movf? ? input,w? ? ? ? ? ?;?W?=?input
? ? ? ? ? addwf? ?temp,w? ? ? ? ? ? ;?W?=?temp?+?W?
? ? ? ? ? movwf? ?output? ? ? ? ? ? ;?output?=?W
? ? ? ? ? movf? ? input+1,w? ? ? ? ?;?W?=?input+1
? ? ? ? ? btfsc? ?STATUS,C? ? ? ? ? ;?C?=?0?-
? ? ? ? ? incf? ? input+1,w? ? ? ? ?;?W?=?input+1?+?1
? ? ? ? ? addwf? ?temp+1,w? ? ? ? ? ;?W?=?temp+1?+?W?
? ? ? ? ? movwf? ?output+1? ? ? ? ? ;?output+1?=?W
? ? ? ? ? endm
? ? ? ? ;?/?***?***?***?***?***?/? ?程序开始
? ? ? ? ? ;?/?***?***?***?***?***?/
? ? ? ? org? ? ?0000H? ? ? ? ? ? ?;?芯片复位入口地址0x00
? ? ? ? ? goto? ? MAIN000? ? ? ? ? ?;?主程序
? ? ? ? ;?/?***?***?***?***?***?/? ?中断服务子程序
? ? ? ? ? ;?/?***?***?***?***?***?/
? ? ? ? ? ;?INTCON,T0IF---TMR0? 溢出? ? INTCON,INTF---GP2/INT外部中断
? ? ? ? ? ;?INTCON,GPIF---GP5-GP0?引脚电平发生了变化
? ? ? ? ? ;?PIR1,EEIF---EEPROM?写操作完成? PIR1,ADIF---A/D?转换完成
? ? ? ? ? ;?PIR1,CMIF---比较器输入已改变? ?PIR1,TMR1IF---TMR1? 溢出
? ? ? ? org? ? ?0004h? ? ? ? ? ? ?;?中断入口地址0x0004
INTCON00? movwf? ?W_TEMP? ? ? ? ? ? ;?W_TEMP?=?W? 保存
? ? ? ? ? swapf? ?STATUS,W? ? ? ? ? ;?STATUS_TEMP?=?STATUS
? ? ? ? ? movwf? ?STATUS_TEMP
? ? ? ? ? bcf? ? ?STATUS,RP0? ? ? ? ;?选择Bank?0
INTCON02? movlw? ?b'00000100'? ? ? ?;?把W的第四位置高,其他都是零
? ? ? ? ? xorwf? ?GPIO,F? ? ? ? ? ? ;?和GPIO异或,也就是把PWM输出脚的电平反转
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ;?判断中断种类
INTCON03? bcf? ? ?PIR1,TMR1IF? ? ? ?;?清?T1?中断标志?Timer1?中断
? ? ? ? ? movlw? ?HIGH?3CAFH? ? ? ? ;?Timer1?=?50?mS? C350H
? ? ? ? ? movwf? ?TMR1H? ? ? ? ? ? ?;?FFFFH?-?C350H?=?3CAFH
? ? ? ? ? movlw? ?LOW?3CAFH
? ? ? ? ? movwf? ?TMR1L
? ? ? ? bsf? ? ?CALCULATE_AD? ? ? ;?置位?A/D?转换标志
? ? ? ? ? bsf? ? ?LOAD_PWM? ? ? ? ? ;?置位?PWM?标志
INTCON08? swapf? ?STATUS_TEMP,W? ? ?;?恢复STATUS寄存器
? ? ? ? ? movwf? ?STATUS
? ? ? ? ? swapf? ?W_TEMP,F? ? ? ? ? ;?恢复W寄存器
? ? ? ? ? swapf? ?W_TEMP,W
? ? ? ? ? retfie? ? ? ? ? ? ? ? ? ? ;?从中断返回
? ? ? ? ;?/?***?***?***?***?***?/? ?主程序
? ? ? ? ? ;?/?***?***?***?***?***?/
MAIN000? ?clrf? ? GPIO? ? ? ? ? ? ? ;?初始化GPIO端口寄存器为零
? ? ? ? ? bsf? ? ?STATUS,?RP0? ? ? ?;?选择Bank?1
? ? ? ? ? call? ? 0x3FF? ? ? ? ? ? ?;?读内部振荡出厂校准字,返回值在W寄存器内
? ? ? ? ? movwf? ?OSCCAL? ? ? ? ? ? ;?内部振荡器校准
? ? ? ? movlw? ?b'11000011'? ? ? ?;?设置GP0为输入,所有其他口为输出
? ? ? ? ? movwf? ?TRISIO? ? ? ? ?
? ? ? ? movlw? ?01h? ? ? ? ? ? ? ?;?使能Timer1中断?01h
? ? ? ? ? movwf? ?PIE1
? ? ? ? movlw? ?b'00010001'? ? ? ?;?AD采用FOSC/8?时钟,GP2是模拟口,
? ? ? ? ? movwf? ?ANSEL? ? ? ? ? ? ?;?其他口为数字IO
? ? ? ? movlw? ?b'00001000'? ? ? ?;?Timer0设置为使用内部指令周期,无预分频
? ? ? ? ? movwf? ?OPTION_REG
? ? ? ? bcf? ? ?STATUS,?RP0? ? ? ?;?选择Bank0
? ? ? ? ? movlw? ?b'10000001'? ? ? ?;?A/D是右对齐格式,Vdd为参考,GP0作为AD输入口
? ? ? ? ? movwf? ?ADCON0
? ? ? ? movlw? ?b'00000111'? ? ? ?;?关掉内部比较器,让比较器的输入都为数字口
? ? ? ? ? movwf? ?CMCON
? ? ? ? movlw? ?0C0h? ? ? ? ? ? ? ;?使能周边外设中断和全局中断
? ? ? ? ? movwf? ?INTCON
? ? ? ? movlw? ?b'00000001'? ? ? ?;?Timer1是1:1预分频,内部时钟源,
? ? ? ? ? movwf? ?T1CON? ? ? ? ? ? ?;?振荡频率/4,不带门控
? ? ? ? movlw? ?.16? ? ? ? ? ? ? ?;?AD?次数?=?10
? ? ? ? ? movwf? ?COUNTER
MAIN010? ?btfss? ?CALCULATE_AD? ? ? ;?=?1?-? 主循环
? ? ? ? ? goto? ? MAIN010
? ? ? ? ? bcf? ? ?CALCULATE_AD? ? ? ;?清?A/D?转换标志
? ? ? ? bsf? ? ?STATUS,RP0? ? ? ? ;?选择bank1
? ? ? ? ? movf? ? ADRESL,W? ? ? ? ? ;?W?=?AD?L
? ? ? ? ? addwf? ?adsum,F? ? ? ? ? ?;?adsum?=?AD?L
? ? ? ? ? btfsc? ?STATUS,C? ? ? ? ? ;?C?=?0?-
? ? ? ? ? incf? ? adsum+1,F? ? ? ? ?;?adsum+1?=?adsum+1?+?1
? ? ? ? ? bcf? ? ?STATUS,RP0? ? ? ? ;?选择Bank0
? ? ? ? ? movf? ? ADRESH,W? ? ? ? ? ;?W?=?AD?H
? ? ? ? ? addwf? ?adsum+1,F? ? ? ? ?;?adsum+1?=?AD?H
? ? ? ? ? bsf? ? ?ADCON0,GO_DONE? ? ;?启动?AD?下一次转换
? ? ? ? ? decfsz? COUNTER,F? ? ? ? ?;?转换?计数器?-?1?=?0?-
? ? ? ? ? goto? ? MAIN010? ? ? ? ? ?;?循环
? ? ? ? movfw? ?adsum
? ? ? ? ? movwf? ?result? ? ? ? ? ? ;?result?=?w
? ? ? ? ? CALL? ? LED000
? ? ? ? ? movfw? ?adsum+1
? ? ? ? ? movwf? ?result? ? ? ? ? ? ;?result?=?w
? ? ? ? ? CALL? ? LED000
? ? ? ? movlw? ?.16? ? ? ? ? ? ? ?;?AD?次数?=?10
? ? ? ? ? movwf? ?COUNTER
? ? ? ? ? clrf? ? adsum? ? ? ? ? ? ?;?清?A/D?累加和?/?平均值?寄存器
? ? ? ? ? clrf? ? adsum+1
? ? ? ? goto? ? MAIN010
? ? ? ? ;?/?***?***?***?***?***?/? ?串行输出
LED000? ? movlw? ?8? ? ? ? ? ? ? ? ?;?串行输出?8?位?w?=?8
? ?movwf? ?count? ? ? ? ? ? ?;?count?=?w
LED001? ? bcf? ? ?TRISIO,4? ? ? ? ? ;?清零? ?
? ? btfsc? ?result,0? ? ? ? ? ;?result.7=0?-
? ?bsf? ? ?TRISIO,4? ? ? ? ? ;?0010?0000
? ?bsf? ? ?TRISIO,5? ? ?;?产生时钟脉冲?GP4?=?1
? ?bcf? ? ?TRISIO,5? ? ? ? ? ;? ? ? ? ? ? ? GP4?=?0
? ?RRF? ? ?result,1? ? ? ? ? ;?左移获取下一个结果位
? ?decfsz? count,1? ? ?;?-?1
? ?goto? ? LED001? ? ? ? ? ? ;??0? ? 循环下位
? ?RETURN? ? ? ? ? ? ? ;?=?0
? ? ? ? ;?/?***?***?***?***?***?/?
? ? ? ? end? ? ? ? ? ? ? ? ? ? ? ?;?程序结束符
单片机教程
敏学网的单片机频道有很多单片机视频教程
学习网单片机资料部分列表:
《手把手教你学51单片机与Proteus从入门到精通》[压缩包]
《单片机 视频教程 宋老师 手把手教你学单片机 C语言 51单片机开发 嵌入式 金沙滩电子科技》
《从51单片机到ARM征服嵌入式教程 AVR篇 (持续更新)》(Professional embedded from 51 mcu to ARM)2.0[压缩
《手把手教你学单片机之入门篇》更新完毕[RMVB]
《手把手教你学单片机之附录篇》更新完毕[RMVB]
《手把手教你学单片机之引论篇》更新完毕[RMVB]
《51单片机到ARM征服嵌入式》更新完毕[RMVB]
《手把手教你学单片机之入门篇》更新至第04集[RMVB]
《十天学会单片机和C语言编程(更新完毕)》[MP4]
《51单片机到ARM征服嵌入式51篇 Lesson1》
《YCDZ-51AVR 51单片机学习板 完全兼容TX-IC 手工焊接视频》V1.0[压缩包]
《零基础一周学会PIC 单片机视频教程》[压缩包]
《单片机软硬件设计视频教程集》
《原创单片机和机器人技术资料》张建高整理[光盘镜像]
《郭天祥十天学会PIC单片机》(Learning PIC MCU in 10 Days)[压缩包]
《PIC单片机电子书》 PDF
《十天学会单片机和C语言编程》
《单片机论文资料》[PDFNHKDH]
《单片机系列课件》[PPT]
《单片机应用技术大全》[PDG]
哪有好点的PIC单片机教学啊,要用MPLAB IDE 最好是用C 编程教学!!!!!
单片机都差不多,自己动手边写边看,一般单片机datasheet都很详细说明的,新手就找个简单例子,照着改下,入门还是很简单的。
可以找个论坛看看,例如阿莫的论坛气氛就不错: 上面也有PIC的分论坛
求求求求求~~~~~初学单片机如何入门
先针对性回答一下你的问题:
1、单片机学习需要的知识,单片机原理,编程技术,电子电路。
2、学无止境,当然要继续学习,C语言对于单片机非常重要,多数人都是用c,包括我。如果从汇编开始我不知道要经过多少努力你才能开始做开发。
3、VB可以做电脑程序开发,可以做成软件和单片机进行通讯,可以用电脑和单片机系统组成一个应用项目。一切知识都是有用的,看你的爱好和你的时间决定吧。
4、单片机和数学基本上没有太直接联系,不要被别人吓住了。
另外再加一条单片机种类选型的看法
5、初学还是建议学习51单片机,因为51单片机容易上手,学习资料也多。你说的指令集51的算是少的了。如果使用汇编的话就要学会每条汇编指令。而现在多数单片机工程师都是选择c语言进行设计。而且c语言的程序除了单片机设置的部分,其他功能运算部分在每种单片机上基本都通用,这叫移植性好,而汇编语言则是每种类型的单片机一种指令集,单片机程序移植困难。
最后再说一下如何具体学习单片机:
很多想学单片机的人问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。
先说说单片机,一般我们现在用的比较多的的MCS-51的单片机,它的资料比较多,用的人也很多,市场也很大。就我个人的体会怎么样才能更快的学会单片机这门课。单片机这门课是一项非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中你需要大概了解一下,单片机的各个功能寄存器,而说明白点,我们使用单片机就是用软件去控制单片机的各个功能寄存器,再说明白点,就是控制单片机那些管脚的电平什么时候输出高,什么时候输出低。由这些高低电平的变化来控制你的系统板,实现我们需要的各个功能。至于看书,只需大概了解单片机各管脚都是干什么的?能实现什么样的功能?第一次,第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。所以我总是说,学单片机看书看两三天的就够了,看小说你一天能看五六本,看单片机你两三天看两三遍就够了,可以不用仔细的看。推荐一本书,就这一本就足够,书名是《新编MCS-51单片机应用设计》,是哈尔滨工业大学出版社出的的,作者是张毅刚。大概了解一下书上的内容,然后实践,这是非常关键的,如果说学单片机你不实践那是不可能学会的,关于实践有两种方法你可以选择,一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者来说你买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、独立键盘、矩阵键盘、AD或DA(原理一样)、液晶、蜂鸣器,这就差不多了。如果上面我提到的这些,你能熟练应用,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。方法二:你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。对于高手来说,做个单片机的最小系统板只需要一分钟的时间,而对于初学者可就难多了,因为只有对硬件了解了,才能熟练运用。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你最好是自己买上一块,毕竟自己有一块要方便的多,以后做单片机类的小实验时都能用得上,还省事。
有了单片机学习板之后你就要多练习,最好是自己有台电脑,一天少看电影,少打游戏,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按你的意愿实现时你比做什么事都开心,你会上瘾的,真的。做电子类的人真的会上瘾。然后让数码管亮起来,这两项会了后,你已经不能自拔了,你已经开始考虑你这辈子要走哪一行了。就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别人,当得到解答后你会记住一辈子的,知识必须用于现实生活中,解决实际问题,这样才能发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?是不是为了期末考试而忙碌呢?考完得了90分,哈哈哈好高兴啊,下学期开学回来忘的一干二净,是不是?你学到什么了?但是我告诉你单片机一旦学会,永远不会忘了。另外我再说说用汇编和C语言编程的问题。很多同学大一二就开设了C语言的课,我也上过,我知道那时天天就是几乘几,几加几啊,求个阶乘啊。学完了有什么用?让你用C语言编单片机的程序你是不是就傻了?书上的东西我们必须要会运用。单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C语言也挺简单,只是一门工具而已,我劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。汇编写程序代码效率高,但相对难度较大,而且很罗嗦,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完全不需要那么高效率的代码,因为有高频率的时钟,单片机的ROM也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料又多又好找,将来可移植性非常好,只需要变一个IO口写个温度传感器的程序在哪里都能用,所以我劝大家用C语言。
总结上面,只要你有信心,做事能坚持到底,有不成功不放弃的强烈意志,那学个单片机来说就是件非常容易的事。
步骤:1.找本书大概了解一下单片机结构,大概了解就行。不用都看懂,又不让你出书的。(三天)
2.找学习板练习编写程序,学单片机就是练编程序,遇到不会的再问人或查书。 (二十天)
3.自己网上找些小电路类的资料练习设计外围电路。焊好后自己调试,熟悉过程。 (十天)
4.自己完全设计具有个人风格的电路,产品,。。。你已经是高手了。 。。。。
看到了吗?下功夫一个多月你就能成为高手,我就讲这么多了,学不学得会,下不下得了功夫就看你的了。
关于PIC单片机C语言编程
1:第一个问号:是; 第二个问号:不一定;
2:一些C30有多种类型版本,你说的30C和36可能不是指同一种类型。
3:没破解的编译器过期就不能编译程序了。想用就需要重装(貌似它会在系统内记录的,所以应该是重装操作系统才行)。
4:肯定不可靠。我有过编译经历,破解的编译出来的在逻辑上就会有问题。但这不影响普通学生入门者做设计。如果你是做工业、航天领域设计的,你的领导也不会让你用破解版或者未注册版。所以现在很多单位宁愿用汇编来编译程序。
PICC有支持 PIC10/12/16/18/24/32系列单片机 的C编译器。同时也支持dsPIC30/33 系列DSC芯片的C编译器