自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(52)
  • 收藏
  • 关注

原创 ATmega16L 的中断源及在GCC中的中断名

ATmega16L 的中断源及在GCC中的中断名 中断源中断定义在GCC中的中断名SIG_NAMERESET  复位中断 INT0外部中断请求0SIG_INTERRUPT0INT1外部中断请求1SIG_INTERRUPT1TIMER2 COMP定时/计时器 2 比较匹配SIG_OUTPUT_COMP

2011-12-22 17:40:32 595

原创 C语言程序>>USART

#include #include #include #include "usart.h"//常量定义#define BAUDRATE         9600 //波特率#define F_CPU    16000000 //这个已经在makefile里面定义了void init_USART(void)//USART 初始化{    //USART 9600

2011-12-22 17:40:23 752

原创 C语言程序>>SPI

#include #define _V_SPI_#define SPI_PORT PORTB#define SPI_DDR DDRB#define SPI_PIN PINB#define DS1302_MOSI   5  //PB5 MOSI要串10K电阻到MISO,然后把MISO跟DS1302_IO脚短接在一起的#define DS1302_MISO   6  //PB6

2011-12-22 17:40:09 1173

原创 C语言程序>>LCD1602

unsigned char address;    if (y == 0)   address = 0x80 + x;    else        address = 0xc0 + x;    LCD_write_char( address, 0 );  }*//*****************************************************

2011-12-22 17:40:01 786

原创 C语言程序>>IIC

#include #include #include #include #define F_CPU 16000000//#include //定义了各种模式下的状态码列表(TWSR已屏蔽预分频位),本文后面附上中文描述//管脚定义#define  pinSCL    0     //PC0 SCL#define  pinSDA    1     //PC1 SD

2011-12-22 17:39:50 549

原创 C语言程序>>DS1302

#include #include #include "DS1302.h"/* DS1302 IO口定义 */#define CLK     PC0    #define DATA    PC1#define RST     PC6#define DS1302_DATA_DDR_OUT() DDRC |= (1#define DS1302_DATA_DDR_IN()

2011-12-22 17:39:36 692

原创 C语言程序>>DS18B20

