具体实现功能

具体功能:

通过滑动变阻器和ADC0832模块对电压值进行采样,反馈电压值通过数码管进行显示,电压范围为0-5V,如图所示表示电压为3.92V。

设计介绍

单片机介绍

51单片是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。具有以下标准功能:8k字节Flash,512字节RAM,32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。

设计思路

文献研究法:搜集整理相关单片机智能手环系统相关研究资料,认真阅读文献,为研究做准备;

调查研究法:通过调查、分析、具体试用等方法,发现单片机智能手环系统的现状、存在问题和解决办法;

比较分析法:比较不同单片机智能手环系统的具体原理,以及同一类传感器性能的区别,分析单片机智能手环系统的研究现状与发展前景;

软硬件设计法:通过软硬件设计实现具体硬件实物,最后测试各项功能是否满足要求。

设计内容

仿真图

本设计利用protues8.7软件实现仿真设计,具体如图。

Protues也是在单片机仿真设计中常用的设计软件之一,通过设计出硬件电路图,及写入驱动程序,就能在不实现硬件的情况进行电路调试。另外,protues还能实现PCB的设计,在仿真中也可以与KEIL实现联调,便于程序的调试,且支持多种平台,使用简单便捷。

程序

本设计利用KEIL5软件实现程序设计,具体如图。作为本科期间学习的第一门编程语言,C语言是我们最熟悉的编程语言之一。当然,由于其功能强大,C语言是当前世界上使用最广泛、最受欢迎的编程语言。在单片机设计中,C语言已经逐步完全取代汇编语言,因为相比于汇编语言,C语言编译与运行、调试十分方便,且可移植性高,可读性好,便于烧录与写入硬件系统,因此C语言被广泛应用在单片机设计中。keil软件由于其兼容单片机的设计,能够实现快速调试,并生成烧录文件,被广泛应用于C语言的编写和单片机的设计。

#include<reg52.h>#define uchar unsigned char#define uint unsigned int #define ulong unsigned long#define _rrca_()          CY   = ACC & 0x01           //产生RRC A指令#define _rlca_()          CY   = ACC & 0x80           //产生RLC A指令sbit bADcs=P1^4;sbit bADcl=P1^5;sbit bADda=P1^6;sbit flag=P1^7;sbit str=P2^7;sbit d=P2^6;sbit clk=P2^5;bit choose=0;unsigned char data1;unsigned char count;unsigned char cycle;uint ge,xiao1,xiao2;unsigned long data2;//无小数点const uchar table1[17]={0x81,0xed,0x43,0x49,0x2d,0x19,0x11,0xcd,0x01,0x09,0x71,0x31,0x93,0x61,0x13,0x17,0xff};//有小数点const uchar table2[17]={0x80,0xec,0x42,0x48,0x2c,0x18,0x10,0xcc,0x00,0x08,0x70,0x30,0x92,0x60,0x12,0x16,0xff};uchar buffer[4]={0x00,0x00,0x00,0x00};void Delayus(uchar i) {  while(--i); }void display(void){uchar bit_count=0;uchar table_counter=0;uchar byte_counter=0;uchar temp_i=0;buffer[0]=xiao2;buffer[1]=xiao1;buffer[2]=ge;buffer[3]=0x00;//led_str_off;//先清零str=0;//led_clk_off;clk=0;for(byte_counter=0;byte_counter<4;byte_counter++)  {  bit_count=8;   if(byte_counter==2)temp_i=table2[buffer[byte_counter]];    else  temp_i=table1[buffer[byte_counter]];//  nop;  while(bit_count>0)    {    if((temp_i&0x80)==0)      {      //led_d_off;      d=0;      }    else      {      //led_d_on;      d=1;      }    temp_i=(temp_i<<1);    //    nop;    //led_clk_on;    clk=1;//    nop;    //led_clk_off;    clk=0;//    nop;        bit_count--;              }    }  //led_str_on;  str=1;}/*void ad(){  choose=0;   count = 0;   bADcs = 0;//当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用.   bADcl = 0;   bADda = 1;//在第1 个时钟脉冲的下沉之前DI端必须是高电平.   bADcl = 1;    bADcl = 0;//pulse 1 down   bADda = 1;   bADcl = 1; bADcl = 0;//pulse 2 down   if(choose == 0)     bADda = 0;  else     bADda = 1;       bADcl = 1; bADcl = 0;//pulse 3 down    bADcl = 1; bADcl = 0;//pulse 4 down      //bADcl = 1;      for(cycle = 8; cycle > 0; cycle-- )     {     bADda = 1;    //bADcl = 0;//pulse     bADcl = 1;     CY = bADda;     _rlca_();  //RRC A     bADcl = 0;//pulse     }   data1= ACC;        for(cycle = 8; cycle > 0; cycle-- )     {     bADda = 1;            bADcl = 1;     CY = bADda;     _rrca_();  //RLC A     bADcl = 0;//pulse        }     //bADcl = 0;//pulse } */void ad(void){     uchar i;     //data1=0;     bADcs = 0;//当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用.   bADcl=0;   bADda=1;   bADcl=1;   bADcl=0;//i down   bADda=1;   bADcl=1;   bADcl=0;  //   2 down   bADda=0;   bADcl=1;   bADcl=0;  //   3 down   bADda=1;   bADcl=1;   bADcl=0;  //   4 down   for(i=8;i>0;i--)     {         data1<<=1;     bADcl=0;    bADcl=1;    if(bADda==1) data1|=0x01;         bADda=1;     }  /* for(i=8;i>0;i--)     {     bADcl=0;    bADcl=1;     }  */     bADcs=1;   }void cal(){data2=((ulong)data1*493)/256;ge=data2/100;xiao1=(data2%100)/10;xiao2=data2%10;}main(){flag=1;     while(1){        ad();           cal();          display();  }}

