我是在上大学时开始接触单片机的,当时走了很多弯路,花了很多时间,才终于比较全面的理解和掌握了单片机。回想起来,从对很多东西毫无概念,到有所认识,直到最终能理解并完全掌握,确实经历了很多。也正是因为这样一些经历,我比较理解初学者的迷茫,后来帮过很多初学者,带动他们去学习单片机等电子设计知识。和初学者的交流中,一方面,我巩固了基础知识,加深了对一些东西的理解,另一方面,我了解了初学者的各种疑惑,遇到的各种问题,以及不知道如何学习的尴尬境地。很多想学习单片机的人,或许仅仅因为第一步操作就花了很长时间,却没能成功(程序不能下载进单片机),于是放弃了学习,这实在太可惜了。
而现在,却很少能有一些书籍或教程可以很好的指导初学者学习。市面上很多书籍教程,有的是站在已经深入了解单片机的角度,开篇就去讲解单片机的内部结构,寄存器,汇编指令等等,而初学者往往很难明白这些晦涩难懂的专业词汇,更不用说学习单片机了。另外一些资料,则是完全从动手实践的角度去讲,却忽视了理论方面的介绍,很多东西你只能按照别人说的去操作,却完全不知道为什么,更谈不上去理解,而如果遇到了问题,更不知道如何去解决。
根据我自己的学习经验,以及和很多学习者交流得到的经验,希望通过这个系列的博文,从比较常见、比较简单的51单片机说起,给初学者进行较为详细的介绍。包括对初学者可能遇到的各种问题,给出一些较为详细的解决方法。并在后面逐步推广到其他单片机。同时,提供一些学习思想、学习方法的介绍。
希望能让读者以学习51单片机为契机,真正理解和掌握使用任意一款单片机乃至其他处理器,去解决实际问题的思想。也希望更多志同道合的人能在此找到自己想要的东西。
关键字:单片机 小白学步
引用地址:
单片机小白学步(0) 序
推荐阅读最新更新时间:2024-03-16 14:54
单片机模板程序(asm)
以下程序择晶振为12MHz 时钟i周期为晶振的倒数,位1/f(晶振),机器周期为时钟周期的12分频,即为12*1/f(晶振),故12MHz的机器周期为1us 定时器1/0 ORG 0000H ;复位入口地址 AJMP START ;熟记长跳转和短跳转的区别:跳转时有范围的 LJMP MAIN ORG 001BH ;T1中断服务程序入口地址,若要实现T0中断,则地址改为000BH AJMP TIME1 ORG 0030H ;主程序 START: MOV SP, #60H ;初始化程序 MOV TMOD, #10H
[单片机]
msp430单片机控制lcd1602显示C程序
//MSP430写的1602液晶显示程序2011/8/26//硬件连接 //P4 数据口 P3.7---E P3.6---RW P3.5----RS #include msp430x14x.h #define uint unsigned int #define rw(x) P3OUT=(P3OUT&(~BIT6))|(x?BIT6:0); unsigned char table0 = hankouxueyuan ; unsigned char table1 = dianzisheji ; //**************延时**
[单片机]
51单片机-LED部分(3)
8个发光二极管间隔200ms由上至下,再由下至上,再重复一遍,然后全部熄灭再次以300ms间隔全部闪烁5次,重复此过程 . C++ Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 #include #include #define uchar unsigned char #define uint unsigned int uchar x, y, j, temp; void delayms(uint
[单片机]
CISC 和 RISC 微控制器
微控制器是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机。微控制器诞生于20世纪70年代中期,经过20多年的发展,其成本越来越低,而性能越来越强大,这使其应用已经无处不在,遍及各个领域。例如电机控制、条码阅读器/扫描器、消费类电子、游戏设备、电话、HVAC、楼宇安全与门禁控制、工业控制与自动化和白色家电(洗衣机、微波炉)等。
微控制器可从不同方面进行分类:根据数据总线宽度可分为8位、16位和32位机;根据存储器结构可分为Harvard结构和Von Neumann结构;根据内嵌程序存储器的类别可分为OTP、掩膜、EPROM/EEPROM和闪存Flash;根据指令结构又可分为CISC(Complex Instruction
[嵌入式]
单片机---HLK-W801移植Nes模拟器(二)
前面已经完成了程序的移植,今天试一下按键操作,好歹也能跳一下,吃个蘑菇,也行啊 按键识别 w801上按键的识别,我这里用的是一个之前用过的全向按键键盘, 通过GPIO的方式采集按键,为了消除抖动,采用了中断定时器循环扫描的方式,连续扫描到8次高电平,认为是按下。 方法参考自博客《#51单片机#中断实现按键消抖》 首先定义一下宏 #define GPIO_UP WM_IO_PA_01 #define GPIO_DOWN WM_IO_PA_02 #define GPIO_LFT WM_IO_PA_08 #define GPIO_RHT WM_IO_PA_04 #define GPIO_START WM_IO_PA_05
[单片机]
基于AVR单片机PWM功能的数控恒流源电路设计与产品研制
随着电子技术的深入发展,各种智能仪器越来越多,涉及领域越来越广,而仪器对 电源 的要求也越来越高。现今,电源设备有朝着数字化方向发展的趋势。然而绝大多数数控电源设计是通过高位数的 A/D 和 D/A 芯片来实现的,这虽然能获得较高的精度,但也使得成本大为增加。本文介绍一种基于AVR单片机PWM功能的低成本高精度数控恒流源,能够精确实现0~2A恒流。 系统框图 图1为系统的总体框图。本系统通过小键盘和 LCD 实现人机交流,小键盘负责接收要实现的 电流 值,LCD12864负责显示。AVR单片机根据输入的电流值产生对应的PWM波,经过 滤波 和 功放 电路 后对压控恒流元件进行控制,产生电流,电流再经过采样 电阻 到达
[单片机]
51单片机PC数据传输 温度 距离 监控系统设计
_ :功能概述: 通过串口PC和单片机通信,可以询问单片机测得的温度,可以询问声呐测距的测量距离,同时把测量温度显示在数码管上。 _ :PC部分 这里com.cpp和com.h是串口通信的函数封装,在主函数中: 刚开始调用封装好的串口通信函数,设置打开串口COM4,波特率设置为9600,超时设置: 1 if(openport( com4 )) 2 printf( open comport success\n ); 3 if(setupdcb(9600)) 4 printf( setupDCB success\n ); 5 if(setuptimeout(0,0,0,0,0)) //如果
[单片机]
盛群推出新款点阵LED型8位微控制器
盛群半导体推出具备高驱动电流的8位微控制器(MCU)新产品HT48R52A,具有多达40个输入/输出接脚,最高可耐受40mA的电流,可直接驱动LED,节省外部组件数目,适用于日益普及的各式LED应用产品。产品并具有极低的功耗,在3伏特的工作电压下有低至300uA的工作电流,而在进入省电模式后,在实时时钟仍在工作状态下,耗电流更低达0.8uA,可延长电池的使用时间,应用产品也能更加符合绿色能源之潮流。 HT48R52A使用盛群半导体的8位微控制器核心,工作频率可用软件程序切换,快速模式最高可达8MHz,慢速模式为32768Hz适用于有低耗电需求的产品。产品提供40个输入/输出接脚,可用于控制各种开关或推动LED等显示装置,并具备多
[新品]