ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:26.53KB ,
资源ID:1565790      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-1565790.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机测试程序Word文件下载.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

单片机测试程序Word文件下载.docx

1、实现效果逐个闪烁,逐个消隐,键盘控制改变数据并移动,与预期相同,工作状态正常。再利用单片机内部时钟中断,编写数码管时钟程序,使数码管能够实现计时功能,键盘能够控制时分秒。系统综合功能设计综合单片机开发板上的各个功能模块,以实现一个完整的系统功能:根据前面对各模块功能的理解和程序编写,结合各个模块实现一个整体系统,把各模块功能综合起来。设计一综合系统,使数码管实现数字钟且可右移闪烁,液晶屏实现时间、日期的显示且可移屏,键盘能够控制系统,蜂鸣器与键盘且可整点报时,可实现串口通信功能。鸣器调试程序 本程序根据蜂鸣器与单片机P3.3口相连设计,可以验证单片机及下载功能的正确.#include intr

2、ins.hsbit buz = P33;unsigned char flag; void delayms(unsigned char ms) /*延时子程序*/ unsigned char i; while(ms-) for(i = 0; i /* prototype declarations for I/O functions*/#ifdef MONITOR51 /* Debugging with Monitor-51 needs*/char code reserve 3 _at_ 0x23; /* space for serial interrupt if */#endif /* Stop

3、 Exection with Serial Intr. is enabled */*-The main C function. Program execution startshere after stack initialization.-*/void main (void) Setup the serial port for 1200 baud at 12MHz.#ifndef MONITOR51 SCON = 0x50; /* SCON: mode 1, 8-bit UART, enable rcvr */ TMOD |= 0x20; /* TMOD: timer 1, mode 2,

4、8-bit reload */ TH1 = 0xe6; /* TH1: reload value for 1200 baud 12MHz */ TR1 = 1; /* TR1: timer 1 run*/ TI = 1; /* TI: set TI to send first char of UART*/#endifNote that an embedded program never exits (becausethere is no operating system to return to). Itmust loop and execute forever. while (1) prin

5、tf ( liu jing longn); /* Print liu jing long */串口通信调试程序(PC机到单片机)#include#define uchar unsigned char#define uint unsigned intUchar data ReceiveBuffer16=0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20;/设置16字节的串行通信接收缓冲区uchar data BufferPointer=0;/串行通信接收缓冲区指针,初始为0bit data

6、 OnReceive=0;/串行通信接收事件标志位void Send(uchar data dat);/*以下为串行通信接收中断处理函数*/void serialport(void) interrupt 4 using 2 uchar data c,i; if(RI) c=SBUF;/读取接收到的数据 if(BufferPointer16) ReceiveBufferBufferPointer=c;/将接收到的数据存入接收缓冲区 BufferPointer+; else for(i=0;i0;k-) for(l=0;l/*端口定义*/sbit CS=P10;sbit CLK=P11;sbit

7、DIO=P12;sbit KEY=P32;/需要在INT区把KEY用跳线冒跳到INT0,其余四个跳到VCC/这样,P32就相当于直接连接到keybdata uchar com_data; /定义8位数据datasbit mos_bit=com_data7;sbit low_bit=com_data0;/*变量定义*/uchar half_hign;uchar half_low;uchar sl,sh,ml,mh,hh,hl;uchar second=0;uchar minute=0;uchar hour=12;uint s_cnt,key;void delay_8us() for (i=0;

8、i1; i+);void delay_50us()6;void delay_50ms() uchar i,j; for(j=0;j50;j+)125;i+);void delay_1s() uchar i = 20; while(i-) delay_50ms();void delay_2s() uchar i = 40;void delay_5s() uchar i = 100;/*发送单字节指令*/void send(uchar sebuf) com_data=sebuf; CLK=0; CS=0; delay_50us();8; delay_8us(); DIO=mos_bit; CLK=

9、1; com_data=com_data CLK=0; DIO=0;/*接收数据*/uchar receive(void) uchar i,rebuf; CLK=1; low_bit=DIO; rebuf=com_data; DIO =1; CS=1; return rebuf;/*复位*/void reset(void) DIO=1; delay_50ms(); send(0xa4);/*7289数码管显示,addr为显示位置 范围07,dat为现实内容*/void display(uchar addr,uchar dat) if(addr7) return; send(0xc8 + add

10、r); send(dat);/*功能:执行ZLG7289纯指令参数:cmd:命令字*/void ZLG(uchar t) CS = 0; send(t); CS = 1;/*发送双字节命令*/void sendcommand(uchar addr,uchar dat) send(addr);/*获取键盘的位置码*/uchar getkeycode(uchar dat) uchar key; switch(dat) case 0x00: key = 0x00;break; case 0x01: key = 0x01; case 0x02: key = 0x02; case 0x03: key =

11、 0x03; case 0x04: key = 0x04; case 0x05: key = 0x05; case 0x06: key = 0x06; case 0x07: key = 0x07; case 0x08: key = 0x08; case 0x09: key = 0x09; case 0x0a: key = 0x10; case 0x0b: key = 0x11; case 0x0c: key = 0x12; case 0x0d: key = 0x13; case 0x0e: key = 0x14; case 0x0f: key = 0x15; default: key = 0x

12、ee; return key;/*7289按键指令*/ZLG7289_Key() uchar key,dat; send(0x15); delay_50us(); dat = receive(); key = getkeycode(dat);/*按键设定时分加一*/void Set_time(void) /设定时间 if(key=0x00) /按键0,控制时 if(key=0x00) hour+; if(hour=24) hour=0; hl=hour%10; hh=hour/10; if(key=0x01) /按键1,控制分 if(key=0x01) minute+; if(minute=6

13、0) minute=0; ml=minute%10; mh=minute/10; if(key=0x02) /按键2,控制秒 if(key=0x02) second+; if(second=60) second=0; sl=second%10; sh=second/10; hh=hour/10;ml=minute%10; sh=second/10;sl=second%10; /*定时器中断初始化*/void Init(void) /初始化子程序 IP=0x02; EX0=1; TMOD=0x02; /0.25ms TH0=0x06; TL0=0x06; ET0=1; TR0=1;void service_int0() interrupt 0 EX0=0; TR0=0; key= ZLG7289_Key(); Set_time(); delay_1s();/*中断控

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2