top6288's Blog

来源:百度文库 编辑:神马文学网 时间:2024/04/28 20:58:51
EDN首页  博客首页用户登陆  |  注册
top6288      档案      相册   
top6288's Blog
  首页
个人信息

博主:top6288
+加为好友          +发站内信
+博客精华          +推荐文章
最近加入的小组
博客公告
我的分类
AVR单片机  (4)
STM8单片机  (17)
博客日历
< 2010年6月>
日 一 二 三 四 五 六
30 31 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 1 2 3
4 5 6 7 8 9 10
博客广告
日志档案
2010年份  (21)
最新日志
· STM8与汇编语言(17)--蜂鸣器
· STM8与汇编语言(16)--PWM
· STM8与汇编语言(15)--AD转换
· STM8与汇编语言(14)--切换时钟源
· STM8与汇编语言(13)--修改CPU的时钟
最新评论

tomy_12
评论 2010/6/2 22:10:10
bu cuo
友情链接
博客统计
文章:21篇
评论:1篇
访问:4755
访客记录
V3765TU
marshallemon
czlyzhj
wnhb
zjxldq
pang103248228
',1)">最新日志
发表于:2010/6/17 13:18:33
标签:单片机  STM8  汇编  蜂鸣器   0

STM8与汇编语言(17)--蜂鸣器
STM8与汇编语言(17)--蜂鸣器 蜂鸣器是现在单片机应用系统中很常见的,常用于实现报警功能。为此STM8特别集成了蜂鸣器模块,应用起来非常方便。在应用蜂鸣器模块时,首先要打开片内的低速RC振荡器(应该也能使用外部的高速时钟,不过本人没实验过),其频率为128KHZ。然后通过设置蜂鸣器控制寄存器BEEP_CSR中的BEEPDIV[4:0]来获取8KHZ的时钟,再通过BEEPSEL最终产生1KHZ或2KHZ或4KHZ的蜂鸣器时钟,最后使能该寄存器中的BEEPEN位,产生蜂鸣器的输出。下面的实验程序首先初…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
点击查看原文
阅读(128)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/6/13 9:41:56
标签:单片机  STM8  汇编语言  PWM   1

STM8与汇编语言(16)--PWM
STM8与汇编语言(16)--PWM 在单片机应用系统中,也常常会用到PWM信号输出,例如电机转速的控制。现在很多高档的单片机也都集成了PWM功能模块,方便用户的应用。对于PWM信号,主要涉及到两个概念,一个就是PWM信号的周期或频率,另一个就是PWM信号的占空比。例如一个频率为1KHZ,占空比为30%,有效信号为1的PWM信号,在用示波器测量时,就是高电平的时间为300uS,低电平的时间为700uS的周期波形。在单片机中实现PWM信号的功能模块,实际上就是带比较器的计数器模块。…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
该用户于2010/6/13 9:42:15编辑过该文章
点击查看原文
阅读(192)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/6/13 8:55:03
标签:单片机  STM8  汇编语言  A/D   1

STM8与汇编语言(15)--AD转换
STM8与汇编语言(15)--AD转换 现在大部分的单片机也都具备了A/D转换器,有8位的,也有10位的,当然性能好的具备了12位的A/D。在STM8单片机中,提供的是10位的A/D,通道数随芯片不同而不同,少的有4个通道,多的则有16个通道。下面的实验程序首先对A/D输入进行采样,然后将采样结果的高8位(丢弃最低的2位),作为延时参数去调用延时子程序,然后再去驱动LED控制信号。因此不同的采样值,决定了LED的闪烁频率。当旋转ST三合一开发板上的电位器时,可以看到LED的闪烁频率发生变化…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
该用户于2010/6/13 8:55:22编辑过该文章
点击查看原文
阅读(150)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/6/11 9:55:53
标签:单片机  STM8  汇编语言  时钟源切换   0

STM8与汇编语言(14)--切换时钟源
STM8与汇编语言(14)--切换时钟源 STM8单片机的时钟源,即可以选内部的,也可以选外部的,在系统运行过程中,可以很方便地切换。下面的实验程序首先将主时钟源切换到外部的晶体振荡器上,振荡频率为8MHZ,然后,然后快速闪烁LED指示灯。接着,将主时钟源又切换到内部的振荡器上,振荡频率为2MHZ,然后再慢速闪烁LED指示灯。通过观察LED指示灯的闪烁频率,可以看到,同样的循环代码,由于主时钟源的改变的改变,闪烁频率和时间长短都发生了变化。同样还是利用ST的开发工具,生…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
该用户于2010/6/11 9:58:36编辑过该文章
点击查看原文
阅读(293)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/6/9 15:10:06
标签:单片机  STM8  汇编语言  CPU时钟   0

