附件为: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(); } */ }
上传时间: 2013-11-08
上传用户:aeiouetla
XLISP 系列单片机综合仿真试验仪(以下简称 XLISP 系列)是深圳市学林电子有限公司综合多年经验开发出的多功能 8051 单片机平台(兼容 AVR/PIC 单片机的部 份烧写实验功能)。本系列目前包含 XL600 单片机试验仪和 XL1000 USB 型单片机实验仪,集成常用的单片机 外围硬件,ISP 下载线,单片机仿真器, 单片机试验板,编程器功能于一身,特别适合新手学习使用! 第一章:XLISP 系列 单片机综合仿真试验仪系统简介 1.1 系统简介……………………………………………………………2 1. 2 各个模块接口的定义……………………………………………3 第二章: 快速入门篇- 跟我来用 XLISP 系列作跑马灯实验 2.1 软件安装介绍………………………………………………………5 2.2 软件操作……………………………………………………………6 第三章 USB 接口安装指南(仅限 XL1000) 3.1 USB 驱动程序安装…………………………………………………8 3.2 特别情况下的 usb安装……………………………………………10 第四章 ISP 下载部份的应用 4.1 ISP 下载部份介绍…………………………………………11 4.2 XLISP 系列下载头之插头定义………………………………12 4.3 常用芯片的 ISP 相关引脚连接方法……………………………13 第五章 XLISP 系列 仿真操作指南 5.1 仿真概述…………………………………………………………14 5.2 KEIL UV2 软件操作指南…………………………………………15 第六章:XLISP 系列单片机系统实验 MCS-51 单片机引脚说明………………………………………………17 实验 1 最简单的八路跑马灯………………………………………18 实验 2 用 XLISP 系列试验仪做一个 8 路彩灯控制器…………20 实验 3 8 路指示灯读出 8 路拨动开关的状态……………………21 实验 4 数码管静态扫描 …………………………………………22 实验 5 数码管动态扫描显示 01234567……………………………23 实验 6 端口按键判断技术(按键显示数字)………………………26 实验 7 矩阵按键识别技术……………………………………………27 实验 8 74LS14 反向器实验………………………………………………29 实验 9 74LS138 38 译码器部分实验………………………………30 实验 10 74LS164 串入并出实验 ……………………………………31 实验 11 74LS165 并入串出实验 ………………………………………32 实验 12 DA 转换 dac0832 的原理与应用………………………………34 实验 13 模拟/数字转换器 ADC0804………………………………………36 实验 14 小喇叭警报器试验………………………………………………38 实验 15 红外线遥控试验…………………………………………………39 实验 16 汉字显示屏显示倚天一出宝刀屠龙(仅限 XL1000)…………42 实验 17 1602 液晶显示屏显示 A……………………………………44 实验 18 8155 试验(仅限 XL1000)…………………………………46 实验 19 24C02 储存开机次数实验 ……………………………………48 实验 20 步进电机实验…………………………………………………50 实验 21 93c46 演示程序 …………………………………………………………51 实验 22 串行双向通信实验 ……………………………………………53 实验 23 综合实验 18B20 数字温度显示系统…………………………55 第七章 怎样产生 hex 文件? Dais 集成开发环境使用………………58 第八章 常见问题解答 60 第九章 系统配置和售后服务指南…………………………………61 部分配套的例子程序说明………………………………………………62
上传时间: 2013-11-13
上传用户:lanjisu111
#include<iom16v.h> #include<macros.h> #define uint unsigned int #define uchar unsigned char uint a,b,c,d=0; void delay(c) { for for(a=0;a<c;a++) for(b=0;b<12;b++); }; uchar tab[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,
上传时间: 2013-10-21
上传用户:13788529953
常用PIC系列产品特性一览表 器件 存储器 类型 字数 EEPROM 数据 存储器 RAM I/O 引脚数 ADC (-Bit) 比较 器 运 放 定时器/WDT 串行接口 最高 速度 MHz 封装 PDIP /SOIC ICSP CCP / ECCP 输出电流 (per I/O) 振荡器 频率 (MHz) 参考 电压 VREF LCD PWM 堆栈 深度 High Voltage Wakeup On Change PIC16C432 OTP 2048x14 128 12 2 1-8bit/1-WDT 20 20 √ 25 mA 4 0 0 PIC16C433 OTP 2048x14 128 6 4/8 1-8bit/1-WDT 10 18 √ 25 mA 0 0 PIC16C505 OTP 1024x12 72 12 1-8bit/1-WDT 20 14 √ 25 mA 4 0 0 PIC16C54 OTP 512x12 25 12 1-8bit/1-WDT 20 18/20 20 mA 0 0 PIC16C54A OTP 512x12 25 12 1-8bit/1-WDT 20 18/20 20 mA 0 0 PIC16C54C OTP 512x12 25 12 1-8bit/1-WDT 40 18/20 20 mA 0 0 PIC16C55 OTP 512x12 24 20 1-8bit/1-WDT 20 28 20 mA 0 0 PIC16C554 OTP 512x14 80 13 1-8bit/1-WDT 20 18/20 √ 25 mA 0 0 PIC16C558 OTP 2048x14 128 13 1-8bit/1-WDT 20 18/20 √ 25 mA 0 0 PIC16C55A OTP 512x12 24 20 1-8bit/1-WDT 40 28 20 mA 0 0 PIC16C56 OTP 1024x12 25 12 1-8bit/1-WDT 20 18/20 20 mA 0 0 PIC16C56A OTP 1024x12 25 12 1-8bit/1-WDT 40 18/20 20 mA 0 0 PIC16C57 OTP 2048x12 72 20 1-8bit/1-WDT 20 28 20 mA 0 0 PIC16C57C OTP 2048x12 72 20 1-8bit/1-WDT 40 28 20 mA 0 0 PIC16C58B OTP 2048x12 73 12 1-8bit/1-WDT 40 18/20 20 mA 0 0 PIC16C620 OTP 512x14 80 13 2 1-8bit/1-WDT 20 18/20 √ 25 mA √ 0 0 PIC16C620A OTP 512x14 96 13 2 1-8bit/1-WDT 40 18/20 √ 25 mA √ 0 0 PIC16C621 OTP 1024x14 80 13 2 1-8bit/1-WDT 20 18/20 √ 25 mA √ 0 0 PIC16C621A OTP 1024x14 96 13 2 1-8bit/1-WDT 40 18/20 √ 25 mA √ 0 0 PIC16C622 OTP 2048x14 128 13 2 1-8bit/1-WDT 20 18/20 √ 25 mA √ 0 0 PIC16C622A OTP 2048x14 128 13 2 1-8bit/1-WDT 40 18/20/40 √ 25 mA √ 0 0 PIC16C62A OTP 2048x14 128 22 2-8bit/1-16bit/1-WDT I²C/ SPI 20 28/ √ 1 25 mA 1 0 0 PIC16C62B OTP 2048x14 128 22 2-8bit/1-16bit/1-WDT I²C /SPI 20 28 √ 1 25 mA 1 0 0 PIC16C63 OTP 4096x14 192 22 2-8bit/1-16bit/1-WDT USART/I²C /SPI 20 28 √ 2 25 mA 2 0 0 PIC16C63A OTP 4096x14 192 22 2-8bit/1-16bit/1-WDT USART/I²C/SPI 20 28 √ 2 25 mA 2 0 0 PIC16C642 OTP 4096x14 176 22 2 1-8bit/1-WDT 20 28 √ 25 mA √ 0 0 PIC16C64A OTP 2048x14 128 33 2-8bit/1-16bit/1-WDT I²C /SPI 20 40/44 √ 1 25 mA 1 0 0 PIC16C65A OTP 4096x14 192 33 2-8bit/1-16bit/1-WDT USART/I²C/SPI 20 40/44 √ 2 25 mA 2 0 0 PIC16C65B OTP 4096x14 192 33 2-8bit/1-16bit/1-WDT USART/I²C/SPI 20 40/44 √ 2 25 mA 2 0 0 PIC16C66 OTP 8192x14 368 22 2-8bit/1-16bit/1-WDT USART/I²C/SPI 20 28 √ 2 25 mA 2 0 0 PIC16C662 OTP 4096x14 176 33 2 1-8bit/1-WDT 20 40/44 √ 25 mA √ 0 0 PIC16C67 OTP 8192x14 368 33 2-8bit/1-16bit/1-WDT USART/I²C /SPI 20 40/44 √ 2 25 mA 2 0 0 PIC16C71 OTP 1024x14 36 13 4/8 1-8bit/1-WDT 20 18 √ 25 mA 0 0 PIC16C710 OTP 512x14 36 13 4/8 1-8bit/1-WDT 20 18/20 √ 25 mA 0 0 PIC16C711 OTP 1024x14 68 13 4/8 1-8bit/1-WDT 20 18/20 √ 25 mA
上传时间: 2013-10-12
上传用户:xjy441694216
本使用指南介绍SH69P8XX系列单片机(SH69P801/SH69P802/SH69P822/SH69P842/SH69P862)的定时/计数器。SH69P8XX系列单片机具有2个8位定时/计数器T0,T1。T0和T1都是向上计数的自动重载入计数器,其计数的起始值可由外部来写入,计数的值可以被读出,计数溢出时能够产生中断。T0的时钟源可以是内部系统时钟(OSC/4),也可以是外部时钟,而T1的时钟源只能是内部系统时钟(OSC/4)。当对内部系统时钟的标准脉冲序列进行计数时即为定时器,对外部脉冲计数时就可作为计数器使用。当T0时钟源为外部脉冲时,可以选择脉冲的触发方式,上升沿或者下降沿。为了扩大定时或计数范围,可以设置定时器方式寄存器TM0和TM1,对定时器时钟源分频,分频比可以选择为:1:1、1:2、1:4、1:8、1:32、1:128、1:512或1:2048等。定时/计数器的内部结构见图4-1。
上传时间: 2013-10-21
上传用户:1477849018@qq.com
单片机的硬件结构 2.3 MCS-51的CPU由运算器和控制器所构成2.3.1 运算器对操作数进行算术、逻辑运算和位操作。1.算术逻辑运算单元ALU2.累加器A使用最频繁的寄存器,可写为Acc。A的作用:(1)是ALU单元的输入之一,又是运算结果存放单元。(2)数据传送大多都通过累加器A。(3)A的进位标志Cy同时又是位处理机的位累加器。
上传时间: 2013-10-20
上传用户:蒋清华嗯
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设计的源程序。
上传时间: 2013-12-16
上传用户:YYRR
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
上传时间: 2014-05-05
上传用户:253189838
基于M CORE微控制器的嵌入式系统从应用的角度出发,全面介绍了构成嵌人式系统的微控制器的结构和常用支撑硬件的原理以及设计开发方法。本书共 24章,分为3大部分。第 1部分(第 1~14章)介绍具有 32位 RISC CPU核的M·CORE微控制器的结构及原理,按模块分章,对各功能模块的原理及使用方法都有详尽的讲解。众所周知,微控制器种类繁多,虽然不同种类微控制器的CPU及内部功能模块有所不同,但基本原理(尤其是一些通用的功能)是一致的。第2部分(第15—19章)介绍嵌入式系统常用外围电路的原理及设计和使用方法,包括有:异步串行接口的互连及应用举例、同步串行总线及应用举例、液晶显示模块、液晶控制器、触摸屏及触摸屏控制器和各类存储器的应用举例。第3部分(第20—24章)介绍嵌人式系统的开发环境与软件开发,在讨论嵌人式系统软件开发的一般过程和开发工具需求的基础上,介绍M·CORE软件开发支持工具集、MMC2107微控制器评估板、M·CORE常用工具软件、QodeWarrior集成开发环境IDE及M·CORE的基本程序设计技术。 第1部分 M·COREM控制器的结构及原理 第1章 微控制器及其应用技术概述 1.1 微控制器的特点 1.2 微控制器技术的发展 1.3 M·CORE系列微控制器 l.3.1 MMC2107的特点及组成 1.3.2 MMC2107的引脚描述 1.3.3 MMC2107的系统存储器地址映射 第2章 M·CORE M210中央处理单元(CPU) 2.1 M·CORE处理器综述 2.1.1 M·CORE处理器的微结构 2.1.2 M·CORE处理器的编程模型 2.1.3 M·CORE的数据格式 2.1.4 M·CORE处理器的寄存器 2.2 M·CORE处理器指令系统简述 2. 2.l 指令类型和寻址方式
上传时间: 2013-10-28
上传用户:lhw888
这一颗,我们学习如何让跑马灯自动按照我们预定的顺序进行。这种控制在工控场合经常用到。这个程序里,我们预先定义了一个变化的顺序speedcode,每跑一圈灯就根据预定设置的表格数据来决定下一圈的跑马速度。这样我们就实现了按照预定的顺序自动变化运行。请看代码:-----------------------------------#define uchar unsigned char //定义一下方便使用#define uint unsigned int#define ulong unsigned long#include <reg52.h> //包括一个52 标准内核的头文件sbit P10 = P1^0; //头文件中没有定义的IO 就要自己来定义了sbit P11 = P1^1;sbit P12 = P1^2;sbit P13 = P1^3;bit ldelay=0; //长定时溢出标记,预置是0uchar speed=10; //设置一个变量保存跑马灯的移动速度uchar code speedcode[10]={3,1,5,12,3,20,2,10,1,4}; //10 个预定义的速度char code dx516[3] _at_ 0x003b;//这是为了仿真设置的//可编程自动控制跑马灯void main(void) // 主程序{uchar code ledp[4]={0xfe,0xfd,0xfb,0xf7};//预定的写入P1 的值uchar ledi; //用来指示显示顺序uchar i;RCAP2H =0x10; //赋T2 的预置值0x1000,溢出30 次就是1 秒钟RCAP2L =0x00;TR2=1; //启动定时器ET2=1; //打开定时器2 中断EA=1; //打开总中断
上传时间: 2013-11-20
上传用户:ming529