搜档网
当前位置:搜档网 › 单片机的驱动程序

单片机的驱动程序

单片机的驱动程序
单片机的驱动程序

单片机液晶显示驱动程序(用C语言写的)

要求是:RS232接口单片机液晶显示模块PC机上使用串口调试助手的设置如下: 串口设置:波特率9600,无奇偶校验,数据位8位,停止位1位。

发送数据时必须以$开始,无结束字符。如$1234,就可以直接发送。

TMOD=0x20;

TH1=0xfd;

TL1=0xfd;

PCON=0x00;

SCON=0x50;

TR1=1;

ES=0;

#include

#include

#include

sbit RS = P2^5;

sbit RW = P2^6;

sbit Enable = P2^7;

sbit cs =P1^0;

sbit sck =P1^1;

sbit si =P1^3;

sbit so =P1^2;

sbit clflag0 =ACC^0;

void CheckBF(void);

void LCD_WtoiR(char datas);

void LCD_WtData(char datas);

void LCD_Clr(void);

void LCD_Init(void);

void LCD_SFLine(void);

void LCD_SSLine(void);

void LCD_printf(char lines, char *p);

void ReadLine(char lines, char *p);

void outbyt(char k);

char inbyt(void);

void wren_cmd(char k);

char rdsr_cmd(void);

void wip_poll(void);

void wrsr_cmd(void);

void CheckBF() /* 检查忙碌状态*/

{

char flag;

flag=0xff;

while((flag & 0x80)!=0)

{

RS=0;

RW=1;

Enable=0;

Enable=1;

flag=P0;

Enable=0;

}

RW=0;

}

void LCD_WtoiR(char datas) /* 指令函数*/ {

CheckBF();

Enable=0;

RS=0;

Enable=1;

P0=datas;

Enable=0;

}

void LCD_WtData(char datas) /* 数据写入*/ {

CheckBF();

Enable=0;

RS=1;

RW=0;

Enable=1;

P0=datas;

Enable=0;

}

void LCD_Clr() /* 清零*/

{

LCD_WtoiR(1);

}

void LCD_Init() /* 初始化*/

{

LCD_WtoiR(0x38); /* (0x3c)? 第一行或第二行*/ LCD_WtoiR(0x0e); /* (0x0c)? 是否显示光标*/ LCD_WtoiR(0x06); /* (0x07)?光标左移或右移*/ }

void LCD_SFLine() /* 显示第一行*/

{

LCD_WtoiR(0x80);

}

void LCD_SSLine() /* 显示第二行*/

{

LCD_WtoiR(0xc0);

}

void LCD_printf(char lines, char *p) /* 数据输出*/

{

if (lines==1)

LCD_SFLine();

else

LCD_SSLine();

while(*p=='$')

{

while(*p!='\0')

{

LCD_WtData(*p);

p++;

}

}

}

void ReadLine(char lines, char *p) /* 读取数据*/

{

char number,i;

if(lines==1)

{

number=0x80;

LCD_SFLine();

}

else

{

number=0xc0;

LCD_SSLine();

}

for(i=0;i<=19;i++)

{

LCD_WtoiR(number);

CheckBF();

Enable=0;

RS=1;

RW=1;

Enable=1;

*p=P0;

number++;

p++;

CheckBF();

Enable=0;

}

*p='\0';

}

void outbyt(char k) /* sends byte to epprom */

{

char i;

for(i=0;i<8;i++) /* use i as bit counter to eight */

{

sck=0; /* bring sck low */

si=k&0x80; /* si is always equal to k's highest bit */ sck=1; /* bring sck high */

k<<=1; /* shift data k left 1 */

}

}

/******************************************************/

char inbyt(void) /* recieves byte from epprom */

{

char i,k;

for(i=0;i<8;i++) /* use i as bit counter to eight */

{

k<<=1;

sck=1; /* bring sck high */

sck=0; /* bring sck low */

k=k|so; /* k or so */

/* k shift left one bit */

}

return k; /* return k */

}

/******************************************************/

void wren_cmd(char k) /* set write enable or disable latch */ {

sck=0; /* bring sck low */

cs=0; /* bring cs low */

outbyt(k); /* set write enable latch 0x06 */

sck=0; /* set write disable latch 0x04 */

cs=1; /* bring cs high */

}

/******************************************************/

char rdsr_cmd(void) /* read status register command */

{

char k;

sck=0; /* bring sck low */

cs=0; /* bring cs low */

k=0x05; /* read status register command byte 0x05 */ outbyt(k); /* send k=0x05 to epprom */

k=inbyt(); /* receieve k from epprom */

sck=0; /* bring sck low */

cs=1; /* bring cs high */

return k; /* return k */

}

void wip_poll()

{

char i;

i=0;

clflag0=1;

while((clflag0!=0)&&(i!=80)) /* if WIP bit '1' or i not equal*/

{

i++;

ACC=rdsr_cmd(); /* read status register */

}

/* to 80 , continus polling */

}

void wrsr_cmd() /* write status register */

{ char k;

sck=0; /* bring sck low */

cs=0; /* bring cs low */

k=0x01; /* write status register instruction */

outbyt(k); /* send byte k=0x01 to epprom */

k=0x00; /* write command k to status register */

outbyt(k); /* send byte k=0x00 to epprom */

sck=0; /* bring sck low */

cs=1; /* bring cs high */

wip_poll(); /* poll for completion of a nonvolatile write cycle */

}

main()

{

char a[20];

LCD_Init();

LCD_Clr();

LCD_printf(1,"1234567"); /* 读取第一行数据,在第二行输出*/

ReadLine(1,a);

LCD_printf(2,a);

wrsr_cmd();

while(1)

{

cs=0;

cs=1;

}

}

这是我的不知道对不对还需要补充什么的

回答者:221.223.81.* 2009-7-11 12:24 ** 1602A液晶屏驱动程序** 晶振频

率:11.0592M*****************************************/#include #define uchar unsigned char#define uint unsigned int sbit LCM_E=P3^5;//定义接口sbit

LCM_RW=P3^6;sbit LCM_RS=P3^7; #define LCM_Data P1//数据接口void

LCM_WriteData(uchar WDLCM);void LCM_WriteCommand(uchar WCLCM,BuysC);uchar LCM_ReadData(void);uchar LCM_ReadStatus(void);void LCM_Init(void);void DisplayOneChar(uchar X, uchar Y, uchar DData);void DisplayListChar(uchar X, uchar Y, uchar code *DData);void Delay5Ms(void);void Delay400Ms(void); uchar code uctech[] =

