武汉理工大学单片机课程设计(5)

2019-03-28 21:10

武汉理工大学《单片机实习报告书》

参考文献

[1] 谢自美. 电子线路设计·实验·测试(第三版).武汉:华中科技大学出版社 [2] 李群芳. 单片微型计算机与接口技术(第3版).电子工业出版社,2008 [3] 刘教瑜. 单片机原理及应用.武汉理工大学出版社,2011 [4] 张东亮. [5] 郭天祥. 51

单片机原理与应用.人民邮电出版社,2009 单片机C语言教程.电子工业出版社 - 21 -

武汉理工大学《单片机实习报告书》

附录1:最小系统原理图

图1 最小系统原理图

- 22 -

武汉理工大学《单片机实习报告书》

附录2:C语言源程序

发送机主程序: #include

#define NO_DEF

20

//声明无效键值 //声明显示数字的标志 //声明显示温度的标志

#define SHOW_NUM 1 #define SHOW_TEP 0 #define CLEAR 11 #define

//定义清0键

//定义功能切换键

SWITCH 10

typedef unsigned char uchar; typedef unsigned int uint;

#define SM_PORT P0 #define KEY P3

//声明数码管数据端口 //声明矩阵键盘端口

sbit dula = P2^6; sbit wela = P2^7;

//声明数码管段选端口 //声明数码管位选端口

sbit DS = P2^2; //声明温度传感器的数据端口

uint temp; // variable of temperature ,用于接收来自DS18B20传回的温度数据 uint key_value=20; uchar show_flag=SHOW_TEP; uchar send_cnt=0;

uchar *s;

uint tep_index[4]={0,0,0,0};

//温度索引,因为用前4位数码管显

- 23 -

武汉理工大学《单片机实习报告书》

示温度值,后两位分别显示-C,故温度索引之定义了4位 uchar tem_value[6]={0x3f,0xbf,0x3f,0x3f,0x40,0x39}; 的,数码管显示码

uint num_index[6]={13,13,13,13,13,13}; uchar num_value[6]={0,0,0,0,0,0}; 显示码值

unsigned char code table[14]={0x3f,0x06,0x5b,

void delayms(uint count); void key_scan();

void display(uchar ch[6]);

void num_shift(uint *num,uint new_key_value); void dsreset(void); bit tmpreadbit(void); uchar tmpread(void);

void tmpwritebyte(uchar dat); void tmpchange(void); void tmp();

void toTmpIndex(uint *index);

void indexToValue(uint *index,uchar *value,int flag); void shut_down();

- 24 -

//温度值对应

//数字索引

//要显示的数字对应的数码管

0x4f,0x66,0x6d, 0x7d,0x07,0x7f, 0x6f, //数字:0——9

0x39, //字母:C 数组第10个字符 0x40, //字符:- 数组第11个字符 0x80, //字符:. 数组第12个字符 0x00 //无显示 数组第13个字符 };

武汉理工大学《单片机实习报告书》

void main() {

TMOD = 0x20; TH1 = 0xfd; TL1 = 0xfd; SCON = 0x40; EA = 1; PCON = 0x80; ES = 1; TR1 = 1; while(1) {

key_scan(); delayms(1);

if(key_value==SWITCH)

//检测功能切换键

//开启定时器1,开始发送数据

//串口波特率加倍

//设置串口的工作方式为方式1

//设置定时器的工作方式为方式2

//设置波特率为19200

是否被按下

{ }

switch(show_flag) {

case SHOW_NUM:

//key_scan();

//检测数字键是否被按

shut_down(); key_value=NO_DEF;

//将键值赋值为无效值

if(show_flag==SHOW_TEP)

show_flag=SHOW_NUM;

else

show_flag=SHOW_TEP;

if(key_value<=9)

- 25 -


武汉理工大学单片机课程设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:信息系统项目管理师论文(内部)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: