免费预览已结束,剩余5页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章 实验与实践试验板采用HCS08系列单片机MC9S08AW60作为主控芯片。其引脚与寄存器见附录。11.1 实验一 熟悉实验环境实验目的:熟悉BDM的连接和应用,能使用BDM对程序进行下载和调试。实验步骤: 将J3短接J4断开 将P2的1、2号脚用短路帽短接 将P3的1、2;3、4;5、6分别用短路块连接 对试验板加5V电源 打开CW6.1创建一个空的工程,调试工具选择OSBDM 对改工程进行编译和下载,并熟悉调试环境11.2 实验二 并行I/O实验目的:熟悉HCS08系列GPIO模块寄存器的功能和设置。用试验板上的8个LED 实现跑马灯效果。主程序设计:void main(void) int i=0x7f; EnableInterrupts; /* enable interrupts */ /* include your code here */ / init PTAPE_PTAPE0=1; /设置PORTA0上拉允许 PTADD_PTADD0=1; /设置PORTA0管脚为输出 PTAPE_PTAPE1=1;/设置PORTA1上拉允许 PTADD_PTADD1=1;/设置PORTA1管脚为输出 PTEPE=0XFF;/设置PORTE上拉允许 PTEDD=0XFF;/设置PORTE管脚为输出 PTAD_PTAD0=0; /74HC244选通 0选通 1关闭 PTAD_PTAD1=0; /发光二极管选通 0选通 1关闭 for(;) _RESET_WATCHDOG(); /* feeds the dog */ PTED=(i=(i&0x80)7)|(i1); /实现循环移位 delay(); /* loop forever */ /* please make sure that you never leave main */delay() long k=2000; while(k-) _RESET_WATCHDOG(); /* feeds the dog */11.3 实验三 按键中断实验目的:通过按键输入,控制试验板上8个LED小灯的状态(每按下SW1一次,状态反转一次)。主程序设计:#include /* for EnableInterrupts macro */#include derivative.h /* include peripheral declarations */#define SW1PTGD_PTGD0/SW1为PORTG0void interrupt 22 KBI_isr()/按键中断 中断号22 KBISC_KBACK = 1; / 清除中断标志 delay();/软件消抖 if (!SW1) PTED = PTED; /如果SW1按下,反转显示void main(void) int i=0x7f; EnableInterrupts; /* enable interrupts */ /* include your code here */ /KBI init PTGDD_PTGDD0=1;/PORTG0端口设置 PTGPE_PTGPE0=1; KBI1PE_KBIPE0=1;/设置PORTG0为KBI方式 KBI1SC_KBIE=1;/允许按键中断 / init PTAPE_PTAPE0=1; /设置上拉允许 PTADD_PTADD0=1; /设置管脚为输出 PTAPE_PTAPE1=1; PTADD_PTADD1=1; PTEPE=0XFF; PTEDD=0XFF; PTED=0X00; PTAD_PTAD0=0; /74HC244选通 PTAD_PTAD1=0; /发光二极管选通 for(;) _RESET_WATCHDOG(); /* feeds the dog */ / PTED=(i=(i&0x80)7)|(i1); /实现循环移位 / delay(); /* loop forever */ /* please make sure that you never leave main */delay() long k=500; while(k-) _RESET_WATCHDOG(); /* feeds the dog */11.4 实验四 PWM控制蜂鸣器试验目的:通过调节PWM占空比控制蜂鸣器的声音变化。主程序设计:void main(void) EnableInterrupts; /* enable interrupts */ /* include your code here */ TPM2SC=0X08;/选择BUSCLOCK作为时钟 TPM2MOD=2047;/周期寄存器 TPM2C1SC=0X68 ;/边沿对齐,高电平有效 TPM2C1V = 1535;/占空比寄存器 for(;) _RESET_WATCHDOG(); /* feeds the dog */ /* loop forever */ /* please make sure that you never leave main */11.5 实验五 AD转换实验目的:熟悉ADC寄存器的设置和使用方法,实现对可调电阻电压的的采样。实验结果: 在Data:2变量查看窗口里面点右键,选择Mode,Peridical旋转可调电阻,在调试环境下的变量查看窗口可以看到AD采样值的变化。主程序设计:#include /* for EnableInterrupts macro */#include derivative.h /* include peripheral declarations */void main(void) int result; EnableInterrupts; /* enable interrupts */ /* include your code here */ ADC1CFG=ADC1CFG_ADLSMP_MASK| ADC1CFG_MODE1_MASK; /Long sample time 10-bit APCTL1=APCTL1_ADPC0_MASK; /选通通道0 ADC1SC1=0X20; /启动转换 for(;) _RESET_WATCHDOG(); /* feeds the dog */ if (ADC1SC1_COCO) /新的转换是否完成 result = ADC1R; /读取结果(清除完成标志 COCO) /* loop forever */ /* please make sure that you never leave main */11.6实验六 四位数码管显示实验目的:掌握数码管扫描方式输出。实现四位数码管显示和流水灯显示。实现数码管显示“Axxx” xxx从000累计加1至99,发光二极管由三个小灯组成跑马灯。试验程序:#include /* for EnableInterrupts macro */#include derivative.h /* include peripheral declarations */#define on 0#define off 1#define led PTED#define seg0 PTDD_PTDD0 #define seg1 PTDD_PTDD1#define seg2 PTDD_PTDD2#define seg3 PTDD_PTDD3#define seg4 PTAD_PTAD1#define sel244 PTAD_PTAD0unsigned char LED7Code=/共阳极数码管编码0xC0,/ 00xF9,/ 10xA4,/ 20xB0,/ 30x99,/ 40x92,/ 50x82,/ 60xF8,/ 70x80,/ 80x90,/ 90x88,/ A0x83,/ B0xC6,/ C0xA1,/ D0x86,/ E0x8E/ F ;void led_off(void)/全灭 PTDD_PTDD0=1; PTDD_PTDD1=1; PTDD_PTDD2=1; PTDD_PTDD3=1; PTAD_PTAD1=1;void init_led(void)/IO口初始化 PTEDD=0XFF; PTDDD_PTDDD0=1; PTDDD_PTDDD1=1; PTDDD_PTDDD2=1; PTDDD_PTDDD3=1; PTADD_PTADD0=1; PTADD_PTADD1=1; PTAD_PTAD0=1; led_off();void delay() long k=20; while(k-) _RESET_WATCHDOG(); /* feeds the dog */void display(int a,int b,int c,int d,int e)/显示子程序 led_off(); seg0=on; led=LED7Codea;/第一位 delay(); led_off(); seg1=on; led=LED7Codeb;/第二位 delay(); led_off(); seg2=on; led=LED7Codec;/第三位 delay(); led_off(); seg3=on; led=LED7Coded;/第四位 delay(); led_off(); seg4=on; led=e;/小灯 delay(); led_off();void main(void) int i=0xf8,k=0x00,t=0; init_led(); sel244=on; EnableInterrupts; /* enable interrupts */ /* include your code here */ for(;) _RESET_WATCHDOG(); /* feeds the dog */ k+; display(10,(t/200)%10,(t/20)%10,(t/2)%10,i) ; if(k%20=0) i=(i&0x80)7)|(i199) t=0; /* loop forever */ /* please make sure that you never leave main */11.7 实验七 RS-232串行通讯实验目的:通过PC超级终端(波特率9600,8位,数据流控制无)接收串口发送来的数据。运行结果:运行程序,在超级终端界面上出现“Hello Word!”。试验程序:#include /* for EnableInterrupts macro */#include derivative.h /* include peripheral declarations */void SCI_send_string(char *string) while (*string) / while (!SCI2S1_TDRE); / 等待上一个发送完成 SCI2D = *string; /发送数据 string+; / 指针指向下一个要发送的数据 void main(void) EnableInterrupts; /* enable interrupts */ /* include your
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年生物医学伦理与法律考试试卷及答案
- 2025年生态环境保护培训试题(附答案)
- 韶关银行从业资格考试及答案解析
- 2025年山东法院书记员招聘考试真题及答案
- 新疆地震局笔试题型及答案
- 2024年钦州市消防救援支队招聘政府专职消防队员笔试真题
- 2024年宿州灵璧县人民医院招聘专业技术人员考试真题
- 南溪山医院岗前培训考试及答案解析
- 证券从业资格考试避税及答案解析
- 基本安全知识题库及答案解析
- 山西某污水处理厂投资估算编制分析
- 2025全国医疗应急能力培训系列课程参考答案
- 江西体彩中心笔试题库及答案
- 网络安全技术课件下载
- 初中英语试卷讲评及课堂教学设计
- 上海安保考试题目及答案
- 糖尿病专家培训课件
- 2025-2026学年深圳市罗湖区九年级(上)英语第一学期期中联考试卷(解析版)
- 雨课堂在线学堂《中国传统文化》课后单元测试答案
- 2025年大学《社会工作-社会福利思想》考试参考题库及答案解析
- 独孤一箭实盘交割单 独股一箭20w实盘交割单
评论
0/150
提交评论