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

程序<b>漏洞</b>

  • 微型计算机课程设计论文—通用微机发声程序的汇编设计

    微型计算机课程设计论文—通用微机发声程序的汇编设计 本文讲述了在微型计算机中利用可编程时间间隔定时器的通用发声程序设计,重点讲述了程序的发声原理,节拍的产生,按节拍改变的动画程序原理,并以设计一个简单的乐曲评分程序为引子,分析程序设计的细节。关键字:微机 8253 通用发声程序 动画技术 直接写屏 1. 可编程时间间隔定时器8253在通用个人计算机中,有一个可编程时间间隔定时器8253,它能够根据程序提供的计数值和工作方式,产生各种形状和各种频率的计数/定时脉冲,提供给系统各个部件使用。本设计是利用计算机控制发声的原理,编写演奏乐曲的程序。    在8253/54定时器内部有3个独立工作的计数器:计数器0,计数器1和计数器2,每个计数器都分配有一个断口地址,分别为40H,41H和42H.8253/54内部还有一个公用的控制寄存器,端地址为43H.端口地址输入到8253/54的CS,AL,A0端,分别对3个计数器和控制器寻址.     对8353/54编程时,先要设定控制字,以选择计数器,确定工作方式和计数值的格式.每计数器由三个引脚与外部联系,见教材第320页图9-1.CLK为时钟输入端,GATE为门控信号输入端,OUT为计数/定时信号输入端.每个计数器中包含一个16位计数寄存器,这个计数器时以倒计数的方式计数的,也就是说,从计数初值逐次减1,直到减为0为止.     8253/54的三个计数器是分别编程的,在对任一个计数器编程时,必须首先讲控制字节写入控制寄存器.控制字的作用是告诉8253/54选择哪个计数器工作,要求输出什么样的脉冲波形.另外,对8253/54的初始化工作还包括,向选定的计数器输入一个计数初值,因为这个计数值可以是8为的,也可以是16为的,而8253/5的数据总线是8位的,所以要用两条输出指令来写入初值.下面给出8253/54初始化程序段的一个例子,将计数器2设定为方式3,(关于计数器的工作方式参阅教材第325—330页)计数初值为65536.    MOV   AL,10110110B ;选择计数器2,按方式3工作,计数值是二进制格式    OUT   43H,AL      ; j将控制字送入控制寄存器    MOV   AL,0        ;计数初值为0    OUT   42H,AL      ;将计数初值的低字节送入计数器2    OUT   42H,AL      ;将计数初值的高字节送入计数器2    在IBM PC中8253/54的三个时钟端CLK0,CLK1和CLK2的输入频率都是1.1931817MHZ. PC机上的大多数I/O都是由主板上的8255(或8255A)可编程序外围接口芯片(PPI)管理的.关于8255A的结构和工作原理及应用举例参阅教材第340—373页.教材第364页的”PC/XT机中的扬声器接口电路”一节介绍了扬声器的驱动原理,并给出了通用发声程序.本设计正是基于这个原理,通过编程,控制加到扬声器上的信号的频率,奏出乐曲的.2.发声程序的设计下面是能产生频率为f的通用发声程序:MOV      AL, 10110110B   ;8253控制字:通道2,先写低字节,后写高字节        ;方式3,二进制计数OUT      43H, AL                  ;写入控制字MOV      DX, 0012H               ;被除数高位MOV      AX, 35DEH              ;被除数低位 DIV      ID      ;求计数初值n,结果在AX中OUT      42H, AL     ;送出低8位MOV      AL, AHOUT      42H,AL     ;送出高8位IN      AL, 61H     ;读入8255A端口B的内容MOV      AH, AL                  ;保护B口的原状态OR  AL, 03H     ;使B口后两位置1,其余位保留OUT 61H,AL     ;接通扬声器,使它发声

    标签: 微型计算机 发声程序 论文 微机

    上传时间: 2013-10-17

    上传用户:sunjet

  • PIC单片机程序设计基础

    1、程序的基本格式先介绍二条伪指令:EQU ——标号赋值伪指令ORG ——地址定义伪指令PIC16C5X在RESET后指令计算器PC被置为全“1”,所以PIC16C5X几种型号芯片的复位地址为:PIC16C54/55:1FFHPIC16C56:3FFHPIC16C57/58:7FFH一般来说,PIC的源程序并没有要求统一的格式,大家可以根据自己的风格来编写。但这里我们推荐一种清晰明了的格式TITLE This is ⋯⋯ ;程序标题;--------------------------------------;名称定义和变量定义;--------------------------------------F0 EQU 0RTCC EQU 1PC EQU 2STATUS EQU 3FSR EQU 4RA EQU 5RB EQU 6RC EQU 7┋PIC16C54 EQU 1FFH ;芯片复位地址PIC16C56 EQU 3FFHPIC16C57 EQU 7FFH;-----------------------------------------ORG PIC16C54 GOTO MAIN ;在复位地址处转入主程序ORG 0 ;在0000H开始存放程序;-----------------------------------------;子程序区;-----------------------------------------DELAY MOVLW 255┋RETLW 0;------------------------------------------;主程序区;------------------------------------------MAINMOVLW B‘00000000’TRIS RB ;RB已由伪指令定义为6,即B口┋LOOPBSF RB,7 CALL DELAYBCF RB,7 CALL DELAY┋GOTO LOOP;-------------------------------------------END ;程序结束注:MAIN标号一定要处在0页面内。2、程序设计基础

    标签: PIC 单片机程序设计

    上传时间: 2013-11-14

    上传用户:cjf0304

  • 一些Verilog学习程序B

    这是一些设计程序,如果你会一些调试方面的东西,把这个看懂了,结合硬件就可以实现了

    标签: Verilog 程序

    上传时间: 2013-11-19

    上传用户:lixinxiang

  • TKS仿真器B系列快速入门

    TKS仿真器B系列快速入门

    标签: TKS 仿真器 快速入门

    上传时间: 2013-10-31

    上传用户:aix008

  • 飞思卡尔智能车的舵机测试程序

    飞思卡尔智能车的舵机测试程序 #include <hidef.h>      /* common defines and macros */#include <MC9S12XS128.h>     /* derivative information */#pragma LINK_INFO DERIVATIVE "mc9s12xs128" void SetBusCLK_16M(void)             {       CLKSEL=0X00;        PLLCTL_PLLON=1;          //锁相环电路允许位    SYNR=0x00 | 0x01;        //SYNR=1    REFDV=0x80 | 0x01;          POSTDIV=0x00;            _asm(nop);              _asm(nop);    while(!(CRGFLG_LOCK==1));       CLKSEL_PLLSEL =1;          } void PWM_01(void) {     //舵机初始化   PWMCTL_CON01=1;    //0和1联合成16位PWM;    PWMCAE_CAE1=0;    //选择输出模式为左对齐输出模式    PWMCNT01 = 0;     //计数器清零;    PWMPOL_PPOL1=1;    //先输出高电平,计数到DTY时,反转电平    PWMPRCLK = 0X40;    //clockA 不分频,clockA=busclock=16MHz;CLK B 16分频:1Mhz     PWMSCLA = 0x08;    //对clock SA 16分频,pwm clock=clockA/16=1MHz;         PWMCLK_PCLK1 = 1;   //选择clock SA做时钟源    PWMPER01 = 20000;   //周期20ms; 50Hz;    PWMDTY01 = 1500;   //高电平时间为1.5ms;     PWME_PWME1 = 1;   

    标签: 飞思卡尔智能车 舵机 测试程序

    上传时间: 2013-11-04

    上传用户:狗日的日子

  • 一些Verilog学习程序B

    这是一些设计程序,如果你会一些调试方面的东西,把这个看懂了,结合硬件就可以实现了

    标签: Verilog 程序

    上传时间: 2013-11-18

    上传用户:lml1234lml

  • 一个简单好用的B+树算法实现

    一个简单好用的B+树算法实现

    标签: 算法

    上传时间: 2015-01-04

    上传用户:缥缈

  • 一个用Basic实现的B-Tree算法

    一个用Basic实现的B-Tree算法

    标签: B-Tree Basic 算法

    上传时间: 2013-12-30

    上传用户:ccclll

  • 一个用Java applet实现的B-Tree算法

    一个用Java applet实现的B-Tree算法

    标签: B-Tree applet Java 算法

    上传时间: 2013-12-25

    上传用户:qiao8960

  • 用C++实现的B-Tree算法

    用C++实现的B-Tree算法

    标签: B-Tree 算法

    上传时间: 2014-01-20

    上传用户:jiahao131