STM8与汇编语言(13)--修改CPU的时钟
STM8与汇编语言(13)--修改CPU的时钟 在有些单片机的应用系统中,并不需要CPU运行在多高的频率。在低频率下运行,芯片的功耗会大大下降。因此希望单片机能提供这个功能,STM8单片机确实有这个功能,并且修改也非常方便。下面的实验程序首先将CPU的运行时钟设置在8MHZ,然后快速闪烁LED指示灯。接着,通过修改主时钟的分频系数和CPU时钟的分频系数,将CPU时钟频率设置在500KHZ,然后再慢速闪烁LED指示灯。通过观察LED指示灯的闪烁频率,可以看到,同样的循环代码,由于CPU…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
该用户于2010/6/13 9:44:27编辑过该文章
点击查看原文
阅读(125)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/6/8 13:46:11
标签:单片机  STM8  汇编语言  EEPROM   0

STM8与汇编语言(12)--EEPROM应用
STM8与汇编语言(12)--EEPROM应用 在单片机的应用系统中,经常会用到EEPROM,用来保存一些掉电后仍然需要保存的数据。传统的方法是在单片机外再加一个EEPROM芯片,这种方法除了增加成本外,也降低了可靠性。现在,许多单片机芯片公司也都推出了集成有小容量EEPROM的单片机,降低了成本,提高了可靠性。STM8单片机芯片内部也集成有EEPROM,容量从640字节到2K字节。最为关键的是,在STM8单片机中,访问EEPROM就向访问常规的内存一样,非常方便。EEPROM的地址空间与内…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
该用户于2010/6/8 13:48:23编辑过该文章
点击查看原文
阅读(325)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/6/7 10:17:44
标签:单片机  STM8  汇编语言  UART   0

STM8与汇编语言(11)--UART应用之三
STM8与汇编语言(11)--UART应用之三 下面这个实验程序是在上一个实验程序的基础上,将字符接收改成中断方式。每当接收到一个字符,进入中断服务程序,在中断服务程序中,从UART的接收数据寄存器中读出字符,然后通过字符发送子程序发送出去。如果与WINDOWS的超级终端相连,则键盘上按什么按键,则显示对应的字符。同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,修改后的代码如下。要注意的是,一定要将串口的接收中断服务程序的入口地址填写中断…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
点击查看原文
阅读(115)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/6/4 13:39:11
标签:单片机  STM8  汇编语言  UART   1

STM8与汇编语言(10)--UART应用之二
STM8与汇编语言(10)--UART应用之二 下面这个实验程序比较简单,它是在上篇基础上,增加了查询方式从UART接收一个字符的子程序。主循环中,等待接收一个字符,然后将接收到的字符再发送出去。如果与WINDOWS的超级终端相连,则键盘上按什么按键,则显示对应的字符。同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,修改后的代码如下。编译通过后,下载到开发板,运行程序。在PC机上运行超级终端,波特率为9600,然后从键盘上输入按键,屏幕上就显示…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
点击查看原文
阅读(168)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/6/3 14:55:30
标签:单片机  STM8  汇编语言  UART   1

STM8与汇编语言(9)--UART应用之一
STM8与汇编语言(9)--UART应用之一 STM8单片机的UART功能很强,即可以作为普通的UART来使用,也支持LIN(局部互连网)。这里给出的例子是作为普通的UART来使用的。在使用UART时,主要面向的寄存器有:控制寄存器CR1、CR2和CR3,数据寄存器DR,状态寄存器SR,还有波特率寄存器BRR1和BRR2。这里特别要指出的是波特率寄存器是一个比较怪的设计,也说不清为啥这么设计,反正用起来相当别扭。例如,当主时钟为2MHZ时,如果要求波特率为9600,则分频系数DIV=2000000/9600=208…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
点击查看原文
阅读(399)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/6/2 15:22:47
标签:单片机  STM8  汇编语言  定时器   2

STM8与汇编语言(8)--16位定时器应用
STM8与汇编语言(8)--16位定时器应用 当需要更长时间的定时时,最好使用16位的定时器,STM8单片机中都提供了2到3个的16位定时器,方便用户使用。下面的代码给出了一个采用16位定时器实现的定时中断程序,在定时中断程序中,驱动LED指示灯的闪烁。切记,一定要将中断服务程序的入口地址填写到中断向量表中,并且要根据定时器的中断向量号在正确的位置上填写。同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,修改后的代码如下。编译通过后,下载到开发…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
点击查看原文
阅读(280)  |  评论(1)  |  收藏 (0)  |    举报
发表于:2010/6/1 15:59:17
标签:单片机  STM8  汇编语言  定时器   1