/* * 功能描述:DS18B20(单个)驱动程序 *    温度精度:正温度,1位小数,无校验 *     EEPROM 0:温度LSB 1:温度MSB 2:TH 3:TL 4:精度寄存器(9~12)8:CRC *     采用默认值:转换精度默认为12 位,而分辨率是0.625  *    DS18B20 复位-->执行ROM 指令-->执行DS18B20 功能指令。

2011-12-22 17:39:27 1105

原创 C语言程序>>ADC

#include #include #include "adc.h"#include "key.h"#define MaxAdcBufSize 9#define AdcBufStep 3static volatile unsigned int ADCBuffer[MaxAdcBufSize];/**************************************

2011-12-22 17:39:08 1391

原创 C语言程序>>LCD12864

/*****************************************************************程序说明CA12864K(ST7920)内核的点阵型LCD12864子程序日   期:2010-09-10修改日期:引脚图|-------------------------------------------------------------

2011-12-22 17:39:00 926

原创 C语言程序>>AT24C64

/*****************************************************************程序说明:EEPROM 24C64子程序注:(1)单片机:AT89S52晶振Fosc:11.0592MHz编程软件:Keil uVision2; (2)地址为000;容量为8K;I2C 在时钟线为高时数据被写入 (3)I2C 开始信号:在时钟线为高时

2011-12-22 17:38:52 5032

原创 C语言程序>>ADC0832

/******************************************************************程序说明:ADC0832子程序注:(1)单片机:AT89S52晶振Fosc:11.0592MHz编程软件:Keil uVision2;   (2)芯片:ADC0832A/D转换芯片 双通道 串口8位分辨率F渥罡叻直婵纱?56级,可以适应一般的模拟量转换要

2011-12-22 17:38:43 6939

原创 C语言程序>>LCD12864

/*****************************************************************程序说明CA12864K(ST7920)内核的点阵型LCD12864子程序开始日期:2010-08-16完成日期:2010-08-16修改日期:作者:蔡亚辉引脚图|-------------------------------------

2011-12-22 17:38:19 1559

转载 va_list的用法与vsprintf

VA_LIST的用法( VA_LIST 是在C语言中解决变参问题的一组宏):(1)首先在函数里定义一具VA_LIST型的变量,这个变量是指向参数的指针(2)然后用VA_START宏初始化变量刚定义的VA_LIST变量,这个宏的第二个参数是第一个可变参数的前一个参数,是一个固定的参数。(如在运行VA_START(ap,v)以后,ap指向第一个可变参数在堆栈的地址。)(3)然后用V

2011-12-21 21:18:30 290

转载 C语言中实现参数个数不确定的函数

C语言中有一种长度不确定的参数,形如:"…",它主要用在参数个数不确定的函数中,我们最容易想到的例子是printf函数。(注意:在C++中有函数重载(overload)可以用来区别不同函数参数的调用,但它还是不能表示任意数量的函数参数。)C语言用va_start等宏来处理这些可变参数。这些宏看起来很复杂,其实原理挺简单,就是根据参数入栈的特点从最靠近第一个可变参数的固定参数开始,依次获取每个可

2011-12-21 21:18:20 3357

转载 va_list、va_start、va_arg、va_end的原理与使用

1、概述由于在C语言中没有函数重载,解决不定数目函数参数问题变得比较麻烦;即使采用C++,如果参数个数不能确定,也很难采用函数重载.对这种情况,有些人采用指针参数来解决问题.下面就c语言中处理不定参数数目的问题进行讨论.定义大家先看几宏.在VC++6.0的include有一个stdarg.h头文件,有如下几个宏定义:#define _INTSIZEOF(n)   ((sizeo

2011-12-21 21:17:54 319

转载 汇编里 import 和export

B   .   和 jmp $  相同,自己在死循环IMPORT ,定义表示这是一个外部变量的标号,不是在本程序定义的EXPORT ,表示本程序里面用到的变量提供给其他模块调用的。以上两个在汇编和C语言混合编程的时候用到刚看到一篇不错的BLOG,解说C和汇编混编的,虽然貌似是翻译ADS文档的,不过写的挺不错,通俗容易懂,可以看看其实汇编调用C貌似很简单B Main 就完了,

2011-12-21 21:17:43 613

转载 RO段、RW段和ZI段 --Image$$??$$Limit 含义

RO段、RW段和ZI段 --Image$$??$$Limit 含义     IMPORT |Image$$RO$$Limit|     IMPORT |Image$$RW$$Base|     IMPORT |Image$$ZI$$Base|      IMPORT |Image$$ZI$$Limit|     IMPORT |Image$$RW$$Limit|从ADS1.

2011-12-21 21:17:31 354

转载 关于__irq 的使用

__irq为一个标识,用来表示一个函数是否为中断函数。对于不同的编译器,__irq在函数名中的位置不一样,例如:ADS编译器中 : void __irq IRQ_Eint0(void);Keil编译器中 : void IRQ_Eint0(void) __irq;但是其意义一样,它所完成的任务是标识该函数为中断函数,在编译器编译是调用此函数时,先保护函数入口现场,然后执行中断函数,函数执

2011-12-21 21:17:11 431

转载 ARM微处理器的寄存器结构

ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄存器包括:- 31个通用寄存器,包括程序计数器(PC指针),均为32位的寄存器。- 6个状态寄存器,用以标识CPU的工作状态及程序的运行状态,均为32位,目前只使用了其中的一部分。同时,ARM处理器又有7种不同的处理器模式,在每一种处理器模式下均有一组相应的寄存器与之对应。即在任意一种处理器模式下,可访问的寄存器包括15个

2011-12-21 21:17:00 999

转载 Nand flash和Nor flash区别

NOR和NAND是现在市场上两种主要的非易失闪存技术。Intel于1988年首先开发出NOR flash技术,彻底改变了原先由EPROM和EEPROM一统天下的局面。紧接着,1989年,东芝公司发表了NAND flash结构,强调降低每比特的成本,更高的性能,并且象磁盘一样可以通过接口轻松升级。但是经过了十多年之后,仍然有相当多的硬件工程师分不清NOR和NAND闪存。相“flash存储器”

2011-12-21 21:16:43 227

转载 ARM 汇编伪指令宏的用法详解(MACRO-MEND)

宏是一段独立的程序代码,它是通过伪指令定义的,在程序中使用宏指令即可调用宏。当程序被汇编时,汇编程序将对每个调用进行展开,用宏定义取代源程序中的宏指令。MACRO、MEND语法格式:MACRO[$ label] macroname{ $ parameter1, $ parameter,…… }指令序列MENDMACRO伪操作标识宏定义的开始,MEND标识宏定义的结束

2011-12-21 21:16:22 1536

转载 ARM体系结构中的存储系统

1.arm存储系统中的大/小端  在arm体系结构中,每个字单元包含4字节单元或者2个半字单元,1个半字单元包含2字节单元。但是在字单元中,4字节哪一个是高位字节,哪一个是低位字节则有两种不同的格式,通常称为大端格式或者小端格式,也就是big-endian格式和little-endian格式。大/小端的选择对于不同的芯片来说有一些不同的选择方式,一般都可以通过外部的引脚或内部的寄存器来选择。具

2011-12-21 21:16:07 665

转载 ARM的开发步骤

1. 做个最小系统板:如果你从没有做过ARM的开发,建议你一开始不要贪大求全,把所有的应用都做好,因为ARM的启动方式和dsp或单片机有所不同,往往会遇到各种问题,所以建议先布一个仅有Flash,SRAM或SDRAM、CPU、JTAG、和复位信号的小系统板,留出扩展接口。使最小系统能够正常运行,你的任务就完成了一半,好在ARM的外围接口基本都是标准接口,如果你已有这些硬件的布线经验,这对你来讲是一

2011-12-21 21:15:49 282

转载 嵌入式高手要学习的内容

嵌入式门槛虽然较高,但和其他事物一样,并不是牢不可破的.学习步骤如下:1、《C语言》第二版 谭浩强; 《C程序设计语言》第二版 徐宝文译机戒工业出版社2、《数据结构》C语言版 黄国愉、叶乃青编清华大学出版社3、《实用C++程序设计》第二板 中国电力出版社 Steve_Oualline著    此阶段主要是学习其面向对象的编程思想,加深对C语言和数据结构的理解。4、学习单片机

2011-12-21 21:08:49 267

原创 TQ2440裸奔程序>>流水灯测试程序

//=========================================// NAME: main.c// DESC: TQ2440流水灯测试程序//       板载LED为GPB[5:8]//=========================================/* 头文件包含 *//* 端口B寄存器地址 */#define rGPBCON

