第一范文网 - 专业文章范例文档资料分享平台

毕业设计题目,指脉波采级与12864液晶转换

来源:用户分享 时间:2025/8/26 6:48:15 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

#include #include

#define uchar unsigned char #define uint unsigned int #include

#define AddWr 0x90 //写数据地址 #define AddRd 0x91 //读数据地址

sbit Sda=P1^2; //定义总线连接端口 sbit Scl=P1^1;

bit ADFlag; uchar table[31]; sbit rs = P2^4; sbit rw = P2^5; sbit e = P2^6; sbit key1=P3^0; sbit key2=P3^1;

void delay(uint x) {

uchar i,j; for(i=0;i

/*------------------------------------------------ 初始化定时器1 ------------------------------------------------*/ void Init_Timer1(void) {

TMOD |= 0x10;

TH1=0xff; /* Init value */ TL1=0x00;

//PT1=1; /* 优先级 */ EA=1; /* interupt enable */

ET1=1; /* enable timer1 interrupt */ TR1=1; }

/*------------------------------------------------ 启动IIC总线 ------------------------------------------------*/ void Start(void) {

Sda=1; _nop_(); Scl=1; _nop_(); Sda=0; _nop_(); Scl=0; }

/*------------------------------------------------ 停止IIC总线 ------------------------------------------------*/ void Stop(void) {

Sda=0; _nop_(); Scl=1; _nop_(); Sda=1; _nop_(); Scl=0; }

/*------------------------------------------------ 应答IIC总线 ------------------------------------------------*/ void Ack(void) {

Sda=0; _nop_(); Scl=1; _nop_(); Scl=0; _nop_(); }

/*------------------------------------------------ 非应答IIC总线 ------------------------------------------------*/ void NoAck(void) {

Sda=1; _nop_(); Scl=1; _nop_(); Scl=0; _nop_(); }

/*------------------------------------------------ 发送一个字节

------------------------------------------------*/ void Send(unsigned char Data) { unsigned char BitCounter=8; unsigned char temp; do { temp=Data; Scl=0; _nop_(); if((temp&0x80)==0x80) Sda=1; else Sda=0; Scl=1; temp=Data<<1; Data=temp; BitCounter--; } while(BitCounter); Scl=0; }

/*------------------------------------------------ 读入一个字节并返回 ------------------------------------------------*/ unsigned char Read(void) { unsigned char temp=0; unsigned char temp1=0;

unsigned char BitCounter=8; Sda=1; do { Scl=0; _nop_(); Scl=1; _nop_(); if(Sda) temp=temp|0x01; else temp=temp&0xfe; if(BitCounter-1) { temp1=temp<<1; temp=temp1; } BitCounter--; } while(BitCounter); return(temp); }

/*------------------------------------------------

读取AD模数转换的值,有返回值 ------------------------------------------------*/ unsigned char ReadADC(unsigned char Chl) {

unsigned char Data; Start(); //写入芯片地址 Send(AddWr); Ack(); Send(0x40|Chl);//写入选择的通道,本程序只用单端输入,差分部分需要自行添加 //Chl的值分别为0、1、2、3,分别代表1-4通道 Ack(); Start(); Send(AddRd); //读入地址 Ack(); Data=Read(); //读数据

毕业设计题目,指脉波采级与12864液晶转换.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c3v2rt8oysv00kc51ztoj_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top