STM8与汇编语言(7)--8位定时器应用之二
STM8与汇编语言(7)--8位定时器应用之二 上次写的是用STM8单片机中的8位定时器作为软件延时,采用的是查询方式。在实际系统中,定时器的应用,更多的是采用中断方式,下面的代码就给出8位定时器在中断方式下的应用。实验程序首先初始化驱动LED的端口,然后初始化8位的定时器4,最后启动中断允许,要记住,一定要将中断服务程序的入口地址填写到中断向量表中,并且要根据中断向量号在正确的位置上填写。同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
该用户于2010/6/2 15:18:14编辑过该文章
点击查看原文
阅读(385)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/5/31 17:15:41
标签:STM8  汇编语言  定时器   1

STM8与汇编语言(6)--8位定时器应用之一
STM8与汇编语言(6)--8位定时器应用之一 STM8单片机中的外设资源是比较丰富的,定时器有8位的也有16位的,下面的实验程序,就是利用8位定时器4来进行延时,然后驱动LED闪烁。同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,修改后的代码如下。编译通过后,下载到开发板,运行程序,可以看到LED在闪烁,或者用示波器可以在LED引脚上看到方波。在这里要特别提醒的是,从ST给的手册上看,这个定时器中的计数器是一个加1计数器,但本人在实验过程中感觉…

系统分类:单片机   |    用户分类:STM8单片机    |    来源: 原创
该用户于2010/5/31 17:15:45编辑过该文章
点击查看原文
阅读(153)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/5/24 15:02:06
标签:单片机  AVR  IAR  C语言  优化   0

IAR FOR AVR 编译环境中优化要注意的问题
IAR FOR AVR 编译环境中优化要注意的问题 在用IAR开发C程序时,开发环境提供了一个优化的选项,有4档,即None/Low/Medium/High。但在实际应用时要注意,不是什么情况下都可以进行优化,有时在没有优化时运行的代码,优化后则不能正常运行了。(这个现象在用WINAVR软件开发时更严重,本人就是因为觉得WINAVR这个问题比较严重才转到IAR环境的)例如,下面的程序是让LED闪烁:#include // 定义一个宏操作#define _BV(x) (1<
系统分类:单片机   |    用户分类:AVR单片机    |    来源: 原创
该用户于2010/5/24 23:30:27编辑过该文章
点击查看原文
阅读(164)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/5/19 16:00:40
标签:单片机  AVR  IAR  C语言   0

IAR FOR AVR 编译环境中将数据定义在FLASH中的方法
IAR FOR AVR 编译环境中将数据定义在FLASH中的方法 在产品开发过程中,我们可能需要一些小的字库,或者有一些提示用的字符串,这些数据按照通常的方法定义的话,则会占据RAM空间,对于RAM空间本来就很小的AVR单片机来说,就显得问题比较严重了,可能会导致数据空间不够。在这种情况下,我们可以将这些数据分配到FLASH中,引用时直接从FLASH中取出。程序例子如下:#include __flash char s[10]={"0123456789"};int main(void){ int i; char a[10]; for(i=0;i<10;i++) { a[i] = s[i]; }}此时对应的map文件…

系统分类:单片机   |    用户分类:AVR单片机    |    来源: 原创
该用户于2010/5/26 9:22:22编辑过该文章
点击查看原文
阅读(206)  |  评论(0)  |  收藏 (0)  |    举报
发表于:2010/5/18 15:18:18
标签:单片机  AVR  IAR  C语言  全局变量分配   0

IAR FOR AVR 编译环境中全局变量的空间分配和初始化的分析
IAR FOR AVR 编译环境中全局变量的空间分配和初始化的分析 1. 例子1程序中仅包含一个空的main()函数,代码如下:#include char s[100];int main(void){} 此时对应的map文件显示: 表中除了前面见过的段外,增加了INITTAB、TINY_I和TINY_Z。TINZ_I的大小为0,暂时先不管它。TINY_Z的大小为100,正好是数组s的大小,因此可以看出全局变量的空间分配就从RAM空间的第1个字节(地址为0060H)开始,而数据堆栈和返回地址堆栈则放到后面去。另外,还有一个段是INITTAB,这个比较有意思,通过IAR…

系统分类:单片机   |    用户分类:AVR单片机    |    来源: 原创
该用户于2010/5/26 9:51:56编辑过该文章
点击查看原文
阅读(217)  |  评论(0)  |  收藏 (0)  |    举报
EDN首页登录区
About EDN China -编辑部 -广告部 -发行部 -读者往来 -Privacy Policy -网站导航 -电子网站大全 - 在线编辑: -帮助 2010Reed Business Information --Use of this website is subject to its terms of use.经营许可编号:京ICP证090436号
EDN.com |EDN Asia |EDN Japan |EDN Europe |EDN Australia