吉林大学微机接口实验代码(五)

  • 前言

实验环境:唐都实验箱 (吉大计算机专用)
用C语言写 原本应该汇编来写的程序 纯粹搞事,网上一个C语言实例代码都没有。自己翻遍了图书馆,用极少的几条可用语句完成了辣鸡微机实验。
实践证明C语言编这玩意儿效率不知比汇编高到哪里去了
本人微机接口实验成绩为优秀(期末考试也是交的C语言版本)
考试交卷时一位资历很老的老师说:“这玩意儿还能用C语言写?”
只用C编写了5~10次实验(第五次实验就开始嫌弃汇编了hhh)


  • 实验:DAC输出不同种类波形
/*
 * Exp_5: DAC
 * author: liu abin
 * all right received
 **/
#include "conio.h"
typedef unsigned char u8;
typedef unsigned int u16;

u16 DAC = 0x0600;
u8 value = 0;
u8 time = 0;
void delay(u16 time);
void juchi();
void rectangle();
void triangle();
void jieti(u8 num);

void main() {
	while(1) {
		juchi();
		rectangle();
		triangle();
		jieti(5);
	}
}

// region:define of functions
void delay(u16 time) {
	for(int i=0;i<time;i++) {
		for(int j=0;j<200;j++)
			;
	}
}

void juchi() {
	value = 0;
	for(;value <= 0x0FE;value++) {
		outportb(DAC, value);
		delay(10);
	}
}

void rectangle() {
	value = 0;
	outportb(DAC, value);
	delay(100);
	value = 0x0FF;
	outportb(DAC, value);
	delay(100);
}

void triangle() {
	value = 0;
	for(;value<=0x0FE;value++){
		outportb(DAC, value);
		delay(10);
	}
	for(;value>0;value--){
		outportb(DAC, value);
		delay(10);
	}
}

void jieti(u8 num) {
	// caution
	u8 step = 0x0FF / (num+1);
	value = 0;
	for(;num>0; num--) {
		outportb(DAC, value);
		value += step;
	}
}
  • 5
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值