- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
洛阳理工学院实验报告
系别 计算机系 班级 B110508 学号 B110508 姓名 课程名称 单片机原理及应用 实验日期 2013.11.1 实验名称 智能仪器 成绩 实验目的:熟悉proteus仿真软件,掌握单片机原理图的绘图方法
实验内容:
(1)(2)学习ISIS模块的使用方法,学会设置图纸,选元件、画导线、修改属性等基本操作;
(3)
(4)理解proteus在单片机开发中的作用,完成单片机电路原理图的绘制
(1);
(2)(3)Main.c文件
void ad_init();
void control_thread();
void menu_thread();
void main(){
ad_init();
while(1){
menu_thread();
control_thread();
}
}
Control.c文件
#include reg51.h
sbit P16=P1^6;
sbit P17=P1^7;
unsigned char ad();
void print(char name, unsigned int value);
extern unsigned char param_value[2];
extern char menu_status;
void control_thread() {
//第1步:A/D转换
unsigned char value = ad();
//第2步:根据采样值控制LED灯
if (value param_value[1]) {
P16 = 0;
P17 = 1;
} else if (value = param_value[1] value = param_value[0]) {
P16 = 0;
P17 = 0;
} else {
P16 = 1;
P17 = 0;
}
//第3步:如果菜单是关闭的,显示采集到的数值
if (menu_status == 1) {
print( , value);
}
}
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_NUM ; i++) {
_menu_value[i] = param_value[i];
}
}
} else {
//如果当前菜单为打开状态,则进行以下操作:
if (key == 0) {
//若按键0按下,则不保存键值,仅切换到下一个参数
if (++_menu_idx == MENU_NUM) { //判断是否所有参数都循环到了
menu_status = MENU_OFF; //若已循环完成,设置菜单关闭状态
}
} else if (key == 1) {
//若按键1按下,则保存键值,并切换到下一个参数
param_value[_menu_idx] = _menu_value[_men
文档评论(0)