单片机常用芯片的头文件Word文档格式.docx
- 文档编号:19854242
- 上传时间:2023-01-11
- 格式:DOCX
- 页数:24
- 大小:20.39KB
单片机常用芯片的头文件Word文档格式.docx
《单片机常用芯片的头文件Word文档格式.docx》由会员分享,可在线阅读,更多相关《单片机常用芯片的头文件Word文档格式.docx(24页珍藏版)》请在冰豆网上搜索。
ADC_CONTR=ADC_POWER|ADC_SPEEDLL|ADC_START|chan;
_nop_();
//打开ADC
}
*/
//----------------------------
//ADC中断处理
/*voidadc_isr()interrupt5using1
unsignedunsignedintAD_Result_Temp
ADC_CONTR&
=!
ADC_FLAG;
//清除ADC中断标志位
return(((AD_Result_Temp|ADC_RES)<
<
2)+ADC_RESL);
//返回10位ADC转换结果
if(++ch>
7)ch=0;
//却换到下一个通道
unsignedintGetADCResult(unsignedcharchan)
AD_Result_Temp=0;
ADC_RES=0;
ADC_RESL=0;
ADC_CONTR=ADC_POWER|ADC_SPEEDHH|chan|ADC_START;
//Mustwaitbeforeinquiry
while(!
(ADC_CONTR&
ADC_FLAG));
//等待完成
=~ADC_FLAG;
//关闭ADC转换
AD_Result_Temp=(((AD_Result_Temp|ADC_RES)<
returnAD_Result_Temp;
//74HC595
//发送完一个8位数据,就锁存一次
//8个数码管,可以这样做
//for(i=0;
i<
8;
i++)
//{
//Send_HC595(....//要发送的8为数据);
//Show_595();
//}
/********************************************************/
/**/
/*将显示数据送入74HC595内部移位寄存器*/
voidSend_HC595(INT16ULED_DATA)
INT8Ui;
for(i=0;
{
HC595_DS=LED_DATA&
0x80;
HC595_SHCP=1;
//上升沿发生移位
HC595_SHCP=0;
LED_DATA=LED_DATA<
1;
}
/*将移位寄存器内的数据锁存到输出寄存器并显示*/
voidShow_595(void)
HC595_STCP=0;
HC595_STCP=1;
//上升沿将数据送到输出锁存器
//74HC164
#ifndef__74LS164_H__
#define__74LS164_H__
externvoidWrite_Bit8(unsignedcharbit_8)
unsignedchari;
for(i=8;
i>
0;
i--)//数码管段8位数据
{
Data=bit_8&
//传送一位数据
CLK=0;
CLK=1;
bit_8=bit_8<
20位串口A/D转换器CS5513
20位串口A/D转换器CS5513接口程序2010-03-2214:
56//cs5513接口的C51官方程序
//cs5513返回长整型数据
//CS=0时表示片选有效,当然可以直接接地,这样可以节省一个I/O口
sbitADCS=P2^0;
sbitADCLK=P2^1;
sbitADDO=P2^2;
unsignedlongintADConv(void)
uchari;
unsignedlongintResult=0;
ADCLK=0;
ADCS=0;
_nop_();
ADCLK=0;
while(ADDO);
ADCLK=1;
for(i=0;
3;
i++){
for(i=0;
20;
i++){
Result=Result<
if(ADDO)
Result=Result+1;
ADCLK=1;
ADCS=1;
returnResult;
//LCDSMC12864-05
#ifndef_CRYFUCNS_H_
#define_CRYFUCNS_H_
voidSend(unsignedchartype,unsignedchartransdata);
voidInit_LCD(void);
voidClear_GDRAM(void);
voidDisp_HZ(unsignedcharaddr,constunsignedchar*pt,unsignedcharnum);
voidDraw_PM(constunsignedchar*ptr);
voidDraw_TX(unsignedcharYaddr,unsignedcharXaddr,constunsignedchar*dp);
voidDisp_SZ(unsignedcharaddr,unsignedcharshuzi);
cryfucns.h>
STC12C5A.H>
#include<
intrins.h>
types.h>
externconstINT8Ushuzi_table[];
voidSend(INT8Utype,INT8Utransdata);
/**********液晶控制IO的宏定义*************/
sbitRS_CS=P0^0;
sbitRW_SDI=P0^1;
sbitE_CLK=P0^2;
/*******************************************
函数名称:
delay_Nus
功能:
延时N个us的时间
参数:
n--延时长度
返回值:
无
********************************************/
voiddelay_Nus(INT16Un)
for(i=n;
i>
0;
i--)
}
delay_1ms
延时约1ms的时间
voiddelay_1ms(void)
for(i=150;
i--)_nop_();
delay_Nms
延时N个ms的时间
********************************************/
voiddelay_Nms(INT16Un)
INT16Ui=0;
delay_1ms();
Ini_Lcd
初始化液晶模块
voidInit_LCD(void)
{
delay_Nms(100);
//延时等待液晶完成复位
Send(0,0x30);
/*功能设置:
一次送8位数据,基本指令集*/
delay_Nus(72);
Send(0,0x02);
/*DDRAM地址归位*/
Send(0,0x0c);
/*显示设定:
开显示,不显示光标,不做当前显示位反白闪动*/
Send(0,0x01);
/*清屏,将DDRAM的位址计数器调整为“00H”*/
Send(0,0x06);
/*功能设置,点设定:
显示字符/光标从左到右移位,DDRAM地址加1*/
Send
MCU向液晶模块发送1一个字节的数据
type--数据类型,0--控制命令,1--显示数据
transdata--发送的数据
voidSend(INT8Utype,INT8Utransdata)
INT8Ufirstbyte=0xf8;
INT8Utemp;
INT8Ui,j=3;
if(type)firstbyte|=0x02;
RS_CS=1;
E_CLK=0;
while(j>
0)
if(j==3)temp=firstbyte;
elseif(j==2)temp=transdata&
0xf0;
elsetemp=(transdata<
4)&
0xf0;
for(i=8;
{
if(temp&
0x80)RW_SDI=1;
elseRW_SDI=0;
E_CLK=1;
temp<
=1;
E_CLK=0;
}
//三个字节之间一定要有足够的延时,否则易出现时序问题
if(j==3)delay_Nus(600);
elsedelay_Nus(200);
j--;
}
RW_SDI=0;
RS_CS=0;
Clear_GDRAM
清除液晶GDRAM内部的随机数据
voidClear_GDRAM(void)
INT8Ui,j,k;
Send(0,0x34);
//打开扩展指令集
i=0x80;
for(j=0;
j<
32;
j++)
Send(0,i++);
Send(0,0x80);
for(k=0;
k<
16;
k++)
{
Send(1,0x00);
}
for(j=0;
Send(0,i++);
Send(0,0x88);
}
//回到基本指令集
Disp_HZ
显示汉字程序
addr--显示位置的首地址
pt--指向显示数据的指针
num--显示数据的个数
voidDisp_HZ(INT8Uaddr,constINT8U*pt,INT8Unum)
Send(0,addr);
for(i=0;
i<
(num*2);
i++)
Send(1,*(pt++));
Draw_PM
在整个屏幕上画一个图片
ptr--指向保存图片位置的指针
voidDraw_PM(constINT8U*ptr)
Send(1,*ptr++);
Send(0,0x36);
//打开绘图显示
Draw_TX
在液晶上描绘一个16*16的图形
Yaddr--Y地址,
Xaddr--X地址
dp--指向保存图形数据的指针
voidDraw_TX(INT8UYaddr,INT8UXaddr,constINT8U*dp)
INT8Uj;
INT8Uk=0;
//使用扩展指令集,关闭绘图显示
Send(0,Yaddr++);
//Y地址
Send(0,Xaddr);
//X地址
Send(1,dp[k++]);
//送两个字节的显示数据
//回到基本指令集模式
Disp_SZ
显示一个两位数字
addr--显示地址
数字--显示的数字
voidDisp_SZ(INT8Uaddr,INT8Ushuzi)
INT8Utmp0,tmp1;
tmp0=shuzi/10;
tmp1=shuzi%10;
Send(1,shuzi_table[tmp0]);
Send(1,shuzi_table[tmp1]);
//STC内部EEPROM操作程序
#ifndef_EEPROM_H_
#define_EEPROM_H_
//定义Flash操作等待时间及允许IAP/ISP/EEPROM操作的常数
//#defineENABLE_ISP0x80//系统工作时钟<
30MHz时,对IAP_CONTR寄存器设置此值
//#defineENABLE_ISP0x81//系统工作时钟<
24MHz时,对IAP_CONTR寄存器设置此值
//#defineENABLE_ISP0x82//系统工作时钟<
20MHz时,对IAP_CONTR寄存器设置此值
#defineENABLE_ISP0x83//系统工作时钟<
12MHz时,对IAP_CONTR寄存器设置此值
//#defineENABLE_ISP0x84//系统工作时钟<
6MHz时,对IAP_CONTR寄存器设置此值
//#defineENABLE_ISP0x85//系统工作时钟<
3MHz时,对IAP_CONTR寄存器设置此值
//#defineENABLE_ISP0x86//系统工作时钟<
2MHz时,对IAP_CONTR寄存器设置此值
//#defineENABLE_ISP0x87//系统工作时钟<
1MHz时,对IAP_CONTR寄存器设置此值
#defineFIRST0x0000
#defineSECOND0x200
#defineTHIRD0x400
#defineSTART_FLAG0xE1
unioneeprom_addr
unsignedinttemp16;
unsignedchartemp8[2];
}addr16;
voidIAP_Disable(void);
//关闭IAP功能
voidSector_Erase(unsignedintadd);
//擦除扇区
voidByte_Program(unsignedintadd,unsignedcharch);
//字节编程,调用前需打开IAP功能
externunsignedcharByte_Read(unsignedintadd);
//读一字节,调用前需打开IAP功能
eeprom.h>
/***********************************************************************************************
读一字节,调用前需打开IAP功能,入口:
DPTR=字节地址,返回:
A=读出字节
************************************************************************************************/
unsignedcharByte_Read(unsignedintadd)
EA=0;
IAP_DATA=0x00;
IAP_CONTR=ENABLE_ISP;
//打开IAP功能,设置Flash操作等待时间
IAP_CMD=0x01;
//IAP/ISP/EEPROM字节读命令
addr16.temp16=add;
IAP_ADDRH=addr16.temp8[0];
//设置目标单元地址的高8位地址
IAP_ADDRL=addr16.temp8[1];
//设置目标单元地址的低8位地址
IAP_TRIG=0x5A;
//先送5Ah,再送A5h到ISP/IAP触发寄存器,每次都需如此
IAP_TRIG=0xA5;
//送完A5h后,ISP/IAP命令立即被触发起动
IAP_Disable();
//关闭IAP功能,清相关的特殊功能寄存器,使CPU处于安全状态,
//一次连续的IAP操作完成之后建议关闭IAP功能,不需要每次都关
EA=1;
return(IAP_DATA);
/****************************************************************************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 常用 芯片 文件
![提示](https://static.bdocx.com/images/bang_tan.gif)