{"1602A"};uchar code net[] = {"https://www.sodocs.net/doc/3e1645444.html,"}; void main(void){Delay400Ms();//启动等待,等LCM讲入工作状态LCM_Init();//LCM初始化Delay5Ms();//延时片刻(可不要) DisplayListChar(6, 1, uctech);DisplayListChar(0, 0, net);LCM_ReadData();//测试用句无意义LCM_Data=255;while(1);} /****************************1602A写数据函数

**************************//*函数原型:void LCM_WriteData(uchar WDLCM)/*函数功

能:1602A写数据/*输入参数:要写入的数据/*输出参数:无/*调用模

块:/**********************************************************************/ void

LCM_WriteData(uchar WDLCM){LCM_ReadStatus();//检测忙LCM_Data =

WDLCM;LCM_RS = 1;LCM_RW = 0;LCM_E = 0;//若晶振速度太高可以在这后加小的延时LCM_E = 0;//延时LCM_E = 1;} /****************************1602A写指令函数

**************************//*函数原型:void LCM_WriteCommand(uchar WCLCM,BuysC)/*函

数功能:1602A写指令/*输入参数:要写入的指令/*输出参数:无/*调用模

块:/**********************************************************************/ void

LCM_WriteCommand(uchar WCLCM,BuysC)//BuysC为0时忽略忙检测{if (BuysC)

LCM_ReadStatus();//根据需要检测忙LCM_Data = WCLCM;LCM_RS = 0;LCM_RW =

0;LCM_E = 0;LCM_E = 0;LCM_E = 1;} /****************************1602A读数据函数

**************************//*函数原型:uchar LCM_ReadData(void)/*函数功能:1602A读数据/*输入参数:无/*输出参数:1602A返回的数据/*调用模

块:/**********************************************************************/ uchar

LCM_ReadData(void){LCM_RS = 1;LCM_RW = 1;LCM_E = 0;LCM_E = 0;LCM_E =

1;return(LCM_Data);} /****************************1602A读状态函数

**************************//*函数原型:uchar LCM_ReadData(void)/*函数功能:1602A读状态/*输入参数:无/*输出参数:1602A返回的状态/*调用模

块:/**********************************************************************/ uchar

LCM_ReadStatus(void){LCM_Data = 0xFF;LCM_RS = 0;LCM_RW = 1;LCM_E =

0;LCM_E = 0;LCM_E = 1;while (LCM_Data & 0x80);//检测忙信号return(LCM_Data);}

/****************************1602A初始化函数**************************//*函数原型:void

LCM_Init(void)/*函数功能:1602A初始化/*输入参数:无/*输出参数:无/*调用模

块:/**********************************************************************/ void

LCM_Init(void){LCM_Data = 0;LCM_WriteCommand(0x38,0);//三次显示模式设置,不检测忙信号

Delay5Ms();LCM_WriteCommand(0x38,0);Delay5Ms();LCM_WriteCommand(0x38,0);Del ay5Ms(); LCM_WriteCommand(0x38,1);//显示模式设置,开始要求每次检测忙信号

LCM_WriteCommand(0x08,1);//关闭显示LCM_WriteCommand(0x01,1);//显示清屏

LCM_WriteCommand(0x06,1);// 显示光标移动设置LCM_WriteCommand(0x0C,1);// 显示开及光标设置} /******************1602A按指定位置显示一个字符函数**********************//*函数原型:void DisplayOneChar(uchar X, uchar Y, uchar DData)/*函数功能:1602A按指定

位置显示一个字符/*输入参数:X坐标Y坐标要显示的字符/*输出参数:无/*调用模

块:/**********************************************************************/ void

DisplayOneChar(uchar X, uchar Y, uchar DData){Y &= 0x1;X &= 0xF;//限制X不能大于15,Y不能大于1if (Y) X |= 0x40;//当要显示第二行时地址码+0x40;X |= 0x80;// 算出指令码

LCM_WriteCommand(X, 0);//这里不检测忙信号,发送地址码LCM_WriteData(DData);}

/*******************1602A按指定位置显示一串字符函数*********************//*函数原型:void DisplayListChar(uchar X, uchar Y, uchar code *DData)/*函数功能:1602A按指定位置显示一个字符/*输入参数:X坐标Y坐标要显示字符串的首地址/*输出参数:无/*调用模

块:/**********************************************************************/ void

DisplayListChar(uchar X, uchar Y, uchar code *DData){uchar ListLength;ListLength = 0;Y &= 0x1;X &= 0xF;//限制X不能大于15,Y不能大于1while (DData[ListLength]>0x20)//若到达字串尾则退出{if (X <= 0xF)//X坐标应小于0xF{DisplayOneChar(X, Y,

DData[ListLength]);//显示单个字符ListLength++;X++;}}} /********************5ms延时函数************************//*函数原型:void Delay5Ms(void)/*函数功能:5ms延时/*输入参数:无/*输出参数:无/*调用模块:/**********************************************************************/ void Delay5Ms(void){unsigned int TempCyc = 5552;while(TempCyc--);}

/********************400ms延时延时函数************************//*函数原型:void

Delay400Ms(void)/*函数功能:400ms延时延时/*输入参数:无/*输出参数:无/*调用模

块:/**********************************************************************/ void

Delay400Ms(void){uchar TempCycA = 5;unsigned int

TempCycB;while(TempCycA--){TempCycB=7269;while(TempCycB--);};}

近年来,单片机系统以其体积小、功能强、扩展灵活、使用方便等优点,逐渐渗透到各行业的工程实际应用中。而LED显示电路就像单片机系统的眼睛,实时地向人们传递着系统工作的各种状态信息和处理结果。因此,高效、方便的LED显示驱动电路是构成完善的单片机系统必不可少的元素。常用的LED显示驱动电路有并行译码方式、串行—并行转换方式、显示驱动接口芯片方式等。下面分别对这几种方式进行讨论,并给出显示驱动芯片MAX7219的应用实例。

并行译码显示方式

图1为单片机89C2051输出显示的一个例子,4位BCD码数据从其P1.0~P1.3并行输出,经7段LED显示驱动电路CD4511译码后驱动LED显示,这样只需向P1.0~P1.3 写入欲显示数字的BCD码,即可显示出相应的数字。这种方式虽然简单,但占用单片机口线较多,资源利用率低,因此不常采用。

图1并行译码显示方式

串行- 并行转换方式

图2所示为89C2051的串口驱动数码管的电路,其中串口工作在方式0,74LS164是8位串入并出移位寄存器,负责将RXD输出的串行数据转换成并行信号。显然,这种方式显示同样的位数使用单片机的口线大大减少,并且可以让LED显示BCD码以外的字符(如A、B、C、D 等),但是,当要显示的位数较多时,仍需占用较多的口线,并且在许多情况下需要串口工作在UART方式,以便进行串行通信,从而限制了这种方式的使用范围。

图2并行译码显示方式

LED显示驱动芯片

随着单片机技术的发展,许多公司都推出了专用LED显示驱动芯片,如Microchip公司的A Y0438、Maxim公司的MAX7219等都是其中的典型代表。下面以MAX7219为例说明LED 显示驱动芯片在单片机系统中的应用。

MAX7219简介

MAX7219是Maxim公司推出的8位LED串行显示驱动器,它采用3线串口传送数据,占用资源少且硬件简单,只需一个外部电阻即可方便地调节LED的亮度;可灵活地选择显示器的个数( 1~8个, 级联可成倍增加);可进行译码或不译码显示;内含硬件动态扫描控制,可设置低功耗停机方式。

引脚功能和工作原理

MAX7219采用24脚双列直插式封装,其引脚如图3所示。SEGA~SEGG和DP分别为LED 七段驱动器线和小数点线,供给显示器源电流;DIG0~DIG7为8位数字驱动线,输出位选信号,从每位LED共阴极吸入电流。

图3 MAX7219 引脚功能

DIN是串行数据输入端。在CLK 的上升沿,一位数据被加载到内部16位移位寄存器中,CLK最高频率可达10MHz,在输入时钟的每个上升沿均有一位数据由DIN端移入到内部寄存器中;LOAD用来装载数据,在LOAD的上升沿,16位串行数据被锁存到数据或控制寄存器中,LOAD必须在第16个时钟上升沿的同时或之后、在下一个时钟上升沿之前变高, 否则数据将被丢失。每组数据为16 位二进制数据包,其格式如表1所示。

其中D15~D12位不用,D11~D8位为内部5个控制寄存器和8个LED显示数据寄存器的地址,D7~D0位为5个控制寄存器和8个LED数码管待显示的数据,因为控制寄存器与显示数据寄存器独立编址,所以可以通过程序对每个寄存器进行操作。一般情况下,程序先送控制命令,后向显示寄存器送数据,每16 位为一组,从高位地址字节最高位开始送,直到低位数据字节最后一位。MAX7219内部有14个可寻址的控制字寄存器,各寄存器的功能及地址如表2所示。

其中,地址×0H 为空操作寄存器,允许数据从输入到输出直接通过,可用于设备串接。地址×1H~×8H为显示RAM区,分别对应DIG0~DIG7引脚的8 位LED显示数据。地址×9H 为译码模式寄存器,其8 位二进制数分别控制着8个LED显示器的译码模式,逻辑高电平时选择硬件译码(BCD - B码译码),译码器选择数据寄存器中的低4位(D3~D0)进行BCD- B码译码,×0H~×9H对应BCD码字符0~9,而×AH~×FH分别对应B码字符-、E、H、L、P及消隐,D4~D6无效,D7单独控制小数点;译码模式寄存器为逻辑低电平时选择软件译码,数据D6~D0分别对应LED显示器的A~G段,D7对应小数点DP。

地址×AH为显示亮度寄存器,通过对该寄存器的D0~D3位写入不同的数值可实现对LED 显示亮度的控制,从00H到0FH共16级可调。地址×BH为扫描界限寄存器,其D0~D3位数值设定为00H~07H,表示显示器动态扫描个数为1~8。地址×CH为停机寄存器,当其D0位为0时,MAX7219处于停机状态,扫描振荡器停振,所有显示器消隐,寄存器数据保持不变;当D0为1时,正常工作。地址×FH为显示测试寄存器,当其D0位为0时,正常工作;当D0为1时处于测试状态,全部LED显示器的所有字段都以最大亮度接通显示。

应用举例

图4 为MAX7219的位LED显示电路实例。图4中,单片机89C2051的P1.0、P1.1分别接MAX7219的串行数据输入端DIN和时钟信号CLK, P1.2作为LOAD信号。电阻R根据不同的LED选值,范围在7KΩ~60KΩ之间。

图4MAX7219 应用电路

结语

通过以上对比,并行译码方式电路最简单,但是资源利用率低,因此并不常用,串行- 并行转换方式在小型系统中应用具有很强的优势,但随着单片机应用系统的发展,很多复杂系统中都采用了专用显示驱动芯片。从上述应用实例可以看出,使用MAX7219 后,系统硬件结构简洁、程序流程清晰、控制灵活方便,应用于仪器仪表、医疗设备及智能家电等领域,可省去很多锁存器、译码器及驱动器,大大提高显示部分的集成程度,因此这种显示驱动方式在单片机系统设计中有着广阔的应用前景。

单片机与嵌入式系统作业

杭州电子科技大学通信工程学院 单片机与嵌入式系统作业 项目名称:基于MSP430G2553的智能WIFI遥控电源插座设计班级:13083415 姓名:徐炜学号:13071135 姓名:王畅学号:13071206 姓名:毛媛苑学号:13085103

一、研究背景、现状及研究目的、意义 由于经济的发展促使人们追求更高的生活品质,而且科技的进步技术成熟也使软硬件的性价比达到了合理的水平。所以新兴的智能住宅采用一系列高新技术, 实现服务、信息和系统资源的高度共享, 为住户提供一种更加安全、舒适、方便的智能化、信息化生活空间[1]。虽然目前大部分家电具有近距离遥控功能,这些遥控器均采用红外线传输技术。红外传输技术是一种视距传输技术,遥控器与家电接收端之间不允许有障碍物阻隔,且红外传输仅能实现点对点通信任务,其一般通信距离在3m以内。因此,红外传输技术不适合应用于智能家居领域。针对目前住宅中很多的电器设备都不具有远程遥控功能,这样给智能家居要求的电器远程控制要求带来了很大的障碍[2]。为了对这些普通的电器设备实现远程遥控的功能, 理论上讲, 有两种解决方案:一种方案是对电器进行改装, 装入遥控电路接口, 使其具有被遥控的功能。另外一种方案是对电器设备不进行改装, 只是在其外部挂一个可实现远程无线遥控的电器插座。显然, 第二种方案更加方便实用[1-2]。 在2009年,物联网的发展在国内社会中受到了高度重视,借助物联网的发展,智能家居产业存在着巨大的发展潜力。在2014年3月的上海家博会上,智能家居成为了本届展会的关键词之一。国内外各大厂商集体在智能家居战略上发力。如海尔推出了最新的U+智慧家居系统。三星展示了一款可以借助WIFI网络控制的新型洗衣机[2]。智能家居结合云计算预示着其未来的发展方向,也引发人们对智能家居的广泛关注[2]。 本项目在对智能家居中可实现远程遥控的智能电器插座进行调研的基础上,运用单片机与无线局域网技术,根据实际需求设计了通过智能手机WIFI进行远程无线遥控的智能电源插座,实现对电器设备的远程控制与监测。 WIFI是Wireless Fidelity的缩写,即无线高保真传输协议[3]。WIFI基于IEEE 802.11协议,它是一种将个人电脑、手持设备(如PDA、智能手机)等终端以无线方式互相连接的技术[4]。WIFI的最大优点是传输速度高,同时与现存网络设备具有良好的兼容性。随着第五代WIFI协议版本802.11ac的推出,WIFI的传输速率将超过1Gbps,其覆盖范围也将进一步扩大。因此,在现有的条件下,选择WIFI作为智能电源插座通信模块是最好的选择,一方面现有的移动终端设备上几乎全部集成了WIFI接口,可以方便地将移动设备作为智能电源插座的控制器。另一方面WIFI传输速率快,并提供了以太网访问方式,便于实现智能家居系统和以太网的连接。基于802.11b标准的WIFI工作在

软件、驱动安装方法.

2.1 Quartus II 软件的安装 TD-EDA 实验系统使用Quartus II 集成开发环境Quartus II 4.2 版本,为了使Quartus II 软件 的性能达到最佳,建议计算机的最低配置如下: (1) 奔腾II 400MHz、512MB 以上系统内存; (2) 大于1G 的安装Quartus II 软件所需的最小硬盘空间; (3) Microsoft Windows NT4.0(Service Pack 4 以上)、Windows2000 或Windows XP 操作系统。 注意:Quartus II 软件不支持Windows98 操作系统。 (4) 用于ByteBlaster II 或ByteBlaster MV 下载电缆的并行口(LPT 口); (5) Microsoft IE5.0 以上浏览器; (6) TCP/IP 网络协议; (7) 网卡一块。 注意:Quartus II 软件必须在安装有网卡的PC 上使用。 用户在确保计算机满足上述配置后就可以安装Quartus II 软件,下面简单介绍Quartus II 4.2 版软件的安装过程: 1. 将Quartus II 设计软件的光盘放入计算机的光驱,从资源管理器进入光盘驱动器,双击Quartus II 目录下的install.exe 文件,出现如图2-1-1 所示的Quartus II 安装界面。 图2-1-1 Quartus II 安装界面 2. 点击”Install Quartus II and Related Software”按钮进入如图2-1-2 所示的安装Quartus II 软

C程序设计题库

填空题 20*2 ■对于51系列单片机,现有4种语言支持程序设计,它们是(汇编语言)、PL/M、(C语言)、BASIC。 ■单片机程序设计时需要在主程序中设计死循环来防止程序跑飞。在C语言中采用(while(1))或for(;;)语句实现死循环。 ■单片机程序设计中经常用到中断,在C语言程序设计中外部中断1的中断入口序号(2),而汇编语言程序设计中外部中断1的入口地址是(0013H)。 ■编写串口中断程序时要在函数说明部分后写interrupt 4 。 ■编写定时器0中断程序时要在函数说明部分后写interrupt 1 。 ■C语言程序设计中有一个无符号形字符变量temp和一个位变量Flag,现在分别对它们取反。相应的语句为temp=__~___temp; Flag=_!___Flag;。 ■I2C总线在传送数据过程中共有三种类型控制信号,它们分别是:_(起始信号)____、应答信号、_(停止信号)_____。 ■I2C的地址由(协议规定)与(硬件设置)两部分组成。 ■I2C器件的两条信号线分别为串行时钟线SCL 与串行数据线 SDA 。 ■MCS-51单片机操作I2C器件时,单片机必须做为主机,I\O编程。 ■在Cx51所有的数据类型中,只有bit 与unsigned char 直接支持机器指令。 ■编译器性能比较有如下几个方面:算数支持、生产代码大小、开打速度、支持浮点和long 。 ■在KEIL开发套件中,BL51链接器/定位器用于创建一个绝对目标横快。 ■Cx51中函数分为两大类:标准库函数和用户自定义函数。 ■在函数名前如果不指定函数类型,则该函数的类型为整型。 ■具有一定格式的数字或数值叫做数据,数据的不同格式叫做数据类型, 数据按一定的数据类型进行的排列、组合及架构称为数据结构。 ■数据类型的转换有自动转换与强制转换两种。 ■直接出现在程序中的数值(如TMOD=0x21)称为常数。在程序运行的过程中,其值不能改变且被定义为符号的(如#define CONST 60)称为常量。 ■软件对常量与变量的命名规范是:常量名用大写字母,变量名用小写字母。 ■MCS-51单片机串口用于中断通讯时,在进行初始化时必须设置的特殊功能寄存器有:

单片机程序下载说明

目录 1 使用USBASP下载A T89S52和ATMEGA8 (2) 1.1 USBASP驱动的安装 (2) 1.2 用RPOGISP1.72对A T89S52进行下载 (6) 1.3 用PROGISP1.72对A TMEGA8进行下载 (9) 2 如何下载STC89C52RC和STC90C516RD+单片机 (13) 2.1 PL2303驱动的安装 (13) 2.2 如何连接开发板 (14) 2.3用STC-ISP 4.83软件下载STC89C52RC (15) 2.4 用STC-ISP 4.83软件下载STC90C516RD+ (16)

单片机下载 用C语言或者汇编语言编写的文件,最后都要下载到单片机来检测所写代码是否按照设计思路进行运行。把程序下载到单片机,往往是初学者的第一个实践项目。下载成功后,都会有一种兴奋感,给自己学习单片机增加动力。 这一章,我们详细的讲一下A T89S52、A TMEGA8、STC89C52和STC90C516RD+的下载说明。 1 使用USBASP下载AT89S52和ATMEGA8 1.1 USBASP驱动的安装 A T89S52和A TMEGA8单片机都是用USBASP下载器进行下载。 什么是USBASP:USBASP是一种基于ATMEL公司的AVR系列RISC单片机的高速性质和一个由纯软件的USB通信协议栈而构成的一个可以向51系列,AVR系列单片机下载(烧写)程序的下载器。 下载以前,我们要来讲一下如何连接USBASP和安装驱动。安装驱动前需要把USBASP和电脑的USB口进行连接。 (1)插入USBASP下载线,电脑应能识别出USBASP设备。

单片机和嵌入式系统linux的区别转自21IC电子网

单片机和嵌入式系统linux的区别 随着嵌入式行业硬件平台的性能增强,项目需求和功能日益复杂,ARM公司推出的CORTEX-M3,更是让以往做单片机的工程师在芯片和技术选型面临两难选择,本专题将从芯片价格、整个系统的硬件软件设计及维护的成本等各个方面给您提供一个参考,并从技术角度分析单片机和带操作系统的系统的软件开发的异同点。 ● 1.单片机与ARM等新处理器的价格比较 ● 2.带操作系统与不带操作系统的软件开发的区别 ● 2.1.驱动开发的区别 ● 2.2.应用程序开发的区别 1. 单片机与ARM等新处理器的价格比较 表1 型号架构资源价格(元) AT89S51 8051 最高频率33MHz 4 4KB Flash 128B内部RAM 32个可编程IO引脚 两个16bit的计数器 一个UART口 SST89E564RD 8051 最高频率40MHz 35

从表1里面各种芯片的资源,大概就可以猜知它们的应用场合。51单片机通常被用来做一些比较简单的控制,比如采集信号、驱动一些开关。AT89S51的Flash 只有4K,一个稍微复杂的程序就不止4K了。SST89E564RD是一种扩展的51单片机,它的Flash达到64KB,可以外接最多64KB的SRAM。在SST89E564RD上的程序可以写得更复杂一些,但是它对外的接口也比较少。 CORTEX-M3系列的处理器,对外接口极其丰富,这使得它的应用面更广,但是限于它的Flash、内存还是比较小,一般不在上面运行操作系统,它算是一个性能非常突出的单片机。 HI3510 是海思半导体公司的一款用于监控设备的芯片,一般上面运行Linux系统,通过摄像头采集数据、编码,然后通过网络传输。另一端接收到数据之后,再解码。在上面运行的程序非常复杂,有漂亮的图片界面、触摸屏控制、数据库等等。对声音图像的编解码更是用到DSP核。 S3C2440 是一款通用的芯片,它与“高级单片机”STM32F103相比,多了存储控制器和NAND控制器──这使得可以外接更大的Flash、更大的内存;多了内存管理单元(MMU)──这使得它可以进行地址映身(虚拟地址、物理地址之间的映射)。可以在S3C2440上运行Linux系统,运行更大更复杂的程序。 在具体工作中,怎么选择这些芯片呢?一句话:成本!进行任何产品的开发都要考虑性价比,一切应该从“成本”出发。成本不仅包括芯片的价格,也包括整个系统的硬件、软件设计及维护的难易。 芯片价格可以在电子市场问到,也可以在https://www.sodocs.net/doc/3e1645444.html,.上找到有卖这种芯片的柜台,然

单片机c语言设计试题答案

单片机C语言程序设计师试题 一、填空题 1、设X=5AH,Y=36H,则X与Y“或”运算为_________,X与Y的“异或”运算为________。 2、若机器的字长为8位,X=17,Y=35,则X+Y=_______,X-Y=_______(要求结果写出二进制形式)。 3、单片机的复位操作是__________(高电平/低电平),单片机复位后,堆栈指针SP的值是________。 4、单片机中,常用作地址锁存器的芯片是______________,常用作地址译码器芯片是_________________。 5、若选择内部程序存储器,应该设置为____________(高电平/低电平),那么,PSEN信号的处理方式为__________________。 6、单片机程序的入口地址是______________,外部中断1的入口地址是_______________。 7、若采用6MHz的晶体振荡器,则MCS-51单片机的振荡周期为_________,机器周期为_______________。 8、外围扩展芯片的选择方法有两种,它们分别是__________________和_______________。 9、单片机的内部RAM区中,可以位寻址的地址范围是__________________,特殊功能寄存器中,可位寻址的地址是____________________。 10、子程序返回指令是________,中断子程序返回指令是_______。 11、8051单片机的存储器的最大特点是____________________与____________________分开编址。 12、8051最多可以有_______个并行输入输出口,最少也可以有_______个并行口。 13、_______是C语言的基本单位。 14、串行口方式2接收到的第9位数据送_______寄存器的_______位中保存。 15、MCS-51内部提供_______个可编程的_______位定时/计数器,定时器有_______种工作方式。 16、一个函数由两部分组成,即______________和______________。 17、串行口方式3发送的第9位数据要事先写入___________寄存器的___________位。 18、利用8155H可以扩展___________个并行口,___________个RAM单元。 19、C语言中输入和输出操作是由库函数___________和___________等函数来完成。二、选择题 1、C语言中最简单的数据类型包括()。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 2、当MCS-51单片机接有外部存储器,P2口可作为 ( )。 A、数据输入口 B、数据的输出口 C、准双向输入/输出口 D、输出高8位地址 3、下列描述中正确的是()。 A、程序就是软件 B、软件开发不受计算机系统的限制 C、软件既是逻辑实体,又是物理实体 D、软件是程序、数据与相关文档的集合 4、下列计算机语言中,CPU能直接识别的是()。 A、自然语言 B、高级语言 C、汇编语言 D、机器语言 5、MCS-5l单片机的堆栈区是设置在( )中。 A、片内ROM区 B、片外ROM区 C、片内RAM区 D、片外RAM区 6、以下叙述中正确的是()。 A、用C语言实现的算法必须要有输入和输出操作 B、用C语言实现的算法可以没有输出但必须要有输入 C、用C程序实现的算法可以没有输入但必须要有输出 D、用C程序实现的算

嵌入式系统概述及与单片机区别说明

嵌入式系统概述及与单片机区别说明 嵌入式的全称是嵌入式系统,英文是Embeded system,是一种“完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”,根据英国电器工程师协会(U.K. Institution of Electrical Engineer)的定义,嵌入式系统为控制、监视或辅助设备、机器或用于工厂运作的设备。从这里我们可以看出两点,第一,嵌入式并不是一个通用的设备。第二,嵌入式必须和具体的应用相结合,设计上具有针对性。 所以可以看出来嵌入式是一个系统,嵌入式是需要把这个系统嵌入到设备中去,比如手机主板上的芯片就是嵌入到手机上的一个系统,整合了电脑的主板、CPU、硬盘、内存、网卡、显卡、电源的所有功能。也就是说嵌入式系统主要是从芯片的使用时的组织形态来命名的,更通俗的解释就是只要是被嵌入到设备中的芯片都可以叫做嵌入式系统。 嵌入式系统这个定义太广泛了,所以我们平时所讲的嵌入式更多的是从狭义上讲的,狭义上讲,嵌入式是为了区别于单片机。 我们经常把芯片中不带MMU(memory management unit)从而不支持虚拟地址,只能跑裸机或RTOS(典型如ucos、华为LiteOS、RT-Thread、freertos等)的system叫单片机(典型如STM32、NXP LPC系列、新的NXP imxRT1052系列等),而把芯片自带MMU可以支持虚拟地址,能够跑Linux、Vxworks、WinCE、Android 这样的操作系统的system叫嵌入式。 单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。

驱动程序详解及安装方法

驱动程序详解及安装方法 想要熟知驱动安装方法首先要了解电脑硬件大概信息,了解了硬件信息安装就比较简单了,下面笔者为大家详解,首先我们了解驱动为何物。 一、什么是驱动程序 根据百度百科:驱动程序,英文名为Device Driver,全称为设备驱动程序,是一种可以使计算机和设备通信的特殊程序,可以说相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备的工作,假如某设备的驱动程序未能正确安装,便不能正常工作。因此,驱动程序被誉为硬件的灵魂、硬件的主宰、和硬件和系统之间的桥梁等。 刚安装好的系统操作系统,很可能驱动程序安装得不完整。硬件越新,这种可能性越大。菜菜熊之前看到的图标很大且颜色难看就是没有安装好驱动的原因。 二、驱动程序的作用 随着电子技术的飞速发展,电脑硬件的性能越来越强大。驱动程序是直接工作在各种硬件设备上的软件,其驱动这个名称也十分形象的指明了它的功能。正是通过驱动程序,各种硬件设备才能正常运行,达到既定的工作效果。

硬件如果缺少了驱动程序的驱动,那么本来性能非常强大的硬件就无法根据软件发出的指令进行工作,硬件就是空有一身本领都无从发挥,毫无用武之地。这时候,电脑就正如古人所说的万事俱备,只欠东风,这东风的角色就落在了驱动程序身上。如此看来,驱动程序在电脑使用上还真起着举足轻重的作用。 从理论上讲,所有的硬件设备都需要安装相应的驱动程序才能正常工作。但像CPU、内存、主板、软驱、键盘、显示器等设备却并不需要安装驱动程序也可以正常工作,而显卡、声卡、网卡等却一定要安装驱动程序,否则便无法正常工作。这是为什么呢? 这主要是由于这些硬件对于一台个人电脑来说是必需的,所以早期的设计人员将这些硬件列为BIOS能直接支持的硬件。换句话说,上述硬件安装后就可以被BIOS和操作系统直接支持,不再需要安装驱动程序。从这个角度来说,BIOS也是一种驱动程序。但是对于其他的硬件,例如:网卡,声卡,显卡等等却必须要安装驱动程序,不然这些硬件就无法正常工作。 三、驱动程序的界定 驱动程序可以界定为官方正式版、微软WHQL认证版、第三方驱动、发烧友修改版、Beta测试版。初学者尽量安装官方正式版,当然如果你脱离了菜鸟就可以尝试下各种版本的驱动。 动手安装驱动程序之前,必须先搞清楚,哪些硬件是需要安装驱动程序的,哪些是不需要的。根据前面的介绍,CPU、内存、软驱、键盘、显示器等一般都

5 STC15F2K60S2单片机的程序设计 例题

第5章STC15F2K60S2单片机的程序设计 例题 例5.1 分析ORG在下面程序段中的控制作用 ORG 1000H START: MOV R0,#60H MOV R1,#61H …… ORG 1200H NEXT: MOV DPTR,#1000H MOV R2,#70H …… 解:以START开始的程序汇编后机器码从1000H单元开始连续存放,不能超过1200H 单元;以NEXT开始程序汇编后机器码从1200H单元开始连续存放。 例5.2 分析END在下面程序段中的控制作用。 START: MOV A,#30H …… END START NEXT: …… RET 解:汇编程序对该程序进行汇编时,只将END伪指令前面的程序转换为对应的机器代码程序,而以NEXT标号为起始地址的程序将予以忽略。因此,若NEXT标号为起始地址的子程序是本程序的有效子程序的话,应将整个子程序段放到END伪指令的前面。

例5.3 分析下列程序中EQU指令的作用 AA EQU R1 ;给AA赋值R1 DA TA1 EQU 10H ;给DA TA1赋值10H DELAY EQU 2200H ;给DELAY赋值2200H ORG 2000H MOV R0,DATA1 ;R0←(10H) MOV A,AA ;A←(R1) LCALL DELAY ;调用起始地址为2200H的子程序 END 解:经EQU定义后,AA等效于R1,DATA1等效于10H,DELAY等效于2200H,该程序在汇编时,自动将程序中AA换成R1、DATA1换成10H、DELAY换成2200H,再汇编为机器代码程序。 使用赋值伪指令EQU的好处在于程序占用的资源数据符号或寄存器符号用占用源的英文或英文缩写字符名称来定义,后续编程中凡是出现该数据符号或寄存器符号就用该字符名称代替,这样,采用有意义的字符名称进行编程,更容易记忆和不容易混淆,也便于阅读。

嵌入式系统与单片机的区别

嵌入式与单片机的异同及其发展趋势 如果说微型机的出现,使计算机进入到现代计算机发展阶段,那么嵌入式计算机系统的诞生,则标志了计算机进入了通用计算机系统与嵌入式计算机系统两大分支并行发展时代,从而导致20世纪末,计算机的高速发展时期。 嵌入式计算机系统走上了一条独立发展的单芯片化道路。它动员了原有的传统电子系统领域的厂家与专业人士,接过起源于计算机领域的嵌入式系统,承担起发展与普及嵌入式系统的历史任务,迅速地将传统的电子系统发展到智能化的现代电子系统时代。 按照历史性、本质性、普遍性要求,嵌入式系统定义为:“嵌入到对象体系中的专用计算机系统”。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。对象系统则是指嵌入式系统所嵌入的宿主系统。 嵌入式系统的特点与定义不同,由定义中的三个基本要素衍生出来的。不同的嵌入式系统其特点会有所差异。与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求。与“专用性”的相关特点:软、硬件的裁剪性;满足对象要求的最小软、硬件配置等。与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。 嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。 嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。因此,嵌入式系统作为一个专用计算机系统(满足对象系统要求的计算机应用系统),要不断向计算机应用系统发展。 单片机开创了嵌入式系统独立发展道路. 嵌入式系统虽然起源于微型计算机时代,然而,微型计算机的体积、价位、可靠性都无法满足广大对象系统的嵌入式应用要求,因此,嵌入式系统必须走独立发展道路——芯片化道路。将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。 在探索单片机的发展道路时,有过两种模式,即“∑模式”与“创新模式”。“∑模式”本质上是通用计算机直接芯片化的模式,它将通用计算机系统中的基本单元进行裁剪后,集成在一个芯片上,构成单片微型计算机;“创新模式”则完全按嵌入式应用要求设计全新的,满足嵌入式应用要求的体系结构、微处理器、指令系统、总线方式、管理模式等。Intel公司的MCS-48、MCS-51就是按照创新模式发展起来的单片形态的嵌入式系统(单片微型计算机)。MCS-51是在MCS-48探索基础上,进行全面完善的嵌入式系统。历史证明,“创新模式”是嵌入式系统独立发展的正确道路,MCS-51的体系结构也因此成为单片嵌入式系统的典型结构体系。 单片机诞生于20世纪70年代末,经历了SCM、MCU、SoC三大阶段。 SCM即单片微型计算机(Single Chip Microcomputer)阶段.主要是寻求最佳的单片形态嵌入式系统的最佳体系结构。“创新模式”获得成功,奠定了SCM 与通用计算机完全不同的发展道路。

如何手动安装驱动

如何手动安装驱动? 作者:Alright 编辑:Alright2010-01-11 10:27:59 13827 人阅读 把所有要安装的驱动程序都准备好后,我们就可以开始安装驱动程序了。驱动程序的安装方法也有很多种,下面就从易到难慢慢来看看。 1.安装傻瓜化——双击安装 现在硬件厂商已经越来越注重其产品的人性化,其中就包括将驱动程序的安装尽量简单化,所以很多驱动程序里都带有一个“Setup.exe”可执行文件,只要双击它,然后一路“Next(下一步)”就可以完成驱动程序的安装。有些硬件厂商提供的驱动程序光盘中加入了Autorun 自启动文件,只要将光盘放入到电脑的光驱中,光盘便会自动启动。 然后在启动界面中单击相应的驱动程序名称就可以自动开始安装过程,这种十分人性化的设计使安装驱动程序非常的方便。 2.从设备管理器里自己指定安装 如果驱动程序文件里没有Autorun自启动也没有有“Setup.exe”安装可执行文件怎么办?这时

我们就要自己指定驱动程序文件,手动安装了。 我们可以从设备管理器中来自己指定驱动程序的位置,然后进行安装。当然这个方法要事先准备好所要安装的驱动程序,该方法还适用于更新新版本的驱动程序。 首先从控制面板进入“系统属性”,然后依次点击“硬件”——“设备管理器”。 如图,网卡是没有安装驱动程序的设备,其前面会有感叹号“!”标示。 右键点击该设备,然后选择“更新驱动程序”。

接着就会弹出一个“硬件更新向导”,我们既然知道了它是属于什么型号的设备,而且还有它的驱动程序,选择“从列表或指定位置安装”。

如果驱动程序在光盘或软盘里,在接着在弹出的窗口里把“搜索可移动媒体”勾上就行,如果在硬盘里,则把“在搜索中包括这个位置”前面的复选框勾上,然后点“浏览”。接着找到咱们准备好的驱动程序文件夹,要注意的是很多硬件厂商会把其生产的很多类型的硬件设备驱动都压制在一张盘中,而且还会有不同的操作系统版本,如For Win2K(Win2000)和For WinXP的,要注意选择正确的设备和操作系统版本。点“确定”之后,点击“下一步”就行了。

单片机与嵌入式的区别之学习感悟

单片机与嵌入式的区别之学习感悟 单片机和嵌入式,其实没有什么标准的定义来区分他们,对于进行过单片机和嵌入式开发的开发者来说,都有他们自己的定义,接下来,就谈谈本人对这两个概念的理解和感悟。 首先明确概念,什么是单片机,单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。比如最经典的51系列单片机,外观只是一块一个拇指大小的长方体芯片,共40个引脚,里面包含了逻辑运算单元。实际上也就是一个cpu。 一直记得上单片机的第一节课上,老师介绍单片机时,是这样说的:单片机姓单。为什么要强调这一点呢?方便容易分不清的童鞋,以后每次想问这个问题的时候都想想这句话。了解的人其实很容易分开它们,实际上他们也没有什么可比性。 首先,见过单片机的人,都知道,其实单片机只是一块芯片,里面有运算器、存储器等组成的一个具有逻辑、运算、通信等功能的单元。说的再具体点,实际一个CPU。 DSP芯片也可以认为是一个单片机。当然它们性能很强大,但是功能依然很单一,总之就是处理数据、逻辑。 其次,单片机可以完成很多的任务处理,但一般都是跟一定的外围设备进行协作,比如,添加LED灯,实现交通灯系统;添加液晶屏,实现动画播放等。(当然很多同学都已经在大学期间自己完成过一个最小系统) 最后,我们来总结一下单片机,单片机是完成运算、逻辑控制、通信等功能的单一模块。相信我的上述讲解中,大家发现到了,单片机真的就是姓单(这个字读dan)。 针对嵌入式的概念是有些模糊定义的,一般情况下指的都是嵌入式系统。正因为这个概念有些模糊,所以会导致很多人对该概念的模糊认识。(就像大学中的一门课程,既可以叫

单片机原理与C51语言程序设计与基础教程 课后习题答案

单片机原理与C51语言程序设计与基础教 程课后习题答案 习题 填空题 1.一般而言,微型计算机包括、、、四个基本组成部分。 2.单片机是一块芯片上的微型计算机。以为核心的硬件电路称为单片机系统,它属于地应用范畴。 3.Atmel 公司生产的CMOS型51系列单片机,具有内核,用 代替ROM作为程序存储器, 4.单片机根据工作温度可分为、和三种。民用级的温度范围是0℃一70℃,工业级是-40℃~85℃,军用级是-55℃-125℃(不同厂家的划分标推可能不同。 5.在单片机领域内,ICE的含义是。 选择题 1.单片机的工作电压一般为V? A 5V B 3V C 1V D 4V 2.单片机作为微机的一种,它具有如下特点: A 具有优异的性能价格比 B 集成度高、体积小、可靠性高 C 控制功能强,开发应用方便 D 低电压、低功耗。 3.民用级单片机的温度范围是: A -40℃~85℃ B 0℃一70℃ C -55℃-125℃ D 0℃一50℃ 4.MCS-51系列单片机最多有个中端源。 A 3 B 4 C 5 D 6 5.下列简写名称中不是单片机或单片机系统的是 A MCU B SCM C ICE D CPU 问答题 1.单片机常用的应用领域有哪些? 2.我们如何学习单片机这么技术? 3.单片机从用途上可分成哪几类?分别由什么用处? 答案

填空题 1.运算器、控制器、存储器、输入输出接口 2.单片机嵌入式系统 3.MCS-51 Flash ROM 4.民用级(商业级) 工业级军用级 5.在线仿真器 选择题 1.A 2.ABCD 3.B 4.C 5.D 问答题 1.单片机广泛应用于仪器仪表、家用电器、医用设备、航空航天、专用设备的智能化管理及过程控制等领域,大致可分如下几个范畴: (1)在智能仪器仪表上的应用 单片机具有体积小、功耗低、控制功能强、扩展灵活、微型化和使用方便等优点,广泛应用于仪器仪表中,结合不同类型的传感器,可实现诸如电压、功率、频率、湿度、温度、流量、速度、厚度、角度、长度、硬度、元素、压力等物理量的测量。采用单片机控制使得仪器仪表数字化、智能化、微型化,且功能比起采用电子或数字电路更加强大。例如精密的测量设备(功率计,示波器,各种分析仪)。 (2)在工业控制中的应用 用单片机可以构成形式多样的控制系统、数据采集系统。例如工厂流水线的智能化管理,电梯智能化控制、各种报警系统,与计算机联网构成二级控制系统等。 (3)在家用电器中的应用 可以这样说,现在的家用电器基本上都采用了单片机控制,从电饭褒、洗衣机、电冰箱、空调机、彩电、其他音响视频器材、再到电子秤量设备,五花八门,无所不在。 (4)在计算机网络和通信领域中的应用 现代的单片机普遍具备通信接口,可以很方便地与计算机进行数据通信,为在计算机网络和通信设备间的应用提供了极好的物质条件,现在的通信设备基本上都实现了单片机智能控制,从手机,电话机、小型程控交换机、楼宇自动通信呼叫系统、列车无线通信、再到日常工作中随处可见的移动电话,集群移动通信,无线电对讲机等。 (5)单片机在医用设备领域中的应用 单片机在医用设备中的用途亦相当广泛,例如医用呼吸机,各种分析仪,监护仪,超声诊断设备及病床呼叫系统等等。 此外,单片机在工商,金融,科研、教育,国防航空航天等领域都有着十分广泛的用途。 2.首先,大概了解单片机的机构,例如本书的第2章则是主要讲了单片机的内部结构以及资源。对单片机的内部结构有了初步了解之后,读者就可以进行简单的实例练习,从而加深对单片机的认识。 其次,要有大量的实例练习。其实,对于单片机,主要是软件设计,也就是编程。目前最流行的用于51系列单片机地编程软件是Keil。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。掌握这一软件的使用对于使用51系列单片机的爱好

《单片机的C语言程序设计与运用(第2版)》期末复习题及答案2

第四章 中断类 例4-1 P104 假设外部中断0和外部中断1均为下降沿触发,当外部 中断0发生时,P0端口的电平反向,当外部中断1发生 时,P1端口的电平反向。 #include void IS0(void) interrupt 0 { P0=~P0;} //P0端口反向 void IS1(void) interrupt 2 { P1=~P1;} //P1端口反向 void main( )

{ P0=0x00; P1=0xFF; IT0=1; IT1=1; EX0=1; EX1=1; EA=1; while(1); } 【例4-9】外部中断示例 在本实例中,首先通过P1.7口点亮发光二极管D1,然后外部输入一脉冲串,则发光二极管D1亮、暗交替。 #include sbit P1_7=P1^7; void interrupt0( ) interrupt 0 using 2 //外部中断0 { P1_7=!P1_7;} void main( )

{ EA=1; //开中断 IT0=1; //外部中断0脉冲触发 EX0=1; //外部中断0 P1_7=0; do{ }while(1); } 如果有3个脉冲,则灯亮、暗交替一次,可如下面编程:#include Sbit P17=P1^7; unsigned char i=3; void main( ) { EA=1; IT0=1; EX0=1; P17=0; do{ }while(1); } void interrupt0( ) interrupt 0 { i=i-1; if(i==0) { P17=!P17; i=3; } } 【例4-10】如图4-18所示,8只LED阴极接至单片机P0口,两开关

单片机与嵌入式系统复习题

《单片机与嵌入式系统》复习题 一、选择题 1.8031单片机的( )口的引脚,还具有外中断、串行通信等第二功能。 a)P0 b)P1 c)P2 d)P3 2.单片机应用程序一般存放在( )。 a) RAM b)ROM c)寄存器 d)CPU 3.已知某数的BCD 码为0111 0101 0100 0010 则其表示的十进制数值为( ) a)7542H b)7542 c)75.42H d)75.42 4.下列指令中不影响标志位CY 的指令有( )。 a)ADD A,20H b)CLR c)RRC A d)INC A 5.CPU 主要的组成部部分为( ) a)运算器、控制器 b)加法器、寄存器 c)运算器、寄存器 d)运算器、指令译码器 6.INTEL 8051 CPU 是( )位的单片机 a) 16 b)4 c)8 d)准16 7.8031复位后,PC 与SP 的值为( ) a )0000H,00H b) 0000H,07H c) 0003H,07H d)0800H,00H 8.当需要从MCS-51单片机程序存储器取数据时,采用的指令为( )。 a)MOV A,@R1 b)MOVC A,@A+DPTR c)MOVX A,@R0 d)MOVX A,@DPTR 9.8031单片机中既可位寻址又可字节寻址的单元是( ) a)20H b)30H c)00H d)70H 10.下列哪条指令是正确的( ) a) PUSH R2 b) ADD R0,A c)MOVX A,@DPTR d)MOV @R0,A 11. MCS-51单片机复位操作的主要功能是把PC 初始化为( )。 A.0100H B.2080H C.0000H D.8000H 12.若单片机的振荡频率为6MHz,设定时器工作在方式1需要定时1ms,则定时器初值应为 ( )。 A.500 B.1000 C.216-500 D.216-1000 13.定时器1工作在计数方式时,其外加的计数脉冲信号应连接到( )引脚。 A.P 3.2 B.P 3.3 C.P 3.4 D.P 3.5 14.当外部中断请求的信号方式为脉冲方式时,要求中断请求信号的高电平状态和低电平状态都应至少维持( )。 A.1个机器周期 B.2个机器周期 C.4个机器周期 D.10个晶振周期 15.MCS-51单片机在同一优先级的中断源同时申请中断时,CPU 首先响应( )。 A.外部中断0 B.外部中断1 C.定时器0中断 D.定时器1中断 16.定时器若工作在循环定时或循环计数场合,应选用( )。 A.工作方式0 B.工作方式1 C.工作方式2 D.工作方式3 17.MCS-51单片机的外部中断1的中断请求标志是( )。 A.ET1 B.TF1 C.IT1 D.IE1 18.下列标号中,正确的标号是( )。 A.1BT: B.BEGIN: C.ADD: D.STAB31: 19. 串行口每一次传送( )字符。 A.1个 B.1串 C.1帧 D.1波特 20.MCS-51单片机的堆栈区应建立在()。 单片机与嵌入式系统复习题