设计分享|单片机电压表模拟相关推荐

  1. 设计分享|单片机LED模拟交通灯

    目录 具体实现功能 设计介绍 51单片机简介 设计思路 设计内容 仿真图(protues8.7) 程序(Keil5) 具体实现功能 单片机LED模拟交通灯实现:东西绿灯2秒,东西黄灯闪烁5次,南北红灯 ...

  2. 设计分享|单片机多音阶电子琴(汇编)

    具体实现功能 具体实现功能: 按下不同的按键分别发出不同的音阶,分别可以发出以下音阶:低3,低4,低5,低6 ,低7:中1,中2,中3;中4,中5,中6,中7:高1,高2,高3,高4. 设计介绍 单片 ...

  3. 设计分享|单片机8路抢答器

    具体实现功能 具体功能: (1)按下"开始"按键,进入20S倒计时,八位选手可以进行抢答: (2)选手按下抢答按键后,数码管显示对应的选手编号,表示抢答成功: (3)抢答成功后,点 ...

  4. 设计分享|单片机数字温度计

    具体实现功能 具体功能: 通过DS18B20测温,通过四位数码管实时显示温度值. 设计介绍 单片机介绍 51单片是一种低功耗.高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器.在 ...

  5. 设计分享|单片机交通灯仿真(汇编)

    具体实现功能 具体功能: (1)东西红灯60S倒计时,南北绿灯40S倒计时,东西向人行道红灯,南北向人行道绿灯: (2)40S后,黄灯闪烁切换,东西右转绿灯20S,左转绿灯20S,南北80S倒计时,右 ...

  6. 设计分享|单片机抢答器(汇编)

    具体实现功能 具体实现功能: 主持人按下抢答按键后,进入抢答模式,8位选手开始抢答,数码管显示抢答成功的选手号码,主持人按键再次按下后复位. 设计介绍 单片机介绍 51单片是一种低功耗.高性能CMOS ...

  7. 设计分享|单片机直流电机转速控制(汇编)

    目录 具体实现功能: 设计介绍 51单片简介 设计思路 设计内容 仿真图(protues8.7) 程序(KeilC51) 具体实现功能: 利用滑动变阻器实现对直流电机转速的控制,仿真实现,汇编语言编写 ...

  8. 设计分享|单片机花样流水灯

    目录 具体实现功能 设计介绍 51单片机简介 设计思路 设计内容 仿真图(protues8.7) 程序(Keil5) 具体实现功能 单片机控制两列16个LED实现彩灯展示.P0口控制的8个LED彩灯实 ...

  9. 设计分享|单片机4*4矩阵键盘控制LED灯

    目录 具体实现功能 设计介绍 51单片机简介 设计思路 设计内容 仿真图(protues8.7) 程序(Keil5) 具体实现功能 4*4矩阵键盘控制LED显示,第一个按键控制一个LED点亮,第二个按 ...

最新文章

  1. 如何实现一个元素居中
  2. 建立Windows Embedded Compact 7开发环境
  3. 【运营干货】三分钟,读懂互联网运营
  4. sql server 定时备份数据库
  5. python-实现栈结构
  6. 蓝牙mesh_什么是蓝牙mesh,蓝牙mesh特征,蓝牙mesh应用
  7. (转)C# 解析 json
  8. mysql数据库事务实现方式_mysql事务的实现原理
  9. 数字图像处理课程设计
  10. Mac系统最强虚拟机(支持Big Sur)
  11. 小米手机连接电脑只能看到部分相片_小米手机连接电脑后怎么看照片
  12. linux u盘 引导修复工具下载,win7+ubuntu双系统引导修复工具boot repair disk 32+64位ISO版...
  13. 随笔随想-2022-06-07
  14. macbook无法打开移动硬盘 为什么mac上显示不了移动硬盘
  15. 51单片机(四)—— 51单片机仿真芯片的使用
  16. 富士康计算机类笔试题,富士康笔试题目及答案
  17. 钉钉开发系列(十一)钉钉网页扫码登录
  18. IE起始页被改为 http://www.537.com 的解决
  19. 为祖国庆生, 我们都经历了些什么?
  20. 机器学习笔记之受限玻尔兹曼机(二)模型表示

热门文章

  1. 蓝桥杯省赛 冶炼金属 二分 推公式
  2. 亚马逊美国站 儿童珠宝首饰CPC认证 ASTM F2923标准CPSIA检测报告
  3. TensorFlow - TF-Slim 使用总览
  4. 模拟电路学习2(2022.3.21)
  5. 计算机毕业设计 SSM在线药品购物商城系统(源码+论文)
  6. SAP随笔定位经验记录
  7. 硬盘使用率100%——禁用SuperFetch
  8. java调用站长之家api查询whois
  9. 汽车可视化市场现状研究分析报告-
  10. 浙江工商大学20机试(oj复试)大仙来了abc