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

可以自定义<b>格式化</b>软件

  • 80C51特殊功能寄存器地址表

    /*--------- 8051内核特殊功能寄存器 -------------*/ sfr ACC = 0xE0;             //累加器 sfr B = 0xF0;  //B 寄存器 sfr PSW    = 0xD0;           //程序状态字寄存器 sbit CY    = PSW^7;       //进位标志位 sbit AC    = PSW^6;        //辅助进位标志位 sbit F0    = PSW^5;        //用户标志位0 sbit RS1   = PSW^4;        //工作寄存器组选择控制位 sbit RS0   = PSW^3;        //工作寄存器组选择控制位 sbit OV    = PSW^2;        //溢出标志位 sbit F1    = PSW^1;        //用户标志位1 sbit P     = PSW^0;        //奇偶标志位 sfr SP    = 0x81;            //堆栈指针寄存器 sfr DPL  = 0x82;            //数据指针0低字节 sfr DPH  = 0x83;            //数据指针0高字节 /*------------ 系统管理特殊功能寄存器 -------------*/ sfr PCON  = 0x87;           //电源控制寄存器 sfr AUXR = 0x8E;              //辅助寄存器 sfr AUXR1 = 0xA2;             //辅助寄存器1 sfr WAKE_CLKO = 0x8F;        //时钟输出和唤醒控制寄存器 sfr CLK_DIV  = 0x97;          //时钟分频控制寄存器 sfr BUS_SPEED = 0xA1;        //总线速度控制寄存器 /*----------- 中断控制特殊功能寄存器 --------------*/ sfr IE     = 0xA8;           //中断允许寄存器 sbit EA    = IE^7;  //总中断允许位  sbit ELVD  = IE^6;           //低电压检测中断控制位 8051

    标签: 80C51 特殊功能寄存器 地址

    上传时间: 2013-10-30

    上传用户:yxgi5

  • 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

  • AVR单片机数码管秒表显示

    #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,

    标签: AVR 单片机 数码管

    上传时间: 2013-10-21

    上传用户:13788529953

  • 基于单片机的温室自动控制系统

    摘要:介绍一种基于单片机的温室温度自动控制系统。热敏电阻采集温室内的温度,单片机控制温度在液晶屏上实时显示,利用上位机进行实时监控,通过串行通信将采集到的数据送至上位机,应用系统自带的超级终端软件实现温室温度在上位机中的实时显示。关键词:P89V51RD2单片机;温度检测;液晶显示器

    标签: 单片机 自动控制系统

    上传时间: 2014-12-27

    上传用户:拔丝土豆

  • MAX488在多机通讯中的应用

    本文介绍RS一485电气特性和简单的结构方式。以及采用RS485自定义实现 串行通信协议,并介绍单片机RS一485多机通讯的方法和技巧。

    标签: MAX 488 多机 中的应用

    上传时间: 2013-10-15

    上传用户:我们的船长

  • 开发电子产品的艺术及理念

    电子产品开发的过程正发生着根本性的变化。此变化极有可能与二十多年前低成本微处理器出现后所带来的变化同样显著。既可以将整个系统 — 硬件和软件嵌入到低成本、高容量的可编程器件(FPGA),这就带来了一种对设计过程非常不同的看法。把握这个变化创造的机遇,解决变化带来的问题是我们必须面对的挑战。

    标签: 电子产品

    上传时间: 2014-01-26

    上传用户:icarus

  • 《微机原理及应用》课程教程 (word文档)

     《微机原理及应用》课程教案目    录 下载WORD文档前    言 下载WORD文档第一章 51系列单片机概述 下载WORD文档     第一节 概述     第二节 51系列单片机分类     思考题与习题 第二章 MCS-51系列单片机组成及工作原理 下载WORD文档     第一节 MCS-51系列单片机组成     第二节 8051的内部数据存储器(内部RAM)     第三节 8051的内部程序存储器(内部ROM)     第四节 MCS-51系列单片机典型芯片的外部引脚功能    第五节 并行输入/输出口     第六节 CPU的时钟电路和时序定时单位     第七节 单片机指令执行的过程     思考题与习题 第三章 指令系统 下载WORD文档     第一节 指令格式和寻址方式     第二节 指令系统     思考题与习题 第四章 算法与结构程序设计 下载WORD文档     第一节 算法     第二节 程序基本结构     第三节 结构化程序设计     第四节 汇编语言程序设计举例     思考题与习题 第五章 中断 下载WORD文档     第一节 中断技术概述     第二节 8051中断系统     第三节 中断控制     第四节 中断响应     第五节 中断系统应用举例     思考题与习题 第六章 定时器/计数器 下载WORD文档     第一节 概述     第二节 定时器/计数器基本结构 工作方式及应用     思考题与习题 第七章 8051单片机系统扩展与接口技术 下载WORD文档     第一节 8051单片机系统扩展概述     第二节 单片机外部存储器扩展     第三节 单片机输入/输出(I/O)口扩展     第四节 LED显示器接口电路及显示程序     第五节 单片机键盘接口技术     第六节 单片机与数模(D/A)及模数(A/D)转换器的接口及应用     思考题与习题 第八章 8051单片机的异步串行通信技术 下载WORD文档     第一节 概述     第二节 8051串行口基本结构     第三节 8051串行通信工作方式及应用     第四节 多机通信原理 下载WORD文档     思考题与习题 第九章 单片机应用举例 下载WORD文档     第一节 单片机数据采集系统     第二节 电机转速测量     第三节 步进电机控制系统     第四节 机器人三觉机械手信号处理及控制算法    思考题与习题 第十章 单片机与字符式液晶显示模块连接技术 下载WORD文档     第一节 字符式液晶显示模块简介     第二节 模块指令系统     第三节 模块与8051单片机的接口     第四节 模块字符显示举例     第五节 自定义字符显示     思考题与习题 附录一 计算机数的运算基础 下载WORD文档     第一节 进位计数制及相互转换     第二节 计算机中数和字符的表示附录二 美国标准信息交换码(ASCII)字符表附录三 MCS-51指令表 下载WORD文档

    标签: word 微机原理 教程 文档

    上传时间: 2014-04-16

    上传用户:hhkpj

  • 单片机程序远程升级的设计

    为了解决一些远程单片机设备不方便升级内部程序的困难,本文提出了利用单片机系统中现有的数据获取方式来升级单片机内部程序的方法。本文利用凌阳16 位单片机可以自读写片内程序空间的特性,通过在片内驻留BootLoader 程序的方式实现了凌阳16 位单片机片内程序的在需要时的远程升级。单片机获取数据的方式可以有很多,本文选取通过串口获取数据进行程序升级为例,并选取常见的凌阳单片机SPCE061A 为例介绍了此方法的设计思路以及实现过程。单片机的应用非常广泛,在某些情况下,单片机内部程序的升级在所难免,但是往往需要对单片机产品进行收回才能实现,这样在一些远程设备的程序升级问题上就显得非常不方便。但是有些远程设备本身留有远程通讯的方式:例如某些远程数据传输模块,为了把数据上报总会留有通讯的接口,比如422、485 甚至GPRS 或者局域网接口;又或者某些车载定位设备,为了和监控中心通讯会留有GSM、CDMA 或者GPRS 等通讯方式。在这种情况下就可以利用其现有的通讯方式对其内部单片机程序进行升级而不需要收回产品。本文的主要内容就是来研究这种远程升级单片机程序的方法。由于近年来凌阳科技的单片机,尤其是 16 位单片机,得到了越来越多的推广,其应用领域越来越广泛。本文选取一种常见的凌阳科技的16 位单片机SPCE061A 为例,来介绍单片机程序远程升级的方法。SPCE061A 里内嵌了32K 字的闪存(FLASH),即可以作为程序存储空间又可以存储数据,并且有自读写任意闪存地址的能力,本文利用这一功能,提出了通过在单片机中驻留BootLoader 程序的方法,来实现单片机程序的远程升级。远程升级的实现,需要单片机自身的响应同时还需要远程服务器提供升级所需的代码。下文将通过这两个方面来分别介绍。

    标签: 单片机程序 远程升级

    上传时间: 2013-10-31

    上传用户:yxgi5

  • 基于DSP的数字音频均衡器设计

    文中提出了一种基于ADSP-BF533硬件平台的数字音频均衡器设计,其音频处理算法包括谱分析和均衡算法。经过测试表明,该系统可达到理想的音频均衡效果,用户可对各种音效进行选择和自定义音效。

    标签: DSP 数字音频 均衡器

    上传时间: 2014-12-28

    上传用户:yzhl1988

  • 基于FPGA的DDS IP核设计方案

    以Altera公司的Quartus Ⅱ 7.2作为开发工具,研究了基于FPGA的DDS IP核设计,并给出基于Signal Tap II嵌入式逻辑分析仪的仿真测试结果。将设计的DDS IP核封装成为SOPC Builder自定义的组件,结合32位嵌入式CPU软核Nios II,构成可编程片上系统(SOPC),利用极少的硬件资源实现了可重构信号源。该系统基本功能都在FPGA芯片内完成,利用 SOPC技术,在一片 FPGA 芯片上实现了整个信号源的硬件开发平台,达到既简化电路设计、又提高系统稳定性和可靠性的目的。

    标签: FPGA DDS IP核 设计方案

    上传时间: 2013-11-06

    上传用户:songkun