欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    单片机课程设计-智能仪器.docx

    • 资源ID:26870153       资源大小:13.44KB        全文页数:7页
    • 资源格式: DOCX        下载积分:30金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要30金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    单片机课程设计-智能仪器.docx

    单片机课程设计-智能仪器 论文题目:单片机系统设计开发应用智能仪器 学院:计算机科学与信息工程 专业:软件工程 学号:11103205 姓名:高红斌 日期:2022年12月1日 单片机系统设计开发应用智能仪器 一、设计要求及目的 本实验通过一个单通道通用型智能仪器的软硬件系统设计,将这学期学过的单片机原理加以综合运用,以此掌握单片机应用系统的设计要领,本次试验设计的总体目标是一路电压信号输入和两路报警开关量输出控制功能,其中信号电压范围05VDC,AD采样分辨率8bit,数码管显示信息为:以为参数字符和三位十进制采样值,控制参数有两个,即下限报警值L和上线报警值H,当采样值大于H时,高位报警继电器接通(用LED 状态灯D1亮表示);当采样值小于L时,下位报警继电器接通(用D2表示);当采样值介于L和H之间时,两路报警器功能均被解除(D1和D2均熄灭表示) 二、实验环境 微型计算机一台,proteus软件,keilC编译器。 三、元器件列表, 图表1 四、实验原理 本实验选用了一只六联共阴极数码管显示器,按照动态显示原理接线,其 中段码通过锁存器74LS245驱动后接于P0口,位码则有反相器74LS04驱动后接于P1.0-P1.5。A/D转换器采用逐次逼近方式的芯片ADC0809,其并行数据输出端直接连接于P2口,4个控制端CLOCK,START,EOC, 和OE分别接于P3.2-P3.5,采用查询法等待转换结束,转换时钟利用定 时器中断产生。四个面板按键通过8位串行输入并行输出移位寄存器 74LS164与单片机接口,其移位时终端与单片机的TXD引脚相连,串行 数据端(1和2脚)与单片机的RXD引脚相连,串口输出功能采用汇编 语言与C51语言混合编程实现。 软件系统采用一个有多个功能模块构成的程序,模块之间相互依赖,他们 之间的关系如图,程序有主要的两个功能模块组成控制模块和菜单模 块。这两个模块能够同时运行。这里,“同时”的意思是指用户进行菜单操 作的时候,程序还能采集数据并进行控制。 图表2 软件系统结构组成 “控制”和“菜单”这两个主要的模块都是建立在其他小模块的基础上的,比如控制模块建立在A/D转换和LED 显示的基础上,菜单建立在按键检测和LED显示的基础上,而按键检测又建立在串口输出的基础上。下表列出了各个模块的主要函数。 图表3 各个模块的主要函数和功能 五、程序源代码 /main.c void ad_init(); void control_thread(); void menu_thread(); void main() ad_init(); while (1) menu_thread(); control_thread(); /menu.c #define MENU_ON 0 #define MENU_OFF 1 #define MENU_NUM 2 #define MENU_MAX 999 #define MENU_MIN 0 unsigned char param_value = 100, 150; unsigned char menu_status = MENU_OFF; char _menu_name = 'L','H' /参数名的符号unsigned char _menu_value = 0,0; /供显示用的参数数组unsigned char _menu_idx = 0; /参数序号 char get_key(); void print(char name, unsigned int value); void menu_thread(void) char i = 0; char key = get_key(); if (menu_status = MENU_OFF) /当前菜单为关闭状态时 if (key = 0) /若按键0已被按下 menu_status = MENU_ON; /置当前菜单为打开状态 _menu_idx = 0; /设置参数序号0 /将所有参数当前值取出,送入供显示的参数数组中 for (i = 0 ; i MENU_MAX) _menu_value_menu_idx = MENU_MAX; else if (key = 3) /若按键3按下,则参数值减10 _menu_value_menu_idx -= 10; if (_menu_value_menu_idx param_value1) P16 = 0; P17 = 1; else if (value = param_value0) P16 = 0; P17 = 0; else P16 = 1; P17 = 0; /第3步:如果菜单是关闭的,显示采集到的数值 if (menu_status = 1) print(' ', value); /keyboard.c #include #define CHECK_KEY_DOWN 0 /处在检测按键压下阶段标志#define CHECK_KEY_UP 1 /处在检测按键抬起阶段标志#define KEY_UP 0 /按键抬起标志 #define KEY_DOWN 1 /按键压下标志 sbit _p33 = P33; sbit _p34 = P34; sbit _p35 = P35; sbit _p36 = P36; char _key_status = CHECK_KEY_DOWN; /按键检测状态(初值为检测压下阶段) char _key_idx = 0; /按键序号 void serial(char byte); char _check_key(unsigned char _key_idx) /检查按键状态serial(0x01<<_key_idx); /将待查按键键码转换成扫描码后输出if (_p36 = 0) /根据P36状态决定返回值 return KEY_DOWN; else return KEY_UP; char get_key(void) char result = -1; /无键按下时键值为-1

    注意事项

    本文(单片机课程设计-智能仪器.docx)为本站会员(h****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开