- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
电子科技大学 微电子与固体电子 学院
实 验 报 告
实验名称 现代电子技术综合实验姓名:詹朋璇
学号: 评分: 教师签字
电子科技大学教务处制
电 子 科 技 大 学
实 验 报 告
学生姓名:詹朋璇 学号: 指导教师:熊万安实验地点: 211 大楼 308 实验时间:2014. 6.3晚0
一、 实验室名称: 单片机技术综合实验室
实验项目名称:数码管显示A/D 转换的电压值 数码管显示秒表二、 实验学时: 12
三、 实验目的与任务:
1、 熟悉系统设计与实现原理
2、 掌握KEIL C51 的基本使用方法
3、 熟悉实验板的应用
4、 连接电路,编程调试,实现各部分的功能
5、 完成系统软件的编写与调试
四、 实验器材
1、 PC 机一台
2、 实验板一块
五、 实验原理、步骤及内容
试验要求:数码管的第 1 位显示任务号 1,第 3 位到第 5 位显示、A/D 转换的电压值,可调节电压,第7、8 位显示两位学号;数码管第2 位和第6 位显示“-”号;
按按键 key1 进行切换,此时数码管第 1 位显示任务号 2,第 7、8 位显示循环倒计时的秒表,范围为08 秒到01 秒后,再过01 秒,秒表又显示为08 秒;
(单片机系统中利用定时器/计数器计数秒表的值:利用定时器T0 延时 1 秒进行计数。),其它位显示不变,按按键 key2 时,秒表停止计数,再按按键 key2 时,秒表继续计数,按key1 键,又回到任务 1 的显示状态。
当电压值大于 2 伏时,按按键不起作用。1、 硬件设计(可打印)
2、 各部分硬件原理(可打印)
数码管动态扫描
3、 软件设计
TLS549ADC 工作时序图
开始初始化
开始
初始化
Key1/2 是否按
下
1 按下
1
1 位显示任务号 2,第 7、8 位显示循环倒计时的秒表,范围为
秒表停止计数
08 秒到10按1 秒下后,再过 01 秒,秒表又1显按示为下08 秒,2其按它位下显
示不变。
Key1/2 是否按下
继续任务一
继续计数
开始计数
1 按下
Key1/2 是否
按2下
按下
开始计数
思考题: 按键改用外部中断模式,电路如何修改(画示意图)?程序如何修
改,写出中断服务程序。
答:将 KEY1 与KEY2 键通过跳线分别接到INT0 与INT1 接口上。
开启中断:
SysInit()
{ …
EA=0; /禁/ 止总中断
EX1=1; /使/ EX0=1; /使/
能/INT1 中断能/INT0 中断
EA =1; }/使/能总中断中断服务程序:
void INT0SVC () interrupt 0
{
if(cnt=31) cnt++;}
void INT1SVC () interrupt 2
{
if(cnt=17) cnt--;}
六、 总结及心得体会
1.利用单片机开发板上丰富的资源可以实现一个有一定功能的系统。
2懂. 得利用中断可以使单片机的效率提高。
七、 对本实验过程及方法、手段的改进建议
实在是没有,都挺好的。八、 附录
1、 程序
/*
利用TLC549 A/D 转换器实现电压测量与显示
*/
#include reg51.h //包含 8051 的SFR 寄存器定义头文件 #include absacc.h //扩展并行接口所需的绝对地址访问库函数 #define LED_dig XBYTE[0x9000] //8位数码管显示器的位选输出控制
#define LED_seg XBYTE[0x8000] //8位数码管显示器的段码(字形码)输出控制#define KEY_IN XBYTE[0x8000]
//定义 TLC549 操作接口 sbit ADC_CS = P1^7; sbit ADC_DATA = P1^6; sbit ADC_CLK = P1^5;
code unsigned char disp_seg[]= //显示段码
{0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0x77,0x7c,0x39,0x5f,0x79,0x71,0x40,0x00
,0xff};
// 0 1 2 3 4 5 6 7 8 9 a b c d e
f - blank全, 亮
unsigned char DispBuf[8]/;/定义显示缓冲区(由定时中断程序自动扫描) unsigned char key_value,fl定ag义;/键/盘返回值,任务标志
unsigned char y1000,y100,y10定,y义;/秒/ 表的个位,十分位,百分位,千分位
unsigned short mbia定o;义//秒表计数单元void delay(int ms); //延时大约 1ms
原创力文档


文档评论(0)