资源简介
51单片机血压计程序,stc89c52,程序,计数,便于放气速度设置,由D/A输出来控制放气速度
代码片段和文件信息
#include
#include
#define DAC_1 XBYTE[0x2000]
#define DAC_2 XBYTE[0x4000]
#define ADC_0 XBYTE[0x6000]
#define ADC_1 XBYTE[0x6001]
#define ADC_2 XBYTE[0x6002]
#define ADC_3 XBYTE[0x6003]
#define ADC_4 XBYTE[0x6004]
#define ADC_5 XBYTE[0x6005]
#define ADC_6 XBYTE[0x6006]
#define ADC_7 XBYTE[0x6007]
unsigned char dspbuf[4]={0xef0xef0xef0xef}sel=0key_sta=0key_num;
unsigned int adcount=0;
sbit D_SER= P1^0;
sbit D_SRCLK= P1^1;
sbit D_RCLK= P1^2;
sbit KEY1= P3^4;
sbit KEY2= P3^5;//定时器初始化:
void init_timer0(void)
{
TMOD =0X22; //定时器0以方式2(自动重新装载8位计数器)自动计数
TL0 = 0X06;
TH0 = 0X06; //至初始值为6,每0.25ms进入一次中断
TL1 = 0Xe8;
TH1 = 0Xe8;
TR0 = 1;
TR1 = 1;
ET0 = 1;
}
//中断设置:
void init_special_interrupts(void)
{
EX0 = 0;
ET0 = 1;
EX1 = 0;
ET1 = 0;
ES = 1;
EA = 1;
PT0 = 0;
PX1 = 1;
PS = 0;
SCON=0x50; //串行口方式1工作
}
//数码管显示:
void dsptask()
{
unsigned char i;
unsigned char ab;
switch(sel)
{
case 0: a=0x01; break;
case 1: a=0x02; break;
case 2: a=0x04; break;
default: a=0x08;
}
for(b=0x80i=0;i<8;i++)
{
if(a&b) D_SER=1;
else D_SER=0;
D_SRCLK=0;
D_SRCLK=1;
D_SRCLK=0;
b=b>>1; b=b&0x7f;
}
a=dspbuf[sel];
key_num=sel;
sel++;
if(sel>=4) sel=0;
for(b=0x80i=0;i<8;i++)
{
if(a&b) D_SER=1;
else D_SER=0;
D_SRCLK=0;
D_SRCLK=1;
D_SRCLK=0;
b=b>>1; b=b&0x7fff;
}
D_RCLK=0;
D_RCLK=1;
D_RCLK=0;
}
//键盘扫描: //键盘值为1~8
void key_service()
{
if(key_sta&0x01) return; // key_sta.0=1
if(KEY2)
{
key_num=key_num+1;
key_sta=key_sta|0x01; // 置key_sta.0=1
}
else if(KEY1)
{
key_num=key_num+5;
key_sta=key_sta|0x01; // 置key_sta.0=1
}
}//定时器0中断处理:
void timer_isr() interrupt 1 {
EA=0;
adcount++; //计数,便于放气速度设置
key_service(); //键盘扫描
EA=1;
}
//扫描字显示转化:
fdisp(unsigned char nunsigned char m) //将需要显示的数转化成相应的显示码
{
char c;
switch(n)
{
case 0: c=0x11; break;
case 1: c=0x7d; break;
case 2: c=0x23; break;
case 3: c=0x29; break;
case 4: c=0x4d; break;
case 5: c=0x89; break;
case 6: c=0x81; break;
case 7: c=0x3d; break;
case 8: c=0x01; break;
default: c=0x09;
}
dspbuf[m]=c;
}
//主函数:
void main(void)
{
float m
相关资源
- STM32+TMC5160代码电路图.rar
- AT89C51+ADC0808 PROTEUS仿真
- 单片机原理及接口技术C51编程张毅刚
- 基于AT89C51的十字路口交通灯设计pro
- 单片机原理及接口技术C51编程
- at89c51单片机外文翻译
- 单片机原理及接口技术C51编程高清P
- 基于C51的电子琴设计
- keilc51源代码
- 在C51中变量的空间分配几个方法
- 初学C51的一些误区
- 单片机初学者学习C51时的一些误区和
- Philips 80C51MX
- 12bit流水线ADC电路整体电路原理图-c
- 0.96OLED_C51系列_IIC应答_例程
- 0-999计数器的C51程序
- [单片机原理与应用设计C51编程+Prote
- ESP8266AP模式控制51单片机亮灯.docx
- C51代码生成器(代码快速生成工具)
- 基于AT89C51单片机信号发生器设计.pd
- 89C51单片机最小系统PCB
- 基于AT89C51单片机的多功能函数信号发
- 2a62681b89fa827f4a9db624c51264ef.rar
- 基于单片机AT89C51控制的热水器设计
- MPC5125开发板原理、PCB的demo
- 89c51单片机论文英文文献翻译
- C51单片机及应用系统设计[徐煜明][电
- 基于AT89C51单片机电烤箱的温度控制系
- DOFLY_mini80e开发板资料和程序
- 89c51单片机 英语文献翻译.doc
评论
共有 条评论