学单片机这么久,还不会计算定时器初值就out了。
在学习单片机的时候,我们发现很多功能都是通过中断来实现的。之前也举过烧水的例子来阐述中断,今天就讲解一下定时器赋初值的方法。8位的定时器最大可计数2的8次方为256,16位的定时器最大可计数2的16次方为65536。由于单片机的定时器是递加式的,所以最大值减去所要定时的值就是初值,举例如下:
最大值为100,我们只需要38,怎么办呢,由于是递加的,我们只需要在62时开始计时就可以了。
以proteus仿真为例简单讲解定时器赋初值用proteus搭建的电路图如下,晶振为12M,P2.0每10ms翻转一次,即P2.0输出的频率为100HZ。
这里使用16位的定时器,那单片机定时器0的最大计数就是65536.晶振为12M,那单片机的一个机器周期就是1us,定时器 0工作在方式1时最大定时65.536ms。
定时器的定时时间T = (65536-X),单位是us;
定时器初值X = 65536-T;
假设定时时间T=10ms=10000us,
那定时器初值X=65536-10000=55536us,也就是定时器0从55536开始递加到65536就是10ms,所以55536就是定时器的初值,55536转化为十六进制为0Xd8f0,所以定时器的初值为:
TH0 = 0XD8;
THL = 0XF0;
用虚拟示波器抓到的波形如下:
只需要支付硬件成本的STM32单片机学习板正在集资众筹,价格129元,。这款学习板包含了GPIO应用、RS232通讯、RS485通讯、CAN总线通讯、USB通讯、IIC总线、SPI总线、JTAG在线调试、SW在线调试、ISP自动下载、RTC实时时钟、TFT真彩屏应用等丰富的外设资源,详情请加微信号了解。
本订阅号致力于单片机、ARM等嵌入式软硬件的设计经验分享,秉承“人人都是电子设计经验的分享者”的理念,成功路上不孤单,我们一起努力。
公众号:micropoint8。嵌入式学习网振兴网:www.picmcu.com
厉害了我的51单片机:本身就是仿真器
利用STC-ISP软件对IAP15W4K58S4或者IAP15W4K61S4单片机进行简单设置,即可使之成为具有仿真功能的芯片,并可以在uVision4或者uVision5集成开发环境,实现用户程序的在线仿真调试。跟着下面一步一步操作,你就可以把让一款51单片机自带仿真器。
(1)运行STC-ISP软件,单击左下角“检测MCU选项”按钮,再给单片机上电,STC-ISP软件将自动识别单片机型号。
给单片机上电,软件可以自动识别单片机型号:
(2)选择界面右边“Keil仿真设置”选项页,单击“添加型号和头文件到Keil中”按钮,在弹出窗口中定位的Keil安装目录(Keil4一般在C:\Keil\,Keil5一般在C:\Keil_v5\),确定,将STC系列单片机的头文件及STC Monitor-51仿真驱动STCMON51.DLL安装完成。
(3)根据你使用的单片机型号,单击“将IAP15W4K61S4设置为仿真芯片(宽压系统,不支持USB下载)”按钮或者“将IAP15W4K58S4设置为仿真芯片(宽压系统,支持USB下载)”按钮,启动STC Monitor-51仿真器监控代码下载到芯片中,完成后即可与uVision4/5进行联机仿真调试。
正在向单片机下载仿真调试桩程序(Stub),
等待进度条完成,仿真器设置成功。
微助点注意
Keil仿真器监控程序占用了一些片内资源,对用户有如下限制:
占用片内Flash:6KB(0D000H~0E7EEH)
占用片内扩展XRAM:768B(0C00H~0EFEH)
占用IO端口:P3.0和P3.1
应避免访问和使用这些资源。
下面以uVision5为例讲解IDE端的设置:无需文字赘述,看下面一片截图即可。
(1)创建工程
选择合适路径并保存
选择单片机型号,这里找到并选择“STC MCU Database”
是否添加STARTUP.A51启动代码,对于C51程序通常需要,选择“是”,
然后向工程中添加.c源文件,工程就创建完毕了。
下面终于可以开始写程序了,为了简便起见,直接从STC-ISP软件范例程序复制一段测试代码,粘贴到.c文件即可。
直接编译通过,
为了实现仿真调试,做如下配置:
在Output页,勾选Create HEX File,
在Debug页,选择STC Monitor-51 Driver硬件调试驱动,勾选Load Application at Startup和Run to main(),然后点击Settings,设置串口号和波特率,
单击快捷按钮“Start/Stop Debug Session”启动调试器,联机成功将在命令行窗口显示硬件版本号。
联机完成,可以开始仿真调试了。
以上,STC的IAP15系列单片机仿真器设置完成,Enjoy!
关注微信公众号:精研电子社团,玩电子、编程序、写文章,我们都是认真的!
相关问答
61单片机 与51单片机的区别?指令结构有很大的区别,61是凌阳公司的16位单片机SPCE061A,专门用来做语音处理的。51单片机是一种8位单片机的统称,有很多公司的很多具体型号,但是他们都是基...
为什么叫51 单片机61单片机 ?51单片机是对所有兼容Intel8031指令系统的单片机的统称。因为这一系列的单片机大部分都带有“51”的数字,所以对这一系列的单片机统称51单片机。61单片机是台...
单片机 芯片有哪些类型?有以下七种类型:1、MCS-51系列Intel公司生产2、61单片机3、AVR单片机4、MSP430超低功耗单片机德州仪器(TI)公司生产5、PIC单片机MicroChip公司生产6、飞....
单片机 pusha表示什么?如果是51单片机,那么没有PUSHA指令,可以是PUSHAcc。进栈时,看你的SP开在什么地方,先要对SP加1,再进栈。例如:MOVSP,#60HPUSHACC那么,执行PUSHACC时,先SP+.....
数字式温度传感器与 单片机 连接需要A\D转换么???_汽配人问答[最佳回答]不需要,onewire通信,直接读写数据的
【 单片机 P标志位的问题若A中内容为63H,那么P标志位值为?是把...[最佳回答]63变为二进制查1个数.若累加器A中1的个数为奇数,则P=1;若累加器A中1的个数为偶数,则P=0.
51 单片机 多少钱谁能告诉我_其他问答_系统粉51单片机,179.00元,采用方便易学设计理念,各功能模块完全独立,互不干扰,模块之间用排线快速连接。一方面可以锻炼动手能力,同时可加强初学者对实验...
芯片是什么?用什么材料做的?有什么特点和用途 - 懂得文为Chip;芯片组为Chipset。芯片一般是指集成电路的载体,也是集成电...芯片,英文为Chip;芯片组为Chipset。芯片一般是指集成电路的载体,也是集成电...
STC 单片机 的logo商标怎么去掉或巧妙遮挡? - k61 xi6W9 的回答...或者你重新买这个型号无字的老师就看不出来了,或者找东西磨掉没有关系的,AT和STC只是两家公司的品牌,51和52中的1和2只是代表芯片内部存储空间大小...
STC90c516和STC89c52Rc 单片机 哪个好,有什么区别?两款单片机,只是资源不同,看设计需求。516程序空间大有61K52小,只有8K516RAM有1280个字节,52只有512个具体可以网上查查两个的资料两款单片机,只是资...