驱动程序安装方法

驱动程序安装方法 初识电脑的人,可能为安装驱动程序而头疼。因为对驱动程序了解得不多就会在安装过程中走不少弯路,下面就给大家介绍一下安装驱动程序的两种常用方法和一些实用技巧。 一、安装即插即用设备的驱动程序 安装前的准备工作很重要,一般我们拿到要安装的新硬件时,首先要查看外包装盒,了解产品的型号、盒内部件及产品对系统的最低要求等信息。紧接着就要打开包装盒,取出硬件产品、说明书和驱动盘(光盘或软盘),认真阅读说明书或驱动盘上的ReadMe 文件,一般说明书上写有安装方法和步骤,以及安装注意事项。除了阅读说明书外,还应记得硬件产品上印刷的各种信息以及板卡产品使用的主要芯片的型号。这些信息就是确定产品型号及厂家的重要依据,只有知道这些,才能在网上查找最新的驱动程序。最后按照说明书上介绍的方法来安装硬件。通常安装内置板卡、内置驱动器,使用串口或PS /2接口的设备都应关机断电后再操作,而安装USB设备、笔记本电脑的PC卡时可以带电热插拔。当然,如果是Win2000系统则均可热插拔。完成前面的准备工作之后,就可以启动Windows 来安装驱动程序了。通常情况下,Windows 能够自动检测到PCI 卡、AGP卡、ISA卡、USB设备以及多数打印机和扫描仪等外设,并提示用户插入安装盘。以YAMAHA724声卡为例,其在Win98下安装驱动程序的详细步骤如下。 1.Win98在启动过程中会自动检测即插即用设备,一旦发现了新设备,并且在INF目录下有该设备的.inf 文件,系统将自动安装驱动程序;如果这是一个新设备,INF目录下没有相应的.inf 文件,那么系统就会启动硬件向导。我们单击“下一步”让安装向导自动搜索设备驱动程序,然后再单击“下一步”。 2.在图3中只选中“指定位置”,插入驱动光盘,并单击“浏览”,根据说明书的介绍,选择简体中文版驱动程序所在的目录“E:\Lx_so u n d /Yamaha /Win9X”,点“确定”后单击“下一步”。需要注意的是:Win95的安装向导没有自动搜索功能,我们必须选择“从磁盘安装”,并指定驱动程序所在的位置。驱动程序所在的目录通常是驱动盘上的“Win95”、“Win9X”或“Windows98”目录。 3.硬件安装向导会在指定目录下查找与设备相符的.inf 文件,此例中,硬件向导将在指定目录下找到并向作户报告发现YAMAHA724声卡驱动程序,继续按“下一步”。 4.硬件安装向导显示Windows 准备安装的驱动程序的信息,单击“下一步”后,硬件向导便会根据.inf 文件的内容把指定的文件拷贝到相应的目录下,并在注册表中写入相应的信息,安装成功后显示出对话框。 5.对多数设备而言,到这里驱动程序就算安装完毕了。但如果你安装的是声卡那就还未结束,因为刚才的步骤只能装完声卡的主体部分。单击“完成”后,Windows 又会报告发现了两个新硬件,分别是声卡的DOS 仿真部件和声卡上的游戏控制端口。由于此时SBPCI9X.inf 文件已经被拷到“Windows /INF /Other”子目录下,所以Windows 能够自动安装好这两种设备的驱动程序。 6.驱动程序安装完毕后,我们需要检查设备能否正常工作。检查前还要进行额外的设置,例如使用网卡之前必须先安装和设置网络协议,用调制解调器上网之前要先“新建连接”等。此例中,在“控制面板”里打开“系统”→“设备管理器”→“声音、视频和游戏控制器”,可以看见下面多了三个设备,只要设备的小图标上没有黄色惊叹号,就表示驱动程序运行正常。 二、安装非即插即用设备的驱动程序

