虫虫首页| 资源下载| 资源专辑| 精品软件
登录| 注册

1<b>3</b>6

  • AVR单片机原理及应用

    《AVR单片机原理及应用》详细介绍了ATMEL公司开发的ATmega8系列高速嵌入式单片机的硬件结构、工作原理、指令系统、接口电路、C编程实例,以及一些特殊功能的应用和设计,对读者掌握和使用其他ATmega8系列的单片机具有极高的参考价值 AVR单片机原理及应用》具有较强的系统性和实用性,可作为有关工程技术人员和硬件工程师的应用手册,亦可作为高等院校自动化、计算机、仪器仪表、电子等专业的教学参考书。 目录 第1章 绪论 1.1 AVR单片机的主要特性 1.2 主流单片机系列产品比较 1.2.1 ATMEL公司的单片机 1.2.2 Mkcochip公司的单片机 1.2.3 Cygnal公司的单片机 第2章 AVR系统结构概况 2.1 AVR单片机ATmega8的总体结构 2.1.1 ATmega8特点 2.1.2 结构框图 2.1.3 ATmega8单片机封装与引脚 2.2 中央处理器 2.2.1 算术逻辑单元 2.2.2 指令执行时序 2.2.3 复位和中断处理 2.3 ATmega8存储器 2.3.1 Flash程序存储器 2.3.2 SRAM 2.3.3 E2pROM 2.3.4 I/O寄存器 2.3.5 ATmega8的锁定位、熔丝位、标识位和校正位 2.4 系统时钟及其分配 2.4.1 时钟源 2.4.2 外部晶振 2.4.3 外部低频石英晶振 2.4.4 外部:RC振荡器 2.4.5 可校准内部.RC振荡器 2.4.6 外部时钟源 2.4.7 异步定时器/计数器振荡器 2.5 系统电源管理和休眠模式 2.5.1 MCU控制寄存器 2.5.2 空闲模式 2.5.3 ADC降噪模式 2.5.4 掉电模式 2.5.5 省电模式 2.5.6 等待模式 2.5.7 最小功耗 2.6 系统复位 2.6.1 复位源 2.6.2 MCU控制状态寄存器——MCUCSR 2.6.3 内部参考电压源 2.7 I/O端口 2.7.1 通用数字I/O端口 2.7.2 数字输入使能和休眠模式 2.7.3 端口的第二功能 第3章 ATmega8指令系统 3.1 ATmega8汇编指令格式 3.1.1 汇编语言源文件 3.1.2 指令系统中使用的符号 3.1.3 ATmega8指令 3.1.4 汇编器伪指令 3.1.5 表达式 3.1.6 文件“M8def.inc” 3.2 寻址方式和寻址空间 3.3 算术和逻辑指令 3.3.1 加法指令 3.3.2 减法指令 3.3.3 取反码指令 3.3.4 取补码指令 3.3.5 比较指令 3.3.6 逻辑与指令 3.3.7 逻辑或指令 3.3.8 逻辑异或 3.3.9 乘法指令 3.4 转移指令 3.4.1 无条件转移指令 3.4.2 条件转移指令 3.4.3 子程序调用和返回指令 3.5 数据传送指令 3.5.1 直接寻址数据传送指令 3.5.2 间接寻址数据传送指令 3.5.3 从程序存储器中取数装入寄存器指令 3.5.4 写程序存储器指令 3.5.5 I/0端口数据传送 3.5.6 堆栈操作指令 3.6 位操作和位测试指令 3.6.1 带进位逻辑操作指令 3.6.2 位变量传送指令 3.6.3 位变量修改指令 3.7 MCU控制指令 3.8 指令的应用 第4章 中断系统 4.1 外部向量 4.2 外部中断 4.3 中断寄存器 第5章 自编程功能 5.1 引导加载技术 5.2 相关I/O寄存器 5.3 Flash程序存储器的自编程 5.4 Flash自编程应用 第6章 定时器/计数器 6.1 定时器/计数器预定比例分频器 6.2 8位定时器/计数器O(T/CO) 6.3 16位定时器/计数器1(T/C1) 6.3.1 T/C1的结构 6.3.2 T/C1的操作模式 6.3.3 T/121的计数时序 6.3.4 T/C1的寄存器 6.4 8位定时器/计数器2(T/C2) 6.4.1 T/C2的组成结构 6.4.2 T/C2的操作模式 6.4.3 T/C2的计数时序 6.4.4 T/02的寄存器 6.4.5 T/C2的异步操作 6.5 看门狗定时器 第7章 AVR单片机通信接口 7.1 AVR单片机串行接口 7.1.1 同步串行接口 7.1.2 通用串行接口 7.2 两线串行TWT总线接口 7.2.1 TWT模块概述 7.2.2 TWT寄存器描述 7.2.3 TWT总线的使用 7.2.4 多主机系统和仲裁 第8章 AVR单片机A/D转换及模拟比较器 8.1 A/D转换 8.1.1 A/D转换概述 8.1.2 ADC噪声抑制器 8.1.3 ADC有关的寄存器 8.2 AvR单片机模拟比较器 第9章 系统扩展技术 9.1 串行接口8位LED显示驱动器MAX7219 9.1.1 概述 9.1.2 引脚功能及内部结构 9.1.3 操作说明 9.1.4 应用 9.1.5 软件设计 9.2 AT24C系列两线串行总线E2PPOM 9.2.1 概述 9.2.2 引脚功能及内部结构 9.2.3 操作说明 9.2.4 软件设计 9.3 AT93C46——三线串行总线E2PPOM接口芯片 9.3.1 概述 9.3.2 内部结构及引脚功能 9.3.3 操作说明 9.3.4 软件设计 9.4 串行12位的ADCTL543 9.4.1 概述 9.4.2 内部结构及引脚功能 9.4.3 操作说明 9.4.4 AD620放大器介绍 9.4.5 软件设计 9.5 串行输出16位ADCMAXl95 9.5.1 概述 9.5.2 引脚功能及内部结构 9.5.3 操作说明 9.5.4 应用 9.5.5 软件设计 9.6 串行输入DACTLC5615 9.6.1 概述 9.6.2 引脚功能及内部结构 9.6.3 操作说明 9.6.4 软件设计 9.7 串行12位的DACTLC5618 9.7.1 概述 9.7.2 内部结构及引脚功能 9.7.3 操作说明 9.7.4 软件设计 9.8 串行非易失性静态RAMX24C44 9.8.1 概述 9.8.2 引脚功能及内部结构 9.8.3 操作说明 9.8.4 软件设计 9.9 数据闪速存储器AT45DB041B 9.9.1 概述 9.9.2 引脚功能及内部结构 9.9.3 操作说明 9.9.4 软件设计 9.10 GM8164串行I/0扩展芯片 9.10.1 概述 9.10.2 引脚功能说明 9.10.3 操作说明 9.10.4 软件设计 9.11 接口综合实例 附录1 ICCACR简介 附录2 ATmega8指令表 参考文献

    标签: AVR 单片机原理

    上传时间: 2013-10-29

    上传用户:lanwei

  • LCD12864显示汉字和数字(程序和电路)

    附件为:LCD12864显示汉字和数字的程序与电路 /*  自定义延时子函数 */ void delayms(uchar z) {   int x,y;   for(x=z;x>0;x--)      for(y=110;y>0;y--); } /*      判断LCD忙信号状态 */ void buys() {   int dat;   RW=1;   RS=0;   do     {           P0=0x00;          E=1;    dat=P0;    E=0;    dat=0x80 & dat;   } while(!(dat==0x00)); } /*      LCD写指令函数 */ void w_com(uchar com) {   //buys();   RW=0;   RS=0;   E=1;   P0=com;   E=0; }  /*      LCD写数据函数 */ void w_date(uchar date) {   //buys();   RW=0;   RS=1;   E=1;   P0=date;   E=0; } /*     LCD选屏函数 */ void select_screen(uchar screen) {     switch(screen)     {         case 0:     //选择全屏                 CS1=0;        CS2=0;           break;      case 1:     //选择左屏                 CS1=0;        CS2=1;           break;                          case 2:     //选择右屏                 CS1=1;        CS2=0;           break;    /*  case 3:     //选择右屏                 CS1=1;          CS2=1;               break;    */     }           } /*   LCDx向上滚屏显示 */ void lcd_rol() {     int x;     for(x=0;x<64;x++)        {       select_screen(0);     w_com(0xc0+x);       delayms(500);     } } /*     LCD清屏函数:清屏从第一页的第一列开始,总共8页,64列 */ void clear_screen(screen) {   int x,y;   select_screen(screen);     //screen:0-选择全屏,1-选择左半屏,2-选择右半屏   for(x=0xb8;x<0xc0;x++)   //从0xb8-0xbf,共8页      {    w_com(x);    w_com(0x40);   //列的初始地址是0x40    for(y=0;y<64;y++)       {            w_date(0x00);              }       }    } /*   LCD显示汉字字库函数 */ void lcd_display_hanzi(uchar screen,uchar page,uchar col,uint mun) {  //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-3,mun:显示第几个汉字的参数       int a;    mun=mun*32;    select_screen(screen);    w_com(0xb8+(page*2));    w_com(0x40+(col*16));    for ( a=0;a<16;a++)       {        w_date(hanzi[mun++]);       }    w_com(0xb8+(page*2)+1);    w_com(0x40+(col*16));    for ( a=0;a<16;a++)       {        w_date(hanzi[mun++]);       } }  /*   LCD显示字符字库函数 */ void lcd_display_zifuk(uchar screen,uchar page,uchar col,uchar mun) {  //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-7,mun:显示第几个汉字的参数       int a;    mun=mun*16;    select_screen(screen);    w_com(0xb8+(page*2));    w_com(0x40+(col*8));    for ( a=0;a<8;a++)       {        w_date(zifu[mun++]);       }    w_com(0xb8+(page*2)+1);    w_com(0x40+(col*8));    for ( a=0;a<8;a++)       {        w_date(zifu[mun++]);       } } /*   LCD显示数字字库函数 */ void lcd_display_shuzi(uchar screen,uchar page,uchar col,uchar mun) {  //screen:选择屏幕参数,page:选择页参数0-3,col:选择列参数0-7,mun:显示第几个汉字的参数       int a;    mun=mun*16;    select_screen(screen);    w_com(0xb8+(page*2));    w_com(0x40+(col*8));    for ( a=0;a<8;a++)       {        w_date(shuzi[mun++]);       }    w_com(0xb8+(page*2)+1);    w_com(0x40+(col*8));    for ( a=0;a<8;a++)       {        w_date(shuzi[mun++]);       } } /*   LCD初始化函数 */ void lcd_init() {   w_com(0x3f);   //LCD开显示   w_com(0xc0);   //LCD行初始地址,共64行   w_com(0xb8);   //LCD页初始地址,共8页   w_com(0x40);   //LCD列初始地址,共64列     } /*   LCD显示主函数 */ void main() {   //第一行       int x;    lcd_init();     //LCD初始化    clear_screen(0);    //LCD清屏幕    lcd_display_shuzi(1,0,4,5);    //LCD显示数字    lcd_display_shuzi(1,0,5,1);    //LCD显示数字       lcd_display_hanzi(1,0,3,0);    //LCD显示汉字    lcd_display_hanzi(2,0,0,1);    //LCD显示汉字    //LCD字符汉字    lcd_display_hanzi(2,0,1,2);    //LCD显示汉字   //第二行     lcd_display_zifuk(1,1,2,0);    //LCD显示字符    lcd_display_zifuk(1,1,3,0);    //LCD显示字符    lcd_display_zifuk(1,1,4,0);    //LCD显示字符    lcd_display_zifuk(1,1,5,4);    //LCD显示字符    lcd_display_shuzi(1,1,6,8);    //LCD显示字符    lcd_display_shuzi(1,1,7,9);    //LCD显示字符    lcd_display_shuzi(2,1,0,5);    //LCD显示字符    lcd_display_shuzi(2,1,1,1);    //LCD显示字符    lcd_display_zifuk(2,1,2,4);    lcd_display_zifuk(2,1,3,1);    lcd_display_zifuk(2,1,4,2);    lcd_display_zifuk(2,1,5,3);   //第三行    for(x=0;x<4;x++)       {      lcd_display_hanzi(1,2,x,3+x);    //LCD显示汉字    }      for(x=0;x<4;x++)       {      lcd_display_hanzi(2,2,x,7+x);    //LCD显示汉字    }   //第四行     for(x=0;x<4;x++)       {      lcd_display_zifuk(1,3,x,5+x);    //LCD显示汉字    }     lcd_display_shuzi(1,3,4,7);     lcd_display_shuzi(1,3,5,5);     lcd_display_shuzi(1,3,6,5);     lcd_display_zifuk(1,3,7,9);     lcd_display_shuzi(2,3,0,8);     lcd_display_shuzi(2,3,1,9);     lcd_display_shuzi(2,3,2,9);     lcd_display_shuzi(2,3,3,5);     lcd_display_shuzi(2,3,4,6);     lcd_display_shuzi(2,3,5,8);     lcd_display_shuzi(2,3,6,9);     lcd_display_shuzi(2,3,7,2);        while(1);    /* while(1)     {     //  LCD向上滚屏显示        lcd_rol();     }    */ }

    标签: 12864 LCD 汉字 数字

    上传时间: 2013-11-08

    上传用户:aeiouetla

  • Mini Isp Box单片机下载盒产品使用说明书

    产品简介1.1  产品功能:1.1.1  本产品是手持万用在线编程机的简化版。保留了 ISP/IAP 的核心功能。LCD/键盘/内置存储器、加密性能相应弱化,以降低客户应用成本。1.1.2  下载盒可储存 1 个用户程序代码文件。1.1.3  下载盒可储存 1 个固件代码,分别支持不同系列单片机/ARM 芯片的脱机/离线下载和编程。 1.1.4  可支持意法半导体公司 STM32F系列芯片的脱机 ISP 烧录。1.1.5  支持 STM32F 系列芯片的脱机加密 IAP程序烧录/升级。1.1.6  支持 FreeScale HCS08 系列和 RS08 系列芯片的脱机 BDM 编程。1.1.7  支持 MicroChip 的 PIC12/PIC16/PIC18系列芯片的脱机 ICSP 编程。1.1.8  支持 AVR 系列 8 位单片机的脱机 ISP。1.1.9  本产品将不断升级,支持更多种类和型号的芯片。如果客户需要使用暂不支持的芯片,可向单片机在线编程网提出,本网可在优先开发对应芯片的支持固件。1.1.10 可内置干电池(4 节 7 号)供电,也可用电脑 USB 口供电,或选配USB口电源适配器1.2  产品销售清单:1.2.1  单片机下载盒 1 个。1.2.2  miniUSB 连接线一条。1.2.3  10PIN 转 6PIN 排线一根。1.2.4  说明书一本(即本文件,初期以电子文件形式提供)。1.2.5  10PIN-DB9 串口转换器一个(选配件)。1.2.6  USB 型电源适配器一个(选配件)。

    标签: Mini Isp Box 单片机

    上传时间: 2013-10-10

    上传用户:003030

  • C语言程序的基本结构

    在s3型试验板上实现:使LED1~LED8这8个二极管实现1、3、5、7及2.4、6、8的交替点亮,周期约1S。在我的文档中建立一个文件目录(csl),然后建立csluv2的工程项目.最后建立源程序文件(cs1.C)。

    标签: C语言程序 基本结构

    上传时间: 2013-10-09

    上传用户:古谷仁美

  • AVR mega16开发板恩易

    AVR mega16开发板 联系  杨迪 15336417867  0531-55508458 QQ:1347978253  http://www.easyele.cn本产品是我公司自主研发生产的,AVR Mega16开发板是以ATMEL的Mega16单片机为核心,高性能低定价的单片机开发工具,产品集成AVR JTAG ICE仿真器和STK500 ISP编程器,用户只需要再拥有一台计算机即可进行系统的学习,操作简单,使用方便,兼容开发型号:ATmega32,AVR mega16开发板可以做为学习板 仿真器 编程器使用,三种功能与一体,不需要单独买仿真器 编程器,省时,省事,省钱。货号:EasyAVR-M16规格: 套 重量:400克  单价298/套。AVR mega16开发板板载资源: 1.5V供电接口,输入7~9V 内正外负,送电源 2.板载AVR JTAG ICE  USB接口 3.板载AVR ISP  USB接口 4.Atmega16芯片,片内资源丰富 5.USB1.1 通讯接口 6.RS232 串行通讯口 7.RS485通讯接口 8.8个独立按键 9.4位一体七段数码管 HC595驱动 10.8个独立LED 11.1路有源蜂鸣器,也可接无源蜂鸣器 12.实时钟PCF8563 13.1IIC总线EEPROM AT24c01 14.1-wire单总线 15.晶振和复位电路 16.可选的有源晶振电路 17.AD电压调整电位器 18.电位器参考电压和待测电压调整 19.4个8位拨码开关 20.32Pin MCU外接端子 所有引脚标注 21.12864液晶接口 22.1602液晶接口 23.标准KF396尼龙接线端子 24.透明防滑硅胶脚垫 AVR mega16开发板实验例程: 模数转换(AD): 单通道AD采集,七段数码管显示结果 双通道分时采集,利用串口将结果传至PC 蜂鸣器: 按键检测,蜂鸣器鸣叫  PCF8563定时,蜂鸣器1s鸣叫一次 键盘:  按键检测,蜂鸣器鸣叫  按键检测,LED显示 LED:  跑马灯程序  按键检测,LED显示 定时器: 定时器T1实现1秒定时,利用七段数码管显示 内部EEPROM: 利用EEPROM记录开机次数,七段数码管显示结果 WDT: 看们狗定时器简单实验 DS18B20: DS18B20检测温度,七段数码管显示结果 DS18B20检测温度,利用串口将结果传至PC SPI: 利用SPI驱动SPI器件74HC595,实现七段数码管的显示 TWI: 利用TWI驱动TWI器件24C01 利用TWI驱动TWI器件PCF8563 24C01: 24C01读写,利用JTAG察看结果 24C01读写,利用串口将结果传至PC   AVR mega16开发板说明书下载:EasyAVR-M16-SK-3in1.pdf,内容详细,让您学习起来事半功倍,深入了解单片机电路的设计,找到好工作没问题,详细介绍电路设计和如果学习开发等内容,即使不买板子也值得你收藏。 物品清单: 1.AVR mega16开发板 (板载JTAG ISP 二合一) 2.9V 直流电源 3.USB通讯线缆 4.开发板说明书 5.资料光盘 原理图 开发软件 范例程序

    标签: mega AVR 16 开发板

    上传时间: 2013-10-23

    上传用户:dancnc

  • P87LPC767 OTP 单片机原理

    P87LPC767 OTP 单片机原理 P87LPC767 是20 脚封装的单片机适合于许多要求高集成度低成本的场合可以满足许多方面的性能要求作为Philips 小型封装系列中的一员P87LPC767 提供高速和低速的晶振和RC 振荡方式可编程选择具有较宽的操作电压范围可编程I/O 口线输出模式选择可选择施密特触发输入LED 驱动输出有内部看门狗定时器P87LPC767 采用80C51 加速处理器结构指令执行速度是标准80C51 MCU 的两倍特性􀂑 操作频率为20MHz 时除乘法和除法指令外加速80C51 指令执行时间为300600ns VDD=4.5 5.5V 时时钟频率可达20MHz VDD=2.7 4.5V 时时钟频率最大为10MHz􀂑 4 通道多路8 位A/D 转换器在振荡器频率fosc=20MHz 时转换时间为9.3μs􀂑 用于数字功能时操作电压范围为2.7 6.0V􀂑 4K 字节OTP 程序存储器128 字节的RAM 32Byte 用户代码区可用来存放序列码及设置参数􀂑 2 个16 位定时/计数器每一个定时器均可设置为溢出时触发相应端口输出􀂑 内含 2 个模拟比较器􀂑 全双工通用异步接收/发送器UART 及I2C 通信接口􀂑 八个键盘中断输入另加2 路外部中断输入􀂑 4 个中断优先级􀂑 看门狗定时器利用片内独立振荡器,无需外接元件,看门狗定时器溢出时间有8 种选择􀂑 低电平复位使用片内上电复位时不需要外接元件􀂑 低电压复位选择预设的两种电压之一复位可在掉电时使系统安全关闭也可将其设置为一个中断源􀂑 振荡器失效检测看门狗定时器具有独立的片内振荡器因此它可用于振荡器的失效检测􀂑 可配置的片内振荡器及其频率范围和RC 振荡器选项(用户通过对EPROM 位编程选择) 选择RC 振荡器时不需外接振荡器件􀂑 可编程 I/O 口输出模式准双向口,开漏输出,上拉和只有输入功能可选择施密特触发输入􀂑 所有口线均有20mA 的驱动能力􀂑 可控制口线输出转换速度以降低EMI,输出最小上升时间约为10ns􀂑 最少 15 个I/O 口,选择片内振荡和片内复位时可多达18 个I/O 口􀂑 如果选择片内振荡及复位时,P87LPC767 仅需要连接电源线和地线􀂑 串行 EPROM 编程允许在线编程2 位EPROM 安全码可防止程序被读出􀂑 空闲和掉电两种省电模式提供从掉电模式中唤醒功能低电平中断输入启动运行典型的掉电电流为1μA􀂑 低功耗 4MHz-20MHz,1.7-10mA@3.3v 100KHz-4MHz,0.044-1.7mA@3.3v 20KHz-100KHz,9-44μA@3.3v􀂑 20 脚DIP 和SO 封装

    标签: P87 767 LPC OTP

    上传时间: 2013-11-06

    上传用户:xcy122677

  • EDA技术课程设计:可控计数器的设计

    EDA技术课程设计:可控计数器的设计 设计要求:1.设计一个五进制计数器,由两个控制键sel控制不同的计数方式;2.当sel=00时,按0、1、2、3、4、0、1、2、3、4......顺序计数;3.当sel=01时,按0、2、4、6、8、0、2、4、6、8......顺序计数4.当sel=10时,按1、3、5、7、9、1、3、5、7、9......顺序计数5.当sel=11时,按5、4、3、2、1、5、4、3、2、1......顺序计数6.由数码管分别译码显示控制信号和计数状态,分别用3位数码管动态显示;7.给出VHDL设计的源程序。

    标签: EDA 计数器

    上传时间: 2013-12-16

    上传用户:YYRR

  • MSP430系列单片机C语言程序设计与开发

    MSP430系列单片机C语言程序设计与开发MSP430系列是一个具有明显技术特色的单片机品种。关于它的硬件特性及汇编语言程序设计已在《MSP430系列超低功耗16位单片机的原理与应用》及《MSP430系列 FLASH型超低功耗16位单片机》等书中作了全面介绍。《MSP430系列单片机C语言程序设计与开发》介绍IAR公司为MSP430系列单片机配备的C程序设计语言C430。书中叙述了C语言的基本概念、C430的扩展特性及C库函数;对C430的集成开发环境的使用及出错信息作了详尽的说明;并以MSP430F149为例,对各种应用问题及外围模块操作提供了典型的C程序例程,供读者在今后的C430程序设计中参考。   《MSP430系列单片机C语言程序设计与开发》可以作为高等院校计算机、自动化及电子技术类专业的教学参考书,也可作为工程技术人员设计开发时的技术资料。MSP430系列超低功耗16位单片机的原理与应用目录MSP430系列单片机C语言程序设计与开发 目录  第1章 C语言基本知识1.1 标识符与关键字11.1.1 标识符11.1.2 关键字11.2 数据基本类型21.2.1 整型数据21.2.2 实型数据31.2.3 字符型数据41.2.4 各种数据转换关系61.3 C语言的运算符71.3.1 算术运算符71.3.2 关系运算符和逻辑运算符71.3.3 赋值运算符81.3.4 逗号运算符81.3.5 ? 与 :运算符81.3.6 强制转换运算符91.3.7 各种运算符优先级列表91.4 程序设计的三种基本结构101.4.1 语句的概念101.4.2 顺序结构111.4.3 选择结构121.4.4 循环结构141.5 函数181.5.1 函数定义181.5.2 局部变量与全局变量191.5.3 形式参数与实际参数201.5.4 函数调用方式201.5.5 函数嵌套调用211.5.6 变量的存储类别221.5.7 内部函数和外部函数231.6 数组231.6.1 一维数组241.6.2 多维数组241.6.3 字符数组261.7 指针271.7.1 指针与地址的概念271.7.2 指针变量的定义281.7.3 指针变量的引用281.7.4 数组的指针281.7.5 函数的指针301.7.6 指针数组311.8 结构和联合321.8.1 结构定义321.8.2 结构类型变量的定义331.8.3 结构类型变量的初始化341.8.4 结构类型变量的引用341.8.5 联合341.9 枚举361.9.1 枚举的定义361.9.2 枚举元素的值371.9. 3 枚举变量的使用371.10 类型定义381.10.1 类型定义的形式381.10.2 类型定义的使用381.11 位运算391.11.1 位运算符391.11.2 位域401.12 预处理功能411.12.1 简单宏定义和带参数宏定义411.12.2 文件包含431.12.3 条件编译命令44第2章 C430--MSP430系列的C语言2.1 MSP430系列的C语言452.1.1 C430概述452.1.2 C430程序设计工作流程462.1.3 开始462.1.4 C430程序生成472.2 C430的数据表达482.2.1 数据类型482.2.2 编码效率502.3 C430的配置512.3.1 引言512.3. 2 存储器分配522.3.3 堆栈体积522.3.4 输入输出522.3.5 寄存器的访问542.3.6 堆体积542.3.7 初始化54第3章 C430的开发调试环境3.1 引言563.1.1 Workbench特性563.1.2 Workbench的内嵌编辑器特性563.1.3 C编译器特性573.1. 4 汇编器特性573.1.5 连接器特性583.1.6 库管理器特性583.1.7 C?SPY调试器特性593.2 Workbench概述593.2.1 项目管理模式593.2.2 选项设置603.2.3 建立项目603.2.4 测试代码613.2.5 样本应用程序613.3 Workbench的操作623.3.1 开始633.3.2 编译项目683.3.3 连接项目693.3.4 调试项目713.3.5 使用Make命令733.4 Workbench的功能汇总753.4.1 Workbench的窗口753.4.2 Workbench的菜单功能813.5 Workbench的内嵌编辑器993.5.1 内嵌编辑器操作993.5.2 编辑键说明993.6 C?SPY概述1013.6.1 C?SPY的C语言级和汇编语言级调试1013.6.2 程序的执行1023.7 C?SPY的操作1033.7.1 程序生成1033.7.2 编译与连接1033.7.3 C?SPY运行1033.7.4 C语言级调试1043.7.5 汇编级调试1113.8 C?SPY的功能汇总1133.8.1 C?SPY的窗口1133.8.2 C?SPY的菜单命令功能1203.9 C?SPY的表达式与宏1323.9.1 汇编语言表达式1323.9.2 C语言表达式1333.9.3 C?SPY宏1353.9.4 C?SPY的设置宏1373.9.5 C?SPY的系统宏137 第4章 C430程序设计实例4.1 程序设计与调试环境1434.1.1 程序设计调试集成环境1434.1.2 设备连接1444.1.3 ProF149实验系统1444.2 数值计算1454.2.1 C语言表达式1454.2.2 利用MPY实现运算1464.3 循环结构1474.4 选择结构1484.5 SFR访问1494.6 RAM访问1504.7 FLASH访问1514.8 WDT操作1534.8. 1 WDT使程序自动复位1534.8.2 程序对WATCHDOG计数溢出的控制1544.8.3 WDT的定时器功能1554.9 Timer操作1554.9.1 用Timer产生时钟信号1554.9.2 用Timer检测脉冲宽度1564.10 UART操作1574.10.1 点对点通信1574.10.2 点对多点通信1604.11 SPI操作1634.12 比较器操作1654.13 ADC12操作1674.13.1 单通道单次转换1674.13.2 序列通道多次转换1684.14 时钟模块操作1704.15 中断服务程序1714.16 省电工作模式1754.17 调用汇编语言子程序1764.17.1 程序举例1764.17.2 生成C程序调用的汇编子程序177第5章 C430的扩展特性5.1 C430的语言扩展概述1785.1.1 扩展关键字1785.1.2 #pragma编译命令1785.1.3 预定义符号1795.1.4 本征函数1795.1.5 其他扩展特性1795.2 C430的关键字扩展1795.2.1 interrupt1805.2.2 monitor1805.2.3 no_init1815.2.4 sfrb1815.2.5 sfrw1825.3 C430的 #pragma编译命令1825.3.1 bitfields=default1825.3.2 bitfields=reversed1825.3.3 codeseg1835.3.4 function=default1835.3.5 function=interrupt1845.3.6 function=monitor1845.3.7 language=default1845.3.8 language=extended1845.3.9 memory=constseg1855.3.10 memory=dataseg1855.3.11 memory=default1855.3.12 memory=no_init1865.3.13 warnings=default1865.3.14 warnings=off1865.3.15 warnings=on1865.4 C430的预定义符号1865.4.1 DATE1875.4.2 FILE1875.4.3 IAR_SYSTEMS_ICC1875.4.4 LINE1875.4.5 STDC1875.4.6 TID1875.4.7 TIME1885.4.8 VER1885.5 C430的本征函数1885.5.1 _args$1885.5.2 _argt$1895.5.3 _BIC_SR1895.5.4 _BIS_SR1905.5.5 _DINT1905.5.6 _EINT1905.5.7 _NOP1905.5.8 _OPC1905.6 C430的汇编语言接口1915.6.1 创建汇编子程序框架1915.6.2 调用规则1915.6.3 C程序调用汇编子程序1935.7 C430的段定义1935.7.1 存储器分布与段定义1945.7.2 CCSTR段1945.7.3 CDATA0段1945.7.4 CODE段1955.7.5 CONST1955.7.6 CSTACK1955.7.7 CSTR1955.7.8 ECSTR1955.7.9 IDATA01965.7.10 INTVEC1965.7.11 NO_INIT1965.7.12 UDATA0196第6章 C430的库函数6.1 引言1976.1.1 库模块文件1976.1.2 头文件1976.1.3 库定义汇总1976.2C 库函数参考2046.2.1 C库函数的说明格式2046.2.2 C库函数说明204第7章 C430编译器的诊断消息7.1 编译诊断消息的类型2307.2 编译出错消息2317.3 编译警告消息243附录 AMSP430系列FLASH型芯片资料248附录 BProF149实验系统251附录 CMSP430x14x.H文件253附录 DIAR MSP430 C语言产品介绍275

    标签: MSP 430 C语言 单片机

    上传时间: 2014-05-05

    上传用户:253189838

  • 8086指令系统

    8086指令系统目录 概述 2.1节   目录 2.1.1--2.1.5(传送)     2.1.1 目录:1~3        2.1.1-1 mov类例1                   mov类例2                   mov类例3                   mov类例4(END)        2.1.1-2. xchg  --3.XLAT                 查表示意图(end)     2.1.2堆栈操作指令(1)            堆栈操作指令(2)            堆栈操作指令(3)            堆栈操作指令(4)            堆栈操作指令(5)(END)     2.1.3标志传送指令(1)            标志传送指令(2)(end)     2.1.4地址传送指令(1)            地址传送指令(2)            地址传送指令(3)(end)     2.1.5输入输出指令(1)            输入输出指令(2)            输入输出指令(3)(end) 2.2节   目录 2.2.1--2.2.6(算术)     2.2.1加法指令(1)            加法指令(2)            加法指令(3)            加法指令(4)            加法指令5 end     2.2.2减法指令(1)            减法指令(2)            减法指令(3)            减法指令(4)      减法指令(5)            减法指令(6)(end)     2.2.3乘法指令(1)            乘法指令(2)            乘法指令(3)(end)     2.2.4除法指令(1)            除法指令(2)(end)     2.2.5符号扩展指令(end) 符号扩展说明     2.2.6十进制调整指令(1)            十进制调整指令(2)            十进制调整指令(3)            十进制调整指令(4)            十进制调整指令(5)            十进制调整指令(6)            十进制调整指令(7)            十进制调整指令(8)            十进制调整指令(9)(end) 2.3节  目录 2.3.1--2. 3.3(位)     2.3.1 逻辑运算指令(1)             逻辑运算指令(2)             逻辑运算指令(3)             逻辑运算指令(4)             逻辑运算指令(END)     2.3.2 移位指令(1)             移位指令(2)             移位指令(3)             移位指令(4)(end)     2.3.3 循环移位指令(1)             循环移位指令(2)(end) 2.4节  目录     2.4.1 无条件转移指令(1) 短转移的转移范围             无条件转移指令(2)             无条件转移指令(3)             无条件转移指令(4)(end)     2.4.2 条件转移指令(1)             条件转移指令(2)             条件转移指令(3)             条件转移指令(4)             条件转移指令(5)(end)     2.4.3 循环控制指令(1)             循环控制指令(2)(end)  2.4.4 子程序调用及返回指令(1)        子程序调用及返回指令(2)        子程序调用及返回指令(3)        子程序调用及返回指令(4)        子程序调用及返回指令(5) 子程序调用及返回指令(6) (end)     2.4.5 中断控制指令(1)             中断控制指令(2)             中断控制指令(3)             中断控制指令(4)             中断控制指令(5)             中断控制指令(6)             中断控制指令(7)             中断控制指令(8)(end)     2.4.6 系统功能调用(1)             系统功能调用(2)             系统功能调用(3)(end) 2.5节 目录 1---6(串操作) 串操作(1)传送 串操作(2) 串操作(3) 串操作(4)存串 串操作(5)读串、比较 串操作(6)搜索、重复前缀 串操作(7)REP 串操作(8)REPZ/REPNZ 串操作(9)前缀注释 串操作(10)例题 串操作(11)注释(end) 2.6 处理机控制类指令(1)(end)

    标签: 8086 指令系统

    上传时间: 2013-10-30

    上传用户:大三三

  • 用单片机AT89C51改造普通双桶洗衣机

    用单片机AT89C51改造普通双桶洗衣机:AT89C2051作为AT89C51的简化版虽然去掉了P0、P2等端口,使I/O口减少了,但是却增加了一个电压比较器,因此其功能在某些方面反而有所增强,如能用来处理模拟量、进行简单的模数转换等。本文利用这一功能设计了一个数字电容表,可测量容量小于2微法的电容器的容量,采用3位半数字显示,最大显示值为1999,读数单位统一采用毫微法(nf),量程分四档,读数分别乘以相应的倍率。电路工作原理  本数字电容表以电容器的充电规律作为测量依据,测试原理见图1。电源电路图。 压E+经电阻R给被测电容CX充电,CX两端原电压随充电时间的增加而上升。当充电时间t等于RC时间常数τ时,CX两端电压约为电源电压的63.2%,即0.632E+。数字电容表就是以该电压作为测试基准电压,测量电容器充电达到该电压的时间,便能知道电容器的容量。例如,设电阻R的阻值为1千欧,CX两端电压上升到0.632E+所需的时间为1毫秒,那么由公式τ=RC可知CX的容量为1微法。  测量电路如图2所示。A为AT89C2051内部构造的电压比较器,AT89C2051 图2 的P1.0和P1.1口除了作I/O口外,还有一个功能是作为电压比较器的输入端,P1.0为同相输入端,P1.1为反相输入端,电压比较器的比较结果存入P3.6口对应的寄存器,P3.6口在AT89C2051外部无引脚。电压比较器的基准电压设定为0.632E+,在CX两端电压从0升到0.632E+的过程中,P3.6口输出为0,当电池电压CX两端电压一旦超过0.632E+时,P3.6口输出变为1。以P3.6口的输出电平为依据,用AT89C2051内部的定时器T0对充电时间进行计数,再将计数结果显示出来即得出测量结果。整机电路见图3。电路由单片机电路、电容充电测量电路和数码显示电路等 图3 部分组成。AT89C2051内部的电压比较器和电阻R2-R7等组成测量电路,其中R2-R5为量程电阻,由波段开关S1选择使用,电压比较器的基准电压由5V电源电压经R6、RP1、R7分压后得到,调节RP1可调整基准电压。当P1.2口在程序的控制下输出高电平时,电容CX即开始充电。量程电阻R2-R5每档以10倍递减,故每档显示读数以10倍递增。由于单片机内部P1.2口的上拉电阻经实测约为200K,其输出电平不能作为充电电压用,故用R5兼作其上拉电阻,由于其它三个充电电阻和R5是串联关系,因此R2、R3、R4应由标准值减去1K,分别为999K、99K、9K。由于999K和1M相对误差较小,所以R2还是取1M。数码管DS1-DS4、电阻R8-R14等组成数码显示电路。本机采用动态扫描显示的方式,用软件对字形码译码。P3.0-P3.5、P3.7口作数码显示七段笔划字形码的输出,P1.3-P1.6口作四个数码管的动态扫描位驱动码输出。这里采用了共阴数码管,由于AT89C2051的P1.3-P1.6口有25mA的下拉电流能力,所以不用三极管就能驱动数码管。R8-R14为P3.0-P3.5、P3.7口的上拉电阻,用以驱动数码管的各字段,当P3的某一端口输出低电平时其对应的字段笔划不点亮,而当其输出高电平时,则对应的上拉电阻即能点亮相应的字段笔划。

    标签: 89C C51 AT 89

    上传时间: 2013-12-31

    上传用户:ming529