2011-12-21 21:08:30 448

原创 TQ2440裸奔程序>>EINT中断按键测试程序

//=========================================// NAME: main.c// DESC: TQ2440流水灯测试程序//       板载LED为PB//=========================================/* 头文件包含 */#define U32 unsigned int/* 中断向量表 */

2011-12-21 21:08:21 517

原创 TQ2440裸奔程序>>定时器4中断测试程序

//=========================================// NAME: main.c// DESC: 内部定时器4LED灯延时//=========================================/* 头文件包含 */#define U32 unsigned int/* 中断向量表 */#define _ISR_START

2011-12-21 21:08:08 363

原创 TQ2440裸奔程序>>PWM蜂鸣器测试程序

//=========================================// NAME: main.c// DESC: TQ2440PWM测试程序//       蜂鸣器频率响 GPB0 设置为TOUT//   设置为输出低电平就关掉蜂鸣器//   改变频率通过改变时钟频率//=========================================

2011-12-21 21:07:58 452

原创 TQ2440裸奔程序>>看门狗测试程序

//=========================================// NAME: main.c// DESC: TQ2440看门狗测试程序// 现象分析:看门狗相应有两种:1、中断 2、复位// 对应的寄存器设置 rWTCON = rWTCON | 0x1;  //看门狗定时器超时复位//     rWTCON = rWTCON | (0x1//

2011-12-21 21:07:44 460

原创 TQ2440裸奔程序>>串口UART打印printf测试程序

//=========================================// NAME: main.c// DESC: TQ2440串口UART打印printf测试程序//=========================================/* 头文件包含 */#include "def.h"#include "option.h"#inclu

2011-12-21 21:07:16 524

原创 TQ2440裸奔程序>>串口UART的PC机按键测试程序

//=========================================// NAME: main.c// DESC: TQ2440串口UART测试程序//=========================================/* 头文件包含 */#include "def.h"#include "option.h"#include "2440

2011-12-21 21:05:44 472

原创 TQ2440裸奔程序>>2440init.s启动代码分析

;=========================================; NAME: 2440INIT.S; DESC: C start up codes;       Configure memory, ISR ,stacks; Initialize C-variables;=========================================

2011-12-21 21:05:08 454

转载 AVR 内部EEPROM读写范例(M16)

#include #include #include "EEPROM.h"void EEPROM_Read(unsigned int addr,unsigned char *pbuf,unsigned char length){ unsigned char i; for(i = 0;i  {  pbuf[i]=eeprom_read_byte(addr + i);

2011-12-20 20:58:52 2167

原创 C语言程序>>INTERRUPT

#include #include #include #define uchar unsigned char#define uint  unsigned int#define BIT(x) (1int main(void){ DDRA = 0xff; MCUCR |= BIT(ISC11)|(ISC00)|(ISC01); //INT0上升沿中断 INT1下降沿

2011-12-20 20:57:57 686

转载 M128的熔丝位出厂时默认为ATmega103 兼容模式,带来的问题

只剩下一个 USART,而且只支持异步模式。波特率寄存器只有低8 位可用。 只有一个16位的定时器/计数器,两个比较寄存器,而不是两个16位定时器/计数器, 三个比较寄存器。 不支持两线接口。 端口 C 只能输出。 端口 G 只能用做第二功能,而不能作为通用I/O 端口。 端口 F 只能作为输入,而不能作为ADC 的模拟输入引脚。 不支持引导程序功能。 不能够调节片

2011-12-20 20:57:10 488

转载 正确配置AVR熔丝位的建议

正确配置AVR熔丝位     对AVR熔丝位的配置是比较细致的工作,用户往往忽视其重要性,或感到不易掌握。下面给出对AVR熔丝位的配置操作时的一些要点和需要注意的相关事项。有关ATmega128熔丝位的具体定义和功能请查看本书相关章节,在附录中将给出一个完整的汇总表。(1)在AVR的器件手册中,对熔丝位使用已编程(Programmed)和未编程(Unprogrammed)定义熔丝位的状

2011-12-20 20:56:14 531

原创 VB 串口调试助手源代码

Option Explicit                             '变量显示'----------------------------------'          变量定义申明'----------------------------------Public blnComOpen As Boolean                '串口状态'----

2011-12-20 20:54:57 1933

原创 ADO ACCESS数据库程序编写

Option Explicit                             '变量显示'----------------------------------'          变量定义申明'----------------------------------'数据库路径及数据库、连接字符串Public ADOcon As New ADODB.Connection

2011-12-20 20:53:57 336

转载 s3c2440的LCD应用

人机交互是嵌入式系统必须具有的功能。比较简单的人机交互有按键、LED、蜂鸣器,稍微复杂的有7段数码管和点阵。但如今这些都不能满足人们的需求了,所以又出现了LCD和触摸屏技术。s3c2440具有LCD和触摸屏接口,可以很好的连接LCD和触摸屏。这篇文章主要介绍TFT型LCD的用法。        要想正确使用LCD,必须注意两点:1、时序;2、显示缓存区。 1、时序LCD一般需要

2011-12-20 20:48:01 161

转载 s3c2440的UART用法

SPI、IIC和UART是最常用的三种串行总线,这三种总线在s3c2440中都被集成了。在这里我们主要介绍UART,另两个总线在后面的文章中给出。        UART(Universal Asynchronous Receiver/Transmitter,通用异步接收/发送装置)用于异步通信,可以实现全双工发送和接收。它不仅可以实现不同嵌入式系统之间的通信,还可以实现与PC之间的通信。

2011-12-20 20:47:20 230

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除