单片机C语言程序设计师试题及答案

单片机C语言程序设计师试题 一、填空题 1、设X=5AH,Y=36H,则X与Y“或”运算为_________,X与Y的“异或”运算为________。 2、若机器的字长为8位,X=17,Y=35,则X+Y=_______,X-Y=_______(要求结果写出二进制形式)。 3、单片机的复位操作是__________(高电平/低电平),单片机复位后,堆栈指针SP的值是________。 4、单片机中,常用作地址锁存器的芯片是______________,常用作地址译码器芯片是_________________。 5、若选择内部程序存储器,应该设置为____________(高电平/低电平),那么,PSEN信号的处理方式为__________________。 6、单片机程序的入口地址是______________,外部中断1的入口地址是_______________。 7、若采用6MHz的晶体振荡器,则MCS-51单片机的振荡周期为_________,机器周期为_______________。 8、外围扩展芯片的选择方法有两种,它们分别是__________________和_______________。 9、单片机的内部RAM区中,可以位寻址的地址范围是__________________,特殊功能寄存器中,可位寻址的地址是____________________。 10、子程序返回指令是________,中断子程序返回指令是_______。 11、8051单片机的存储器的最大特点是____________________与____________________分开编址。 12、8051最多可以有_______个并行输入输出口,最少也可以有_______个并行口。 13、_______是C语言的基本单位。 14、串行口方式2接收到的第9位数据送_______寄存器的_______位中保存。 15、MCS-51内部提供_______个可编程的_______位定时/计数器,定时器有_______种工作方式。 16、一个函数由两部分组成,即______________和______________。 17、串行口方式3发送的第9位数据要事先写入___________寄存器的___________位。 18、利用8155H可以扩展___________个并行口,___________个RAM单元。 19、C语言中输入和输出操作是由库函数___________和___________等函数来完成。 二、选择题 1、C语言中最简单的数据类型包括(b )。 A、整型、实型、逻辑型 B、整型、实型、字符型 C、整型、字符型、逻辑型 D、整型、实型、逻辑型、字符型 2、当MCS-51单片机接有外部存储器,P2口可作为( c )。 A、数据输入口 B、数据的输出口 C、准双向输入/输出口 D、输出高8位地址 3、下列描述中正确的是( d )。 A、程序就是软件 B、软件开发不受计算机系统的限制 C、软件既是逻辑实体,又是物理实体 D、软件是程序、数据与相关文档的集合 4、下列计算机语言中,CPU能直接识别的是( d )。 A、自然语言 B、高级语言 C、汇编语言 D、机器语言 5、MCS-5l单片机的堆栈区是设置在( c )中